$mail.sendMessage
Метод отправляет email-сообщение через заранее настроенный SMTP-сервер.
Настройки сервера
Чтобы использовать этот метод,
сперва задайте настройки SMTP-сервера через chatbot.yaml
или метод $mail.config
.
Метод $mail.sendMessage
использует настройки из той среды, в которой он вызван:
- В теге
script
используются настройки из ECMAScript 5. - В теге
scriptEs6
используются настройки из ECMAScript 6.
Синтаксис
Метод принимает три аргумента:
Аргумент | Тип | Описание |
---|---|---|
address | Строка или массив строк | Получатель или список получателей email-сообщения. |
subject | Строка | Тема сообщения. |
body | Строка | Содержание сообщения. В нем можно использовать HTML-разметку. |
- ECMAScript 5
- ECMAScript 6
$mail.sendMessage(
"user@example.com",
"Новое предложение только для вас!",
"Только 25 марта на все наши тарифы скидка 20%!"
);
В среде ECMAScript 6 метод является асинхронным:
await $mail.sendMessage(
"user@example.com",
"Новое предложение только для вас!",
"Только 25 марта на все наши тарифы скидка 20%!"
);
Метод возвращает объект с полем status
. Возможные статусы отправки сообщений:
OK
— сообщение успешно отправлено.UNABLE_TO_CONNECT
— не удалось подключиться к SMTP-серверу.INCORRECT_ADDRESS
— в адресе отправителя или получателя передана пустая строка.
Использование в сценарии
- ECMAScript 5
- ECMAScript 6
init:
$mail.config(
"smtp.just-ai.com",
2525,
"user@just-ai.com",
$secrets.get("smtpPassword"),
"bot@just-ai.com"
);
theme: /
state: AttachDocument
InputFile:
prompt = Загрузите в чат заполненное согласие на обработку персональных данных.
varName = fileUrl
then = /SendDocument
state: SendDocument
script:
$temp.mailResult = $mail.sendMessage(
"user@example.com",
"Согласие на обработку персональных данных",
"Здравствуйте! Заполненное согласие во вложении, а также доступно по <a href=\"" + $session.fileUrl + "\">ссылке</a>."
);
if: $temp.mailResult.status === "OK"
a: Согласие успешно отправлено менеджеру.
else:
a: Извините, у меня не получилось отправить email.
init:
$mail.config(
"smtp.just-ai.com",
2525,
"user@just-ai.com",
$secrets.get("smtpPassword"),
"bot@just-ai.com"
);
theme: /
state: AttachDocument
InputFile:
prompt = Загрузите в чат заполненное согласие на обработку персональных данных.
varName = fileUrl
then = /SendDocument
state: SendDocument
scriptEs6:
$temp.mailResult = await $mail.sendMessage(
"user@example.com",
"Согласие на обработку персональных данных",
"Здравствуйте! Заполненное согласие во вложении, а также доступно по <a href=\"" + $session.fileUrl + "\">ссылке</a>."
);
if: $temp.mailResult.status === "OK"
a: Согласие успешно отправлено менеджеру.
else:
a: Извините, у меня не получилось отправить email.