Страница 1 из 7
					
				libcurl: email
				Добавлено: 17 Ноябрь 2016, 23:09
				 Игорь Столяров
				Подскажите пожалуйста: имею желание отправить несколько отдельных писем разным получателям с разными файлами.
Тема и текст письма легко меняется, а как очистить список получателей и файлов ?
Хотел сделать, вот так:
но это закрытые (PRIVATE) данные, да и не уверен я что так правильно ... 

 Скорее всего, я чего-то не понимаю.
Есть ли какой-нибудь сброс данных текущего сообщения ? Не инициализировать же каждый раз класс заново ... 
Заранее спасибо !
 
			 
			
					
				libcurl for Clarion
				Добавлено: 17 Ноябрь 2016, 23:31
				 Дед Пахом
				Сброс не предусмотрен. Проще всего написать процедуру отправки письма, которую вызывать в цикле. Типа
Код: Выделить всё
SendMail procedure(server, port, user, pwd, body, attachments...)
curl  TCurlMailClass
  code
  curl.Init()
  curl.Server(server, port)
  !... 
  curl.Send()
 
			 
			
					
				libcurl for Clarion
				Добавлено: 17 Ноябрь 2016, 23:47
				 Игорь Столяров
				Спасибо, сейчас попробую ...
Я делал вот так и не получилось:
Код: Выделить всё
code
  Loop ! По списку получателей
    curl.Init()
    curl.Server(server, port)
    !... 
    curl.Send()
  end
А вообще можно как-то реинициализировать Curl ? Curl.Kill() - не получилось ...
 
			 
			
					
				libcurl for Clarion
				Добавлено: 17 Ноябрь 2016, 23:50
				 Дед Пахом
				Игорь Столяров писал(а): А вообще можно как-то реинициализировать Curl ? Curl.Kill() - не получилось ...
 
Ну разве что объявить curl как ссылку &TCurlMailClass и делать NEW в начале цикла, DISPOSE в конце.
 
			 
			
					
				libcurl for Clarion
				Добавлено: 17 Ноябрь 2016, 23:59
				 Игорь Столяров
				Прекрасно работают оба способа (через отдельную процедуру и ссылку).
Мне вариант со ссылкой как-то понятней и есть гарантия, что память возвращена, а не подвисла где-то в закромах cURL ... 
Большое спасибо за помощь ! 

 
			 
			
					
				libcurl for Clarion
				Добавлено: 20 Ноябрь 2016, 0:40
				 Игорь Столяров
				Дед Пахом писал(а): Обновление v1.06 Возможное "Вложение без имени.txt"
 
Беда с вложением файлов с русскими именами .... 

Файл нормально присоединяется и приходит в письме, но все русские буквы в имени - кракозябрами ...
 
			 
			
					
				libcurl for Clarion
				Добавлено: 20 Ноябрь 2016, 1:06
				 Дед Пахом
				curl.Charset('win1251'), curl.AddAttachment(......., 'win1251') по идее должны помочь.
			 
			
					
				libcurl for Clarion
				Добавлено: 20 Ноябрь 2016, 7:45
				 Игорь Столяров
				Дед Пахом писал(а): curl.AddAttachment(......., 'win1251')
 
Спасибо за наводку ! 

 Действительно, вот такой вариант решает проблему с русскими именами файлов в сообщении:
Код: Выделить всё
MyCurl.AddAttachment('c:\Любить по русски.doc',,'Windows-1251')
Кстати, еще одно "открытие" (для меня) при работе с почтой через LibCur (сURL) - к имени хоста лучше
ВСЕГДА приклеивать протокол, тогда работает везде и без проблем. Что-то вроде:
Код: Выделить всё
  If SSL = True Or Port = 465
     Host = 'smtps://' & Clip(Host)
     MyCurl.UseSSL(CURLUSESSL_ALL)
  else
     Host = 'smtp://'  & Clip(Host)
  end
  MyCurl.Server(Host,Port)
  .....
 
			 
			
					
				libcurl for Clarion
				Добавлено: 24 Ноябрь 2016, 18:27
				 Игорь Столяров
				Добрый день !
Вопросик имею спросить. 
 
А можно (как-то) в TCurlMailClass включать запрос на уведомление о прочтении отправляемого e-mail ?
Заранее спасибо !
 
			 
			
					
				libcurl for Clarion
				Добавлено: 26 Ноябрь 2016, 17:13
				 Дед Пахом
				Игорь Столяров писал(а): А можно (как-то) в TCurlMailClass включать запрос на уведомление о прочтении отправляемого e-mail ?
 
Если это возможно сделать через curl, то почти наверняка возможно и через libcurl. Но я что-то не могу найти в интернете способ.
 
			 
			
					
				libcurl for Clarion
				Добавлено: 26 Ноябрь 2016, 17:35
				 Admin
				Добавить в письмо, в заголовок две строки:
Код: Выделить всё
X-Confirm-Reading-To: mixer@clarionlife.net 
Disposition-Notification-To: mixer@clarionlife.net
Уведомления:
о прочтении
и о доставке
 
			 
			
					
				libcurl for Clarion
				Добавлено: 26 Ноябрь 2016, 17:36
				 Игорь Столяров
				С теорией я вроде разобрался. cURL здесь не причем.
Нужна управляемая вставка в метод создания заголовка сообщения, что-то вроде:
Код: Выделить всё
TCurlMailClass.CreateHeader ...
   ...
   If Self.Notice then Mail.AddLine('Disposition-Notification-To: ' & CLIP(SELF.mailfrom)).
Ну и конечно, проверить ... 

 
			 
			
					
				libcurl for Clarion
				Добавлено: 26 Ноябрь 2016, 17:58
				 Дед Пахом
				а, точно, подзабыл уже, как письмо формируется. Добавлю на днях оба уведомления.
			 
			
					
				libcurl for Clarion
				Добавлено: 28 Ноябрь 2016, 12:51
				 Дед Пахом
				Admin писал(а): Добавить в письмо, в заголовок две строки:
Код: Выделить всё
X-Confirm-Reading-To: mixer@clarionlife.net 
Disposition-Notification-To: mixer@clarionlife.net
Уведомления:
о прочтении
и о доставке
 
Интересно получается... Я пользуюсь 2мя провайдерами - yandex и gmail. Через libcurl ни один из них не реагирует ни на Disposition-Notification-To, ни на X-Confirm-Reading-To, ни на признанный устаревшим Return-Receipt-To. Вобщем-то ничего странного, в спецификации написано, что провайдер вправе полностью игнорировать эти строки.
Далее. С гугла послать письмо с уведомлением нельзя (можно с установленной платной приблудой). С яндекса можно, и уведомление приходит, но в заголовке письма ни Disposition-Notification-To, ни X-Confirm-Reading-To, ни Return-Receipt-To нет.
 
			 
			
					
				libcurl for Clarion
				Добавлено: 28 Ноябрь 2016, 12:56
				 Игорь Столяров
				Дед Пахом писал(а):  С гугла послать письмо с уведомлением нельзя 
 
Значит это уже отмирающий рудимент SMTP .... 
