Gd WebClientControl unit.TgdWebClientControl.SendEMail
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии 1 участника) | |||
| Строка 1: | Строка 1: | ||
| − | {{MethodDef_Template|unit=gd_WebClientControl_unit|visibility=public|class= | + | {{MethodDef_Template|unit=gd_WebClientControl_unit|visibility=public|class=TgdWebClientControl|method_type=function|src=function SendEMail(const ARecipients: String; const ASubject: String; |
const ABodyText: String; const ASenderEmail: String; const AHost: String; | const ABodyText: String; const ASenderEmail: String; const AHost: String; | ||
const APort: Integer; const ALogin: String; const APassw: String; const AnIPSec: String; | const APort: Integer; const ALogin: String; const APassw: String; const AnIPSec: String; | ||
| Строка 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.gdWebClientControl|gdWebClientControl]]. | ||
http://gsbelarus.com/gs/images/gs/2015/sendmail01.png | http://gsbelarus.com/gs/images/gs/2015/sendmail01.png | ||
| + | |||
| + | # Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения. | ||
| + | # Внутри объекта gdWebClientControl исходящие сообщения записываются в список 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. | ||
| + | # О завершении вызвавшей программы (уничтожении окна или потока), gdWebClientControl уведомляется вызовом метода ClearEmailCallbackHandle. | ||
| + | # У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются. | ||
Текущая версия на 08:25, 17 августа 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: TgdWebClientControl
[править] Описание
Асинхронная отсылка электронной почты.
Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом gdWebClientControl.
- Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения.
- Внутри объекта gdWebClientControl исходящие сообщения записываются в список 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.
- О завершении вызвавшей программы (уничтожении окна или потока), gdWebClientControl уведомляется вызовом метода ClearEmailCallbackHandle.
- У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются.