Перейти к основному содержимому
Версия: 7.0

Email

Emailсистемный модуль, содержащий классы, свойства и действия для электронной почты: почтовые учётные записи и их настройки соединения, дерево папок, хранимые письма с их заголовками, телом и вложениями, действия приёма почты с сервера и импорта .eml-файлов, а также средства составления и отправки письма поверх оператора EMAIL. Подключается через REQUIRE Email (вместе с ним подключаются System, Reflection и SystemEvents).

Учётная запись

Account — класс почтовой учётной записи: один набор реквизитов и настроек соединения для отправки и приёма почты.

СвойствоЧто хранит
name[Account]имя для входа
password[Account]пароль (объявлен с ECHO, поэтому в интерфейсе маскируется)
disable[Account]признак, отключающий учётную запись
insecureSSL[Account]признак, разрешающий недоверенный SSL-сертификат

Отправка

СвойствоЧто хранит
smtpHost[Account] / smtpPort[Account]хост и порт SMTP-сервера
encryptedConnectionType[Account]режим шифрования как объект EncryptedConnectionTypeStatus
nameEncryptedConnectionType[Account]режим шифрования по названию
fromAddress[Account]адрес отправителя, проставляемый в исходящую почту
isDefaultInbox[Account]признак, помечающий учётную запись как используемую по умолчанию для отправки

EncryptedConnectionTypeStatus — статический класс из двух объектов — SSL и TLS — для режима шифрования SMTP. Форма encryptedConnectionTypeStatuses показывает их списком.

inboxAccount[STRING] выбирает учётную запись для отправки письма с заданного адреса отправителя: возвращает запись, чей fromAddress[Account] совпадает с этим адресом (accountFromAddress), а при отсутствии совпадения берёт запись с признаком isDefaultInbox[Account] (defaultInboxAccount).

Приём

СвойствоЧто хранит
receiveHost[Account] / receivePort[Account]хост и порт сервера входящей почты
receiveAccountType[Account]протокол приёма как объект ReceiveAccountType
nameReceiveAccountType[Account]протокол приёма по названию
startTLS[Account]признак включения STARTTLS на соединении приёма
deleteMessages[Account]признак удаления писем с сервера после приёма
lastDays[Account]принимать только письма за последние N дней
maxMessages[Account]ограничение числа писем, принимаемых за один проход
unpack[Account]признак распаковки вложенных писем
ignoreExceptions[Account]признак продолжения работы после письма, которое не удалось обработать
readAllFolders[Account]признак чтения всех папок сервера, а не только входящих

ReceiveAccountType — статический класс из четырёх объектов для протокола приёма: POP3, POP3S, IMAP, IMAPS. Форма receiveAccountTypes показывает их списком.

Папки

Folder — класс почтовой папки. account[Folder] — учётная запись, которой она принадлежит (с каскадным DELETE), id[Folder] — идентификатор папки на сервере, parent[Folder] — родительская папка, так что папки образуют дерево внутри учётной записи. folder ищет папку по её account[Folder] и id[Folder].

newFolder[Folder] создаёт дочернюю папку под заданной — новый Folder с той же учётной записью и заданным родителем — и активирует её для редактирования на форме учётной записи.

Папка отправленных задаётся для каждой учётной записи: sentFolder[Account] — папка, в которую сохраняется исходящая почта, а isSent[Folder] — признак того, что данная папка является папкой отправленных этой учётной записи.

Письмо

Email — класс хранимого почтового письма.

СвойствоЧто хранит
account[Email]учётная запись, которой принадлежит письмо (с каскадным DELETE)
nameAccount[Email]имя учётной записи
folder[Email]папка, в которой лежит письмо
idFolder[Email]id папки
id[Email]идентификатор письма на сервере
uid[Email]UID письма на сервере
subject[Email]тема
fromAddress[Email]адрес отправителя
toAddress[Email] / ccAddress[Email] / bccAddress[Email]адреса получателя, копии и скрытой копии
dateTimeSent[Email] / dateSent[Email]дата и время отправки и её дата
dateTimeReceived[Email]дата и время приёма
message[Email]тело как HTMLTEXT
emlFile[Email]исходное письмо как .eml-FILE

openEMLFile[Email] открывает хранимый .eml-файл на клиенте.

Вложения

AttachmentEmail — класс вложения письма. email[AttachmentEmail] — письмо, которому оно принадлежит (с каскадным DELETE), name[AttachmentEmail] — имя вложения, file[AttachmentEmail] — его содержимое, а filename[AttachmentEmail] объединяет имя с расширением файла. attachment0[Email, INTEGER] возвращает вложение по заданной нумерованной с нуля позиции внутри письма, по порядку в рамках письма из index.

openFile[AttachmentEmail] открывает вложение на клиенте; saveFile[AttachmentEmail] сохраняет его через клиентский диалог сохранения под именем вложения.

Приём почты

ДействиеЧто делает
receiveEmailAction[]принять почту сразу по всем учётным записям
receiveEmailAction[Account]принять почту по заданной учётной записи
receiveEML[Account]загрузить с сервера учётной записи исходные .eml-файлы в emlFile[LONG], с ключом по UID письма
importEML[Account, LONG, FILE]импортировать один загруженный .eml-файл в Email и его вложения
receiveMail[Account]выполняет receiveEML[Account], затем importEML[Account, LONG, FILE] для каждого загруженного файла

receiveEmailAction[], receiveEmailAction[Account], receiveEML[Account] и importEML[Account, LONG, FILE] — родные действия, привязанные через оператор INTERNAL к Java-реализации приёма почты в платформе.

Отправка и составление

send[Email] отправляет хранимое письмо через оператор EMAIL: берёт fromAddress[Email], subject[Email], toAddress[Email], ccAddress[Email], bccAddress[Email] и тело message[Email], и прикладывает каждый файл из attachment0[Email, INTEGER].

writeMessage открывает диалог составления для Email и отправляет его. Есть в двух формах:

  • writeMessage[STRING, STRING, STRING, STRING, STRING, RICHTEXT, STRING, STRING] — полная форма; создаёт новый Email в отдельной сессии, заполняет его from / to / cc / bcc / тему / тело и текст цитируемого ответа, открывает диалог writeMessage и при подтверждении собирает итоговое HTML-тело (сообщение, за которым следует цитируемый ответ) и вызывает send[Email].
  • writeMessage[Account] — составляет новое письмо от заданной учётной записи, беря адрес отправителя из fromAddress[Account] (или из имени учётной записи name[Account]).

reply[Email] открывает диалог составления как ответ на письмо: меняет местами отправителя и получателя, добавляет к теме префикс Re: и цитирует исходное тело, а его датой отправки и отправителем — заголовок ответа.

Формы и навигатор

Форма / элементЧто показывает
accountодну учётную запись с её настройками отправки и приёма и деревом папок
accountsсписок учётных записей
mailпочтовый клиент: учётные записи, дерево папок, список писем, выбранное письмо с телом и вложениями, а также действия приёма / составления / ответа
writeMessageдиалог составления — заголовки, тело, цитируемый ответ и список вложений

В навигаторе форма mail создаётся в папке notification.

Язык

  • Оператор EMAIL — отправляет письмо; через него написано send[Email].
  • Оператор INTERNAL — привязывает действия приёма почты к их Java-реализации.

Связано

  • System modules — общий список модулей платформы.
  • SystemEvents — модуль событий жизненного цикла сервера, подключаемый вместе с Email.
  • Reflection — модуль метаданных, подключаемый вместе с Email.
  • Access to an external system (EXTERNAL) — обращение к внешним сервисам; почта — одна из таких внешних систем.
  • Security — использует почту для отправки письма со сбросом пароля.