Gd WebClientControl unit.TgdWebClientControl.SendEMail

Материал из GedeminWiki
Перейти к: навигация, поиск

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.

sendmail01.png

  1. Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения.
  2. Внутри объекта gdWebClientThread исходящие сообщения записываются в список FEmails. Каждое сообщение помещается в объект типа TgdEmailMessage. Для защиты списка служит критическая секция FEmailCS.
  3. После записи в список нити посылается сообщение WM_GD_SEND_EMAIL.
  4. Получив WM_GD_SEND_EMAIL обработчик сообщений вызовет метод DoSendEmail, который займется отправкой всех подготовленных (статус emsReady сообщений в списке). На время отправки сообщение получает статус emsSending. После завершения отправки -- emsSent или emsError. В последнем случае поле ErrorMsg будет содержать текст ошибки.
  5. По завершении отсылки программа будет уведомлена посылкой сообщения WM_GD_FINISH_SEND_EMAIL. ИД почтового отправления передается через WParam. Если для почтового отправления не указан хэндл вызвавшего окна или потока, то объект TgdEmailMessage будет сразу удален.
  6. Вызвавшая программа может запросить дополнительную информацию о статусе сообщения по его ИД с помощью функции GetEmailState.
  7. Вызвавшая программа удаляет объект с помощью метода DeleteEmailObject.
  8. О завершении вызвавшей программы (уничтожении окна или потока), gdWebClientThread уведомляется вызовом метода ClearEmailCallbackHandle.
  9. У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются.
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты