Страница 5 из 7

libcurl for Clarion

Добавлено: 03 Сентябрь 2018, 14:57
Дед Пахом

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

curl.Body('<html><body><p>СОБСТВЕННО ТЕКСТ ПИСЬМА</p><p><img src="cid:myImage"></p></body></html>')

libcurl for Clarion

Добавлено: 03 Сентябрь 2018, 15:14
Игорь Столяров
Дед Пахом писал(а): 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 - поэтому я за него и схватился.

libcurl for Clarion

Добавлено: 03 Сентябрь 2018, 15:21
Дед Пахом
Тело письма либо текст, либо html, нельзя их смешать как Вы хотите - тут текст, тут не текст, тут опять текст, почтовый клиент просто не поймёт.
Игорь Столяров писал(а): 03 Сентябрь 2018, 15:14каждый вызов Curl.Body() просто должен ДОБАВЛЯТЬ новый раздел в MIME,
Если Вы думаете, что почтовый клиент показывает mime-разделы один за другим, то Вы заблуждаетесь. Он показывает один раздел (Body либо AltBody в обычной терминологии).

libcurl for Clarion

Добавлено: 03 Сентябрь 2018, 16:11
RaFaeL
Игорь, у вас все-таки путаница в голове. Письмо может содержать N блоков, но при этом не более 1 текстового блока и 1 HTML блока, при этом текстовый блок = HTML без форматирования. Все это можно сделать и через TCurlMailClass. Т.е. нужно сформировать HTML-тело как Body, текстовое тело как AltBody. Некий "отчет" из разных "блоков" как письмо сформировать нельзя независимо от библиотеки

libcurl for Clarion

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

html.jpg

libcurl for Clarion

Добавлено: 03 Сентябрь 2018, 18:22
RaFaeL
В данном случае текст это часть HTML-структуры, а рисунок - тот самый inline image

libcurl for Clarion

Добавлено: 03 Сентябрь 2018, 18:53
Игорь Столяров
RaFaeL писал(а): 03 Сентябрь 2018, 18:22В данном случае текст это часть HTML-структуры, а рисунок - тот самый inline image
Да, спасибо. Вроде бы стало светлее ...
С теорией конг-фу закончили, переходим к практике. :)

libcurl for Clarion

Добавлено: 04 Сентябрь 2018, 9:31
Игорь Столяров
Подскажите пожалуйста, а существует вообще какой-либо список типов файлов (расширений),
который допустим к вложению в тело HTML сообщения. Т.е. к которым применим метод Curl.AddEmbeddedImage() ?

Например, вложенные в HTML блок WMF файлы прекрасно показываются в Microsoft Outlook,
но не показывются в почтовых сервисах Yandex.ru, Mail.Ru и т.д. ...

libcurl for Clarion

Добавлено: 04 Сентябрь 2018, 12:16
Дед Пахом
Вообще говоря, почтовая программа смотрит не на расширение файла, а на mime-тип; в TCurlMailClass файлам WMF присваивается тип 'application/x-msmetafile'.

libcurl for Clarion

Добавлено: 04 Сентябрь 2018, 12:47
Игорь Столяров
Дед Пахом писал(а): 04 Сентябрь 2018, 12:16Вообще говоря, почтовая программа смотрит не на расширение файла, а на mime-тип; в TCurlMailClass файлам WMF присваивается тип 'application/x-msmetafile'.
OK ! Понял. :)
Переведём вопрос с бытового на профессиональный: существует ли какой-то общепринятый список MIME типов,
которые визуализируются почтовыми программами ?

libcurl for Clarion

Добавлено: 04 Сентябрь 2018, 13:10
Дед Пахом
Игорь Столяров писал(а): 04 Сентябрь 2018, 12:47существует ли какой-то общепринятый список MIME типов,
которые визуализируются почтовыми программами ?
Сам бы хотел знать. Искал - не нашёл.

libcurl for Clarion

Добавлено: 31 Октябрь 2020, 11:41
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 для каждого шага цикла ?

libcurl for Clarion

Добавлено: 31 Октябрь 2020, 11:51
Дед Пахом
Надо вызывать curl.Reset(), который сбрасывает не только список вложений, но и список получателей, и ещё что-то.

libcurl for Clarion

Добавлено: 31 Октябрь 2020, 12:06
morkovin
Дед Пахом писал(а): 31 Октябрь 2020, 11:51 Надо вызывать curl.Reset(), который сбрасывает не только список вложений, но и список получателей, и ещё что-то.
Поставил. Ничего не изменилось.
все списки заполняются заново на каждом шаге. Тело письма приходит правильное, а вот вложения накапливаются, даже при отправке на разные емайл

libcurl for Clarion

Добавлено: 31 Октябрь 2020, 12:14
Дед Пахом
Версия какая? Reset был добавлен для почты в v1.22.