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— использует почту для отправки письма со сбросом пароля.