mail - Отправка электронного письма
Описание
- Этот модуль полезен для отправки электронных писем из плейбуков.
- Можно задаться вопросом, зачем автоматизировать отправку электронных писем? В сложных средах время от времени возникают процессы, которые нельзя автоматизировать, либо потому, что у вас нет соответствующих полномочий, либо потому, что не все согласны с единым подходом.
- Если вы не можете автоматизировать определенный шаг, но он не блокирующий, отправка электронного письма соответствующему лицу, чтобы он выполнил свою часть соглашения, является элегантным способом возложить ответственность на кого-то другого.
- Конечно, отправка письма может быть столь же полезна как способ уведомить одного или нескольких человек в команде о том, что определенное действие было (успешно) выполнено.
Параметры
| Параметр | Обязательный | Значение по умолчанию | Варианты | Комментарии |
|---|---|---|---|---|
| attach | нет | Список файлов, разделенных пробелами, которые необходимо прикрепить к сообщению. Прикрепленные файлы будут иметь тип содержимого, установленный на application/octet-stream. | ||
| bcc | нет | Адрес(ы) электронной почты, по которым письмо отправляется с «скрытой» копией. Это список, разделенный запятыми, который может содержать адреса и фразы. | ||
| body | нет | $subject | Тело отправляемого электронного письма. | |
| cc | нет | Адрес(ы) электронной почты, по которым письмо отправляется с копией. Это список, разделенный запятыми, который может содержать адреса и фразы. | ||
| charset | нет | us-ascii | Кодировка символов отправляемого электронного письма | |
| from | нет | root | Адрес электронной почты, с которого отправляется письмо. Может содержать адрес и фразу. | |
| headers | нет | Список заголовков, разделенных вертикальной чертой, которые необходимо добавить к сообщению. Каждый отдельный заголовок задается как header=value (см. пример ниже). | ||
| host | нет | localhost | Сервер электронной почты | |
| password (добавлено в 1.9)
| нет | Если SMTP требует пароль | ||
| port | нет | 25 | Порт сервера электронной почты. Он должен быть допустимым целым числом от 1 до 65534 | |
| secure (добавлено в 2.3)
| нет | try |
| Если always, соединение будет отправлять электронную почту только в том случае, если соединение зашифровано. Если сервер не принимает зашифрованное соединение, произойдет ошибка.Если try, соединение попытается установить безопасное сеанса SSL/TLS, прежде чем пытаться отправить.Если never, соединение не попытается установить безопасное сеанса SSL/TLS перед отправкой.Если starttls, соединение попытается обновить соединение до безопасного SSL/TLS, прежде чем отправить. Если это невозможно, произойдет ошибка. |
| subject | да | Тема отправляемого электронного письма. | ||
| subtype (добавлено в 2.0)
| нет | plain | Дополнительный тип MIME, может быть либо text, либо html. Основной тип всегда text. | |
| timeout (добавлено в 2.3)
| нет | 20 | Устанавливает время ожидания в секундах для попыток подключения | |
| to | нет | root | Адрес(ы) электронной почты, по которым письмо отправляется. Это список, разделенный запятыми, который может содержать адреса и фразы. | |
| username (добавлено в 1.9)
| нет | Если SMTP требует имя пользователя |
Примеры
# Example playbook sending mail to root
- mail:
subject: 'System {{ ansible_hostname }} has been successfully provisioned.'
delegate_to: localhost
# Sending an e-mail using Gmail SMTP servers
- mail:
host: smtp.gmail.com
port: 587
username: username@gmail.com
password: mysecret
to: John Smith <john.smith@example.com>
subject: Ansible-report
body: 'System {{ ansible_hostname }} has been successfully provisioned.'
delegate_to: localhost
# Send e-mail to a bunch of users, attaching files
- mail:
host: 127.0.0.1
port: 2025
subject: Ansible-report
body: Hello, this is an e-mail. I hope you like it ;-)
from: jane@example.net (Jane Jolie)
to: John Doe <j.d@example.org>, Suzie Something <sue@example.com>
cc: Charlie Root <root@localhost>
attach: /etc/group /tmp/pavatar2.png
headers: 'Reply-To=john@example.com|X-Special="Something or other"'
charset: utf8
delegate_to: localhost
# Sending an e-mail using the remote machine, not the Ansible controller node
- mail:
host: localhost
port: 25
to: John Smith <john.smith@example.com>
subject: Ansible-report
body: 'System {{ ansible_hostname }} has been successfully provisioned.'
# Sending an e-mail using Legacy SSL to the remote machine
- mail:
host: localhost
port: 25
to: John Smith <john.smith@example.com>
subject: Ansible-report
body: 'System {{ ansible_hostname }} has been successfully provisioned.'
secure: always
# Sending an e-mail using StartTLS to the remote machine
- mail:
host: localhost
port: 25
to: John Smith <john.smith@example.com>
subject: Ansible-report
body: 'System {{ ansible_hostname }} has been successfully provisioned.'
secure: starttls
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будут вноситься обратные изменения в интерфейс.
Для получения помощи в разработке модулей, если вы захотите, пожалуйста, прочитайте Справочная информация по сообществу и вклад, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/mail_module.html