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