хотя, если bcc рассылается на стороне SMTP, отослал одно письмо с bcc: получателями и сервер сделал "грязную" работу, или я делаю работу(рассылку списком) за сервер, может рубануть за спамИгорь Столяров писал(а): ↑29 Сентябрь 2017, 11:29
К SMTP Вы и так не коннектитесь, это делает каждый раз при вызове метод SEND() ...
libcurl: email
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 1707
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
libcurl for Clarion
Добрый день всем,
Может кто поделится рабочим примером получения почты с сервера.
Сам запускаю пример, выдает ошибку 7 (Email List reading failed: Couldnt't connect to server)
Может прокси мешает?
Может кто поделится рабочим примером получения почты с сервера.
Сам запускаю пример, выдает ошибку 7 (Email List reading failed: Couldnt't connect to server)
Может прокси мешает?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
Запускал тестовый пример почты ReceiveMail (давно) - всё прекрасно работало до получения списка сообщений.
Что касается PROXY - то это же Ваши местные прибамбасы, как здесь можно что-то советовать ?
Попробуйте включить и настроить опции для доступа CURL через PROXY - примеров на PHP полно.
Код: Выделить всё
CURLOPT_PROXY
CURLOPT_PROXYUSERNAME
CURLOPT_PROXYPASSWORD
и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
Добрый день !
Это снова я. И у меня вопросы … По пунктам.
1. Спасибо за интересные новые методы вставки картинок в текст письма.
хоть, что-то заработало сразу с убогими кларионовскими WMF листами отчётов ...
2. Но дьявол, снова скрылся в деталях ...
Вставка картинки в текст, затирает собственно сам текст письма ...
Т.е. если выполнить:
То в тексте письма придут только картинки ... Не хорошо это.
Или я неправильно формирую письмо ?
Вопрос именно о тексте письма, а не названии картинки.
Заранее спасибо за наводку.
Это снова я. И у меня вопросы … По пунктам.
1. Спасибо за интересные новые методы вставки картинок в текст письма.
Код: Выделить всё
AddEmbeddedImage(STRING pFilename, STRING pCid, <STRING pName>) !forces to use 'text/html' content-type
AltBody(STRING pBody) !forces to use 'text/html' content-type
2. Но дьявол, снова скрылся в деталях ...
Вставка картинки в текст, затирает собственно сам текст письма ...
Т.е. если выполнить:
Код: Выделить всё
...
MyCurl.Body('Посылаю Вам 20 своих селфи топлес !')
...
Loc:GUID = GetGUID()
MyCurl.AddEmbeddedImage(Loc:FileName,Loc:GUID)
MyCurl.Body('<html><body><img src="cid:' & Clip(Loc:GUID) & '"/></body></html>')
...
Loc:ErrorCode = MyCurl.Send()
Или я неправильно формирую письмо ?
Вопрос именно о тексте письма, а не названии картинки.
Заранее спасибо за наводку.
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libcurl for Clarion
Ну судя по примеру, нижнее .Body затирает верхнее, все логично )
Вообще структура HTML письма имеет "тело" минимум из трех частей - первая разводящая, вторая "текст" и третья "HTML", их надо заполнять независимо. В моей библиотеке для этого отдельные методы, по идее в curl тоже должны быть отдельные
Вообще структура HTML письма имеет "тело" минимум из трех частей - первая разводящая, вторая "текст" и третья "HTML", их надо заполнять независимо. В моей библиотеке для этого отдельные методы, по идее в curl тоже должны быть отдельные
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
Вот здесь что-то и не срастается ... Потому, что в LibCurl - либо текст, либо HTML ...
И как-то конечно хочется, что бы Curl.Body() была накопительной …
Вполне логичная схема формирования письма:
Код: Выделить всё
MyCurl.Body('Вступление')
MyCurl.Body('Глава 1')
MyCurl.Body('Глава 2')
MyCurl.Body('Эпилог')
...
! --- Вложение картинок
MyCurl.AddEmbeddedImage(Loc:FileName,Loc:GUID)
MyCurl.Body('<html><body><img src="cid:' & Clip(Loc:GUID) & '"/></body></html>')
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libcurl for Clarion
https://curl.haxx.se/libcurl/c/smtp-mime.html
Пример
B нем отдельные методы на каждую операцию
B libcurl по идее должны быть аналогичные
Пример
B нем отдельные методы на каждую операцию
B libcurl по идее должны быть аналогичные
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
Да ! В принципе, тоже самое, что и библиотеке Catalyst - сборка / разборка MIME сообщения c произвольным кол-вом разделов.
И каждый раздел может иметь свой тип данных (TEXT / HTML / ФАЙЛ ...), передаваемых внутри MIME пакета ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Тут у вас какая-то путаница, попробую разъяснить.
Картинки в теле письма допускаются, если само тело письма написано на HTML; если тело письма просто текст, то картинки в него внедрить нельзя, можно прикрепить их к письму только как вложения.
Для тех почтовых клиентов, которые не умеют показывать HTML-письма, есть альтернативное тело письма (просто текст).
Пример письма с HTML и картинкой в нём, и вторым текстовым телом с прикреплённой (той же)
картинкой:
Картинки в теле письма допускаются, если само тело письма написано на HTML; если тело письма просто текст, то картинки в него внедрить нельзя, можно прикрепить их к письму только как вложения.
Для тех почтовых клиентов, которые не умеют показывать HTML-письма, есть альтернативное тело письма (просто текст).
Пример письма с HTML и картинкой в нём, и вторым текстовым телом с прикреплённой (той же)
картинкой:
Код: Выделить всё
curl.Body('<html><body><p>HTML content</p><img src="cid:logo"/><p>with embedded images.</p></body></html>')
curl.AddEmbeddedImage('logo.png','logo')
curl.AltBody('This is an alternative plain text. Embedded images will appear as attachments.')
Это появилось в v7.56, а у нас 7.52.RaFaeL писал(а): ↑31 Август 2018, 11:21https://curl.haxx.se/libcurl/c/smtp-mime.html
Пример
B нем отдельные методы на каждую операцию
B libcurl по идее должны быть аналогичные
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
Можно простой вопрос ... (примеры разобрал, описание читал)
Правильно ли я понимаю:
1. TCurlMimeClass - это и есть формирование и отправка мультираздельных почтовых сообщений.
2. Новый класс TCurlMimeClass вообще никак не связан с TCurlMailClass.
3. Если мы формируем почтовое сообщение через TCurlMimeClass, то должны вручную делать всю работу
по настройке параметров сообщения через базовый TCurlHttpClass ?
(т.е. всё то, что раньше быстро и удобно делалось методами любезно предоставленного Вами TCurlMailClass)
4. Если п.3 - ошибочен, то как стыкуется создание MIME сообщения в TCurlMimeClass с его отправкой через TCurlMailClass ?
Заранее спасибо. Что бы хоть понять, в какую сторону копать …
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Будем считать, что простой это №2? Тогда да, никак не связан.Игорь Столяров писал(а): ↑03 Сентябрь 2018, 9:09Можно простой вопрос
Всё остальное мне непонятно, главным образом цель вопросов и желания что-то копать в тумане.
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
OK ! Цель простая:Дед Пахом писал(а): ↑03 Сентябрь 2018, 11:28главным образом цель вопросов
Создать MIME сообщение из нескольких разделов (текст, HTML, файлы) и отправить через SMTP.
С созданием MIME сообщения - более или менее понятно. Буду пробовать по примеру на С.
1. Не понятно с отправкой сообщения. В примере идёт просто вызов Curl.SendRequest()
Предполагается, что сформировать заголовок сообщения и установить настройки отправки
(хост, порт, логин, пароль и т.д.) нужно вручную, как это делают методы класса TCurlMailClass ?
2. Вот такая конструкция, имеет право на жизнь ?
Код: Выделить всё
curl TCurlMailClass ! <<<--- !!!! ВОТ КЛЮЧЕВАЯ ЗАМЕНА
mime TCurlMimeClass
part curl_mimepart
res CURLcode
CODE
Curl.Init()
! --- ФОРМИРОВАНИЕ ТУШКИ СООБЩЕНИЯ
!Curl.Body(...) ЗАМЕНЯЕМ НА
mime.Init(curl)
part = mime.AddPart() ! Первый раздел MIME
mime.SetData(part, 'This is the field data')
mime.SetName(part, 'data')
part = mime.AddPart() ! Второй раздел MIME
...
curl.SetMimePost(mime) ! Записали MIME сообщение
! ----
Curl.Server(...) ! Устанавливаем параметры отправки
Curl.Account(..)
Curl.From(..) ! Формируем шапку сообщения
Curl.Subject(...)
Curl.AddRecipient(...)
Curl.AddRecipient(...)
res = Curl.Send() ! Отправить почтовое сообщение
Заранее спасибо !
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Видимо, TCurlMailClass с этим не справляется, так?Игорь Столяров писал(а): ↑03 Сентябрь 2018, 12:57Создать MIME сообщение из нескольких разделов (текст, HTML, файлы) и отправить через SMTP.
Пример к почте не имеет отношения, это посылка данных через http (как будто заполнили форму и нажали Submit).Игорь Столяров писал(а): ↑03 Сентябрь 2018, 12:57В примере идёт просто вызов Curl.SendRequest()
Ещё раз, что не так в TCurlMailClass? Не посылает письма? Посылает, но не то? Он делает то же, что Вы хотите (создаёт несколько mime-частей - для текста, html, вложений), просто это скрыто в коде методов. Body - одна часть, AltBody - другая, Attachments - 3-я, EmbeddedImages - 4-я.
Зачем всё делать вручную?
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libcurl for Clarion
Затираются разделы:
Код: Выделить всё
...
MyCurl.Body('СОБСТВЕННО ТЕКСТ ПИСЬМА') ! Добавляем раздел с текстом
...
Loc:GUID = GetGUID() ! Добавляем раздел с вложенной картинкой
MyCurl.AddEmbeddedImage(Loc:FileName,Loc:GUID)
MyCurl.Body('<html><body><img src="cid:' & Clip(Loc:GUID) & '"/></body></html>')
...
Loc:ErrorCode = MyCurl.Send()
Как отправить e-mail из текста И html вложений ? Метод MyCurl.Body() создаёт только ОДИН раздел …
За теми кто отстал - не возвращаться. (С) Кодекс