Сервис $mail
позволяет отправлять email-сообщения из сценария бота.
предупреждение
Чтобы использовать сервис
$mail
, вам потребуется почтовый сервер, работающий по протоколу SMTP.
Воспользуйтесь готовыми облачными решениями или разверните сервер самостоятельно.Вы также можете использовать для отправки email-сообщений тег действия Email
— он не требует конфигурации почтового сервера.
Однако все сообщения будут отправляться от имени JAICP.
Методы
Метод | Описание |
---|---|
config | Задать настройки SMTP-сервера. |
debug | Включить или выключить режим отладки сервиса $mail . |
send | Отправить email-сообщение с передачей настроек SMTP-сервера. |
sendMessage | Отправить email-сообщение через заранее настроенный SMTP-сервер. |
Настройка SMTP-сервера
Когда сервер будет готов к использованию, укажите его настройки в сценарии. Это можно сделать несколькими способами:
-
В секции
injector.smtp
конфигурационного файлаchatbot.yaml
. Этот способ устанавливает одинаковые настройки для ECMAScript 5 и ECMAScript 6. -
При помощи метода
$mail.config
.предупреждениеВ зависимости от способа вызова, метод может установить настройки:
- для ECMAScript 5 и ECMAScript 6 одновременно;
- только для одной из этих сред.
-
Непосредственно при отправке сообщения при помощи метода
$mail.send
.
- chatbot.yaml
- $mail.config
- $mail.send
injector:
smtp:
host: smtp.just-ai.com # Хост SMTP-сервера
port: 2525 # Порт SMTP-сервера
user: user@just-ai.com # Пользователь SMTP-сервера
password: qwerty # Пароль от SMTP-сервера
from: bot@just-ai.com # Отправитель email-сообщения
# Необязательные поля
hiddenCopy: admin@just-ai.com # Получатель скрытой копии email-сообщения
# Можно передать список получателей:
# hiddenCopy:
# - admin@just-ai.com
# - support@just-ai.com
debugMode: true # Включен или выключен режим отладки
$mail.config(
"smtp.just-ai.com", // Хост
2525, // Порт
"user@just-ai.com", // Пользователь
$secrets.get("smtpPassword"), // Пароль
"bot@just-ai.com", // Отправитель
"admin@just-ai.com" // Получатель скрытой копии
);
$mail.send({
smtpHost: $env.get("smtpHost"),
smtpPort: $env.get("smtpPort"),
user: $env.get("smtpUser"),
password: $secrets.get("smtpPassword"),
from: "bot@just-ai.com",
hiddenCopy: "admin@just-ai.com",
to: "user@example.com",
subject: "Тема сообщения",
content: "Содержание сообщения"
});
подсказка
Рекомендуется передавать настройки через методы
$mail
, а не в chatbot.yaml
.
Так вы можете хранить их не в исходном коде, а отдельно от сценария как токены и переменные.
Настройки будет легко поменять без необходимости править код, а чувствительные данные будут лучше защищены.