mail – Отправка электронного письма
Обзор
- Этот модуль полезен для отправки электронных писем из playbooks.
- Можно задаться вопросом, зачем автоматизировать отправку электронных писем? В сложных средах время от времени встречаются процессы, которые нельзя автоматизировать, либо из-за отсутствия полномочий, либо из-за отсутствия согласия всех участников на общий подход.
- Если определенный шаг нельзя автоматизировать, но он не блокирующий, отправка электронного письма ответственному лицу, чтобы тот выполнил свою часть соглашения, является элегантным способом переложить ответственность на другого.
- Конечно, отправка электронного письма может быть также полезна для уведомления одного или нескольких человек в команде о том, что определенное действие было выполнено (успешно).
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attach - | Значение по умолчанию: [] | Список путей к файлам, которые должны быть прикреплены к сообщению. Прикрепленные файлы будут иметь тип содержимого, установленный как application/octet-stream. |
| bcc - | Адрес(ы) электронной почты, которым отправляется письмо "скрытой копией". Это список, который может содержать части адреса и фразы. | |
| body - | Значение по умолчанию: "$subject" | Текст тела электронного письма. |
| cc - | Адрес(ы) электронной почты, которым отправляется копия письма. Это список, который может содержать части адреса и фразы. | |
| charset - | Значение по умолчанию: "utf-8" | Кодировка символов отправляемого электронного письма. |
| from - | Значение по умолчанию: "root" | Адрес электронной почты, с которого отправляется письмо. Может содержать адрес и фразу. |
| headers - | Значение по умолчанию: [] | Список заголовков, которые следует добавить к сообщению. Каждый отдельный заголовок задается как header=value (см. пример ниже). |
| host - | Значение по умолчанию: "localhost" | Сервер электронной почты. |
| password - добавлен в 1.9 | Если SMTP требует пароль. | |
| port - | Значение по умолчанию: 25 | Порт сервера электронной почты. Это должно быть целое число от 1 до 65534. |
| secure - добавлен в 2.3 |
| Если always, соединение будет отправлять электронное письмо только в том случае, если соединение зашифровано. Если сервер не принимает зашифрованное соединение, оно завершится ошибкой.Если try, соединение попытается установить защищенное сеансное соединение SSL/TLS перед отправкой.Если never, соединение не будет пытаться установить защищенное сеансное соединение SSL/TLS перед отправкой.Если starttls, соединение попытается перейти к защищенному соединению SSL/TLS перед отправкой. Если это невозможно, оно завершится ошибкой. |
| subject - / обязательно | Тема электронного письма. | |
| subtype - добавлен в 2.0 |
| Менее значимый тип MIME, может быть либо plain, либо html. Основной тип всегда text. |
| timeout - добавлен в 2.3 | Значение по умолчанию: 20 | Устанавливает таймаут в секундах для попыток подключения. |
| to - | Значение по умолчанию: "root" | Адрес(ы) электронной почты, которым отправляется письмо. Это список, который может содержать части адреса и фразы. псевдонимы: получатели |
| username - добавлен в 1.9 | Если SMTP требует имя пользователя. |
Примеры
- name: Example playbook sending mail to root
mail:
subject: System {{ ansible_hostname }} has been successfully provisioned.
delegate_to: localhost
- name: 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
- name: 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/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
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
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
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. [community]
Авторы
- Dag Wieers (@dagwieers)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/mail_module.html