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