Gd WebClientControl unit.TgdWebClientControl.SendEMail
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 7: | Строка 7: | ||
<onlyinclude>Отсылка электронной почты.</onlyinclude> | <onlyinclude>Отсылка электронной почты.</onlyinclude> | ||
| − | Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом gdWebClientThread. | + | Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом [[gd_WebClientControl_unit.gdWebClientThread|gdWebClientThread]]. |
http://gsbelarus.com/gs/images/gs/2015/sendmail01.png | http://gsbelarus.com/gs/images/gs/2015/sendmail01.png | ||
| − | # | + | # Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения. |
| + | # Внутри объекта gdWebClientThread исходящие сообщения записываются в список FEmails. Каждое сообщение помещается в объект типа [[gd_WebClientControl_unit.TgdEmailMessage|TgdEmailMessage]]. Для защиты списка служит критическая секция FEmailCS. | ||
| + | # После записи в список нити посылается сообщение WM_GD_SEND_EMAIL. | ||
| + | # Получив WM_GD_SEND_EMAIL обработчик сообщений вызовет метод DoSendEmail, который займется отправкой всех подготовленных (статус emsReady сообщений в списке). На время отправки сообщение получает статус emsSending. После завершения отправки -- emsSent или emsError. В последнем случае поле ErrorMsg будет содержать текст ошибки. | ||
| + | # По завершении отсылки программа будет уведомлена посылкой сообщения WM_GD_FINISH_SEND_EMAIL. ИД почтового отправления передается через WParam. Если для почтового отправления не указан хэндл вызвавшего окна или потока, то объект TgdEmailMessage будет сразу удален. | ||
| + | # Вызвавшая программа может запросить дополнительную информацию о статусе сообщения по его ИД с помощью функции GetEmailState. | ||
| + | # Вызвавшая программа удаляет объект с помощью метода DeleteEmailObject. | ||
| + | # О завершении вызвавшей программы (уничтожении окна или потока), gdWebClientThread уведомляется вызовом метода ClearEmailCallbackHandle. | ||
| + | # У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются. | ||
Версия 13:21, 6 августа 2015
From gd_WebClientControl_unit.pas
function SendEMail(const ARecipients: String; const ASubject: String;
const ABodyText: String; const ASenderEmail: String; const AHost: String;
const APort: Integer; const ALogin: String; const APassw: String; const AnIPSec: String;
const ATimeOut: Integer; const AFileName: String; const AWipeFile: Boolean = False;
const AWipeDirectory: Boolean = False; const AWndHandle: THandle = 0; const AThreadID: THandle = 0;
const AnAutoTaskKey: Integer = 0): Word;
Unit: gd_WebClientControl_unit
Type: function
Visibility: public
Member Of: TgdWebClientThread
Описание
Отсылка электронной почты.
Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом gdWebClientThread.
- Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения.
- Внутри объекта gdWebClientThread исходящие сообщения записываются в список FEmails. Каждое сообщение помещается в объект типа TgdEmailMessage. Для защиты списка служит критическая секция FEmailCS.
- После записи в список нити посылается сообщение WM_GD_SEND_EMAIL.
- Получив WM_GD_SEND_EMAIL обработчик сообщений вызовет метод DoSendEmail, который займется отправкой всех подготовленных (статус emsReady сообщений в списке). На время отправки сообщение получает статус emsSending. После завершения отправки -- emsSent или emsError. В последнем случае поле ErrorMsg будет содержать текст ошибки.
- По завершении отсылки программа будет уведомлена посылкой сообщения WM_GD_FINISH_SEND_EMAIL. ИД почтового отправления передается через WParam. Если для почтового отправления не указан хэндл вызвавшего окна или потока, то объект TgdEmailMessage будет сразу удален.
- Вызвавшая программа может запросить дополнительную информацию о статусе сообщения по его ИД с помощью функции GetEmailState.
- Вызвавшая программа удаляет объект с помощью метода DeleteEmailObject.
- О завершении вызвавшей программы (уничтожении окна или потока), gdWebClientThread уведомляется вызовом метода ClearEmailCallbackHandle.
- У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются.