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

Оператор EMAIL

Оператор EMAIL - создание действия, отправляющего почту.

Синтаксис

EMAIL [FROM fromExpr] [SUBJECT subjExpr]
recipientType1 recipientExpr1
...
recipientTypeN recipientExprN
[BODY bodyExpr]
[ATTACH attachDescription1
...
ATTACH attachDescriptionM]
[syncType]

Каждый attachDescription описывает либо одиночное вложение, либо список вложений и имеет один из двух соответствующих синтаксисов:

attachFileExpr [NAME attachNameExpr]
LIST attachFilePropertyID [NAME attachNamePropertyID]

Описание

Оператор EMAIL создает действие, которое отправляет письмо по электронной почте.

В опции FROM указывается адрес отправителя письма. По этому адресу определяется существующий в системе аккаунт электронной почты (объект класса Email.Account), который будет использован для отправки письма. Если эта опция не задана, или аккаунт с указанным адресом не найден, то по умолчанию выбирается аккаунт, для которого значение свойства Email.isDefaultInbox[Email.Account] не равно NULL. В случае, если подходящий аккаунт не будет найден, будет сгенерировано исключение.

Если опция SUBJECT не задана, то значением темы будет являться '{mail.nosubject}'.

В опции NAME в attachDescription имена файлов задаются без расширений (точка . будет считаться частью имени файла). Расширение будет определено автоматически по аналогии с оператором WRITE. Если же опция NAME не задана, то имя вложения по умолчанию имеет вид 'attachmentK', где K - порядковый номер вложения.

Параметры

  • fromExpr

    Выражение, значение которого определяет адрес отправителя письма.

  • subjExpr

    Выражение, значение которого определяет тему письма.

  • recipientType1 ... recipientTypeN

    Типы получателей. Необходимо указать как минимум один. Каждый из них задается одним из ключевых слов:

    • TO - получатель письма
    • СС - вторичный получатель письма, которому направляется копия
    • BCC - получатель письма, чей адрес не показывается другим получателям
  • recipientExpr1 ... recipientExprN

    Выражения, значения которых определяют адреса получателей письма.

  • bodyExpr

    Выражение, значение которого определяет текст тела письма. Значение может быть как строкового, так и файлового класса.

  • attachFileExpr

    Выражение, значение которого определяет прикрепляемое к письму вложение. Значение должно принадлежать файловому классу.

  • attachNameExpr

    Выражение, значение которого определяет имя вложения.

  • attachFilePropertyID

    Идентификатор свойства, которое определяет список файлов, прикрепляемых к письму. Свойство должно иметь ровно один параметр класса INTEGER и возвращать значение файлового класса.

  • attachNamePropertyID

    Идентификатор свойства, которое определяет список имен вложений. Свойство должно иметь ровно один параметр класса INTEGER.

  • syncType

    Тип синхронизации. Определяет, когда завершается выполнение созданного действия, позволяя выбрать между синхронным и асинхронным подходами. Задается одним из ключевых слов:

    • WAIT - действие завершается после окончания отправки письма в основном потоке. В случае неуспешной отправки генерируется исключение. Это поведение используется по умолчанию.
    • NOWAIT - отправка письма происходит в новом потоке, позволяя действию завершиться немедленно, без ожидания результата отправки. В случае неудачи, система автоматически предпримет несколько попыток повторной отправки, информацию о которых можно будет найти в системных логах.

Примеры

FORM remindUserPass
OBJECTS u=CustomUser PANEL
PROPERTIES(u) READONLY login, name[Contact]
;

emailUserPassUser 'Напоминание логина' (CustomUser user) {
LOCAL bodyFile = FILE ();
PRINT remindUserPass OBJECTS u = user HTML TO bodyFile;
EMAIL
SUBJECT 'Напоминание логина'
TO email(user)
BODY bodyFile()
NOWAIT
;
}

justSendEmail 'Отправить письмо' () {
stringToFile('<font color=#FF0000 size=+3>big red text</font>');
EMAIL
FROM 'luxsoft@adsl.by'
SUBJECT 'Тема письма'
TO 'xxx@tut.by'
BODY resultFile()
;
}