community.general.mail – Отправка электронного письма
Примечание
Этот плагин входит в коллекцию community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.mail.
Обзор
- Этот модуль полезен для отправки электронных писем из книг задач.
- Можно задаться вопросом, зачем автоматизировать отправку писем? В сложных средах время от времени встречаются процессы, которые невозможно автоматизировать, либо потому, что у вас нет полномочий на это, либо потому, что не все согласны с общим подходом.
- Если вы не можете автоматизировать конкретный шаг, но он не блокирует выполнение, отправка электронного письма ответственному лицу, чтобы заставить его выполнить свою часть сделки, является элегантным способом возложить ответственность на кого-то другого.
- Конечно, отправка письма может быть так же полезна, как способ уведомить одного или нескольких человек в команде, что определенное действие было (успешно) выполнено.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attach список / элементы=строка | Значение по умолчанию: [] | Список путей к файлам, которые необходимо добавить в сообщение. Тип содержимого прикреплённых файлов будет установлен в application/octet-stream. |
| bcc список / элементы=строка | Адрес(ы) электронной почты, которым отправляется письмо с 'скрытой' копией. Это список, который может содержать адресные части и фразы. | |
| body строка | Тело отправляемого электронного письма. | |
| cc список / элементы=строка | Адрес(ы) электронной почты, которым отправляется копия письма. Это список, который может содержать адресные части и фразы. | |
| charset строка | Значение по умолчанию: "utf-8" | Кодировка символов отправляемого электронного письма. |
| headers список / элементы=строка | Значение по умолчанию: [] | Список заголовков, которые следует добавить к сообщению. Каждый отдельный заголовок задается как header=value (см. пример ниже). |
| host строка | Значение по умолчанию: "localhost" | Сервер электронной почты. |
| password строка | Если для SMTP требуется пароль. | |
| port целое число | Значение по умолчанию: 25 | Порт сервера электронной почты. Это должно быть целое число от 1 до 65534 |
| secure строка |
| Если always, подключение будет отправлять электронную почту только при зашифрованном соединении. Если сервер не принимает зашифрованное соединение, произойдёт ошибка.Если try, подключение попытается установить защищённое SSL/TLS-соединение, прежде чем пытаться отправить.Если never, подключение не попытается установить защищённое SSL/TLS-соединение, прежде чем отправить.Если starttls, подключение попытается перейти к защищённому SSL/TLS-соединению, прежде чем отправить. Если это не удастся, произойдёт ошибка. |
| sender строка | Значение по умолчанию: "root" | Адрес электронной почты, с которого отправляется письмо. Может содержать адрес и фразу. псевдонимы: от |
| subject строка / обязательно | Тема отправляемого электронного письма. псевдонимы: сообщение | |
| subtype строка |
| Дополнительный тип MIME, может быть plain или html.Основной тип всегда text. |
| timeout целое число | Значение по умолчанию: 20 | Устанавливает таймаут в секундах для попыток подключения. |
| to список / элементы=строка | Значение по умолчанию: "root" | Адрес(ы) электронной почты, которым отправляется письмо. Это список, который может содержать адресные части и фразы. псевдонимы: получатели |
| username строка | Если для SMTP требуется имя пользователя. |
Примеры
- name: Example playbook sending mail to root
community.general.mail:
subject: System {{ ansible_hostname }} has been successfully provisioned.
delegate_to: localhost
- name: Sending an e-mail using Gmail SMTP servers
community.general.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
- name: Send e-mail to a bunch of users, attaching files
community.general.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/avatar2.png
headers:
- Reply-To=john@example.com
- X-Special="Something or other"
charset: us-ascii
delegate_to: localhost
- name: Sending an e-mail using the remote machine, not the Ansible controller node
community.general.mail:
host: localhost
port: 25
to: John Smith <john.smith@example.com>
subject: Ansible-report
body: System {{ ansible_hostname }} has been successfully provisioned.
- name: Sending an e-mail using Legacy SSL to the remote machine
community.general.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
- name: Sending an e-mail using StartTLS to the remote machine
community.general.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
Авторы
- Dag Wieers (@dagwieers)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/mail_module.html