Оператор 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()
    ;
}