Gd WebClientControl unit.TgdWebClientControl.SendEMail
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 5: | Строка 5: | ||
const AWipeDirectory: Boolean = False; const AWndHandle: THandle = 0; const AThreadID: THandle = 0; | const AWipeDirectory: Boolean = False; const AWndHandle: THandle = 0; const AThreadID: THandle = 0; | ||
const AnAutoTaskKey: Integer = 0): Word;}} | const AnAutoTaskKey: Integer = 0): Word;}} | ||
| − | <onlyinclude> | + | <onlyinclude>Асинхронная отсылка электронной почты.</onlyinclude> |
Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом [[gd_WebClientControl_unit.gdWebClientThread|gdWebClientThread]]. | Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом [[gd_WebClientControl_unit.gdWebClientThread|gdWebClientThread]]. | ||
Версия 14:31, 7 августа 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.
- У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются.