Gd WebClientControl unit.TgdWebClientControl.SendEMail
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) м (SYSDBA переименовал страницу Gd WebClientControl unit.TgdWebClientThread.SendEMail в Gd WebClientControl unit.TgdWebClientControl.SendEMail) |
SYSDBA (обсуждение | вклад) |
||
| Строка 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; | ||
| Строка 7: | Строка 7: | ||
<onlyinclude>Асинхронная отсылка электронной почты.</onlyinclude> | <onlyinclude>Асинхронная отсылка электронной почты.</onlyinclude> | ||
| − | Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом [[gd_WebClientControl_unit. | + | Ниже приведено схематическое описание взаимодействия по отсылке электронной почты между программой (вызывающим потоком) и объектом [[gd_WebClientControl_unit.gdWebClientControl|gdWebClientControl]]. |
http://gsbelarus.com/gs/images/gs/2015/sendmail01.png | http://gsbelarus.com/gs/images/gs/2015/sendmail01.png | ||
# Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения. | # Программа вызывает метод SendEmail, который возвращает внутренний ИД сообщения. | ||
| − | # Внутри объекта | + | # Внутри объекта gdWebClientControl исходящие сообщения записываются в список FEmails. Каждое сообщение помещается в объект типа [[gd_WebClientControl_unit.TgdEmailMessage|TgdEmailMessage]]. Для защиты списка служит критическая секция FEmailCS. |
# После записи в список нити посылается сообщение WM_GD_SEND_EMAIL. | # После записи в список нити посылается сообщение WM_GD_SEND_EMAIL. | ||
# Получив WM_GD_SEND_EMAIL обработчик сообщений вызовет метод DoSendEmail, который займется отправкой всех подготовленных (статус emsReady сообщений в списке). На время отправки сообщение получает статус emsSending. После завершения отправки -- emsSent или emsError. В последнем случае поле ErrorMsg будет содержать текст ошибки. | # Получив WM_GD_SEND_EMAIL обработчик сообщений вызовет метод DoSendEmail, который займется отправкой всех подготовленных (статус emsReady сообщений в списке). На время отправки сообщение получает статус emsSending. После завершения отправки -- emsSent или emsError. В последнем случае поле ErrorMsg будет содержать текст ошибки. | ||
| Строка 18: | Строка 18: | ||
# Вызвавшая программа может запросить дополнительную информацию о статусе сообщения по его ИД с помощью функции GetEmailState. | # Вызвавшая программа может запросить дополнительную информацию о статусе сообщения по его ИД с помощью функции GetEmailState. | ||
# Вызвавшая программа удаляет объект с помощью метода DeleteEmailObject. | # Вызвавшая программа удаляет объект с помощью метода 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.
- У неотосланных сообщений обнуляются соответствующие хэндлы, а отосланные -- уничтожаются.