libcurl: email

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Код: Выделить всё

curl.Body('<html><body><p>СОБСТВЕННО ТЕКСТ ПИСЬМА</p><p><img src="cid:myImage"></p></body></html>')
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libcurl for Clarion

Сообщение Игорь Столяров »

Дед Пахом писал(а): 03 Сентябрь 2018, 14:57

Код: Выделить всё

curl.Body('<html><body><p>СОБСТВЕННО ТЕКСТ ПИСЬМА</p><p><img src="cid:myImage"></p></body></html>')
Это я в примере видел (можно ещё и подвал добавить) ... Но это шапка HTML, а не тестовый раздел MIME.
Элементарная задача: отправка отчёта из нескольких листов, как вложенные картинки в e-mail.
Нельзя даже листы отчёта подписать (пронумеровать) или добавить к вложенным картинкам описания.

Не знаю, насколько мои советы уместны, но каждый вызов Curl.Body() просто должен ДОБАВЛЯТЬ новый раздел в MIME,
тогда всё будет в соответсвии с Вашим описанием: "создаёт несколько mime-частей - для текста, html, вложений"
Что в общем-то и показано для класса TCurlMimeClass - поэтому я за него и схватился.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Тело письма либо текст, либо html, нельзя их смешать как Вы хотите - тут текст, тут не текст, тут опять текст, почтовый клиент просто не поймёт.
Игорь Столяров писал(а): 03 Сентябрь 2018, 15:14каждый вызов Curl.Body() просто должен ДОБАВЛЯТЬ новый раздел в MIME,
Если Вы думаете, что почтовый клиент показывает mime-разделы один за другим, то Вы заблуждаетесь. Он показывает один раздел (Body либо AltBody в обычной терминологии).
С уважением, ДП
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libcurl for Clarion

Сообщение RaFaeL »

Игорь, у вас все-таки путаница в голове. Письмо может содержать N блоков, но при этом не более 1 текстового блока и 1 HTML блока, при этом текстовый блок = HTML без форматирования. Все это можно сделать и через TCurlMailClass. Т.е. нужно сформировать HTML-тело как Body, текстовое тело как AltBody. Некий "отчет" из разных "блоков" как письмо сформировать нельзя независимо от библиотеки
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libcurl for Clarion

Сообщение Игорь Столяров »

RaFaeL писал(а): 03 Сентябрь 2018, 16:11Некий "отчет" из разных "блоков" как письмо сформировать нельзя независимо от библиотеки
Спасибо. Я понял... :( Это нужно ручками создавать HTML структуру с рисунками ...
Потому, что письма в HTML формате, в которых графика идёт в перемешку с текстом - создавать можно …

html.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libcurl for Clarion

Сообщение RaFaeL »

В данном случае текст это часть HTML-структуры, а рисунок - тот самый inline image
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libcurl for Clarion

Сообщение Игорь Столяров »

RaFaeL писал(а): 03 Сентябрь 2018, 18:22В данном случае текст это часть HTML-структуры, а рисунок - тот самый inline image
Да, спасибо. Вроде бы стало светлее ...
С теорией конг-фу закончили, переходим к практике. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libcurl for Clarion

Сообщение Игорь Столяров »

Подскажите пожалуйста, а существует вообще какой-либо список типов файлов (расширений),
который допустим к вложению в тело HTML сообщения. Т.е. к которым применим метод Curl.AddEmbeddedImage() ?

Например, вложенные в HTML блок WMF файлы прекрасно показываются в Microsoft Outlook,
но не показывются в почтовых сервисах Yandex.ru, Mail.Ru и т.д. ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Вообще говоря, почтовая программа смотрит не на расширение файла, а на mime-тип; в TCurlMailClass файлам WMF присваивается тип 'application/x-msmetafile'.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libcurl for Clarion

Сообщение Игорь Столяров »

Дед Пахом писал(а): 04 Сентябрь 2018, 12:16Вообще говоря, почтовая программа смотрит не на расширение файла, а на mime-тип; в TCurlMailClass файлам WMF присваивается тип 'application/x-msmetafile'.
OK ! Понял. :)
Переведём вопрос с бытового на профессиональный: существует ли какой-то общепринятый список MIME типов,
которые визуализируются почтовыми программами ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Игорь Столяров писал(а): 04 Сентябрь 2018, 12:47существует ли какой-то общепринятый список MIME типов,
которые визуализируются почтовыми программами ?
Сам бы хотел знать. Искал - не нашёл.
С уважением, ДП
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

libcurl for Clarion

Сообщение morkovin »

Как очистить список файлов для curl.AddAttachment?
В проседуре SendEmail в цикле отправляю сообщение и файл

Код: Выделить всё

  
        curl.AddRecipient( CLIP(ppp:email)) !to/cc/bcc
        Glo:EmailMessageText='Обращение № '& ZVK:ID &'<13,10>'&|
         ....
         ....
         ....      

  curl.UseSSL(CURLUSESSL_ALL)
  curl.SetSSLVerifyPeer(FALSE)  !curl --insecure

  curl.Subject('ВМК1: '&ZVK:ID& ' уведомление')
  curl.Body(CLIP(Glo:EmailMessageText))
  
  curl.AddAttachment(Fname)     ! Fname  ec-есно очищаю и указываю новый
  
Так вот, аттачмент приходит накопительным итогом. Т.е. в первом письме всё нормально - первый аттач,
во втором - первый и второй аттач
в третьем - первый, второй и третий аттач
и т.д.
Где и как мне очистить список для Attachments для каждого шага цикла ?
WBR, morkovin
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Надо вызывать curl.Reset(), который сбрасывает не только список вложений, но и список получателей, и ещё что-то.
С уважением, ДП
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

libcurl for Clarion

Сообщение morkovin »

Дед Пахом писал(а): 31 Октябрь 2020, 11:51 Надо вызывать curl.Reset(), который сбрасывает не только список вложений, но и список получателей, и ещё что-то.
Поставил. Ничего не изменилось.
все списки заполняются заново на каждом шаге. Тело письма приходит правильное, а вот вложения накапливаются, даже при отправке на разные емайл
WBR, morkovin
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Версия какая? Reset был добавлен для почты в v1.22.
С уважением, ДП
Ответить