community.general.mail модуль – Отправка электронного письма
Примечание
Этот модуль входит в коллекцию community.general (версия 9.5.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.mail.
Описание
- Этот модуль полезен для отправки писем из книг задач.
- Возникает вопрос, зачем автоматизировать отправку писем? В сложных средах время от времени встречаются процессы, которые нельзя автоматизировать, либо потому, что у вас нет полномочий это сделать, либо потому, что не все согласны с общим подходом.
- Если вы не можете автоматизировать определенный шаг, но этот шаг не блокирующий, отправка электронного письма соответствующему лицу, чтобы он выполнил свою часть сделки, является элегантным способом возложить ответственность на кого-то другого.
- Конечно, отправка письма может быть столь же полезной как способ уведомить одного или нескольких людей в команде о том, что определенное действие было (успешно) выполнено.
Параметры
Параметр | Комментарии |
|---|---|
attach список / элементы=путь | Список путей к файлам, которые нужно прикрепить к сообщению. Тип содержимого прикреплённых файлов будет установлен в По умолчанию: |
bcc список / элементы=строка | Электронный адрес(ы), кому письмо отправляется в скрытой копии. Это список, который может содержать части адреса и фразы. По умолчанию: |
body строка | Тело отправляемого электронного письма. |
cc список / элементы=строка | Электронный адрес(ы), кому письмо отправляется в копии. Это список, который может содержать части адреса и фразы. По умолчанию: |
charset строка | Кодировка символов отправляемого электронного письма. По умолчанию: |
ehlohost строка добавлено в community.general 3.8.0 | Позволяет вручную указать хост для EHLO. |
headers список / элементы=строка | Список заголовков, которые должны быть добавлены к сообщению. Каждый отдельный заголовок задаётся как По умолчанию: |
host строка | Сервер электронной почты. По умолчанию: |
message_id_domain строка добавлено в community.general 8.2.0 | Имя домена, используемого для заголовка Message-ID. Обратите внимание, что это доступно только в Python 3+. В Python 2 это значение будет проигнорировано. По умолчанию: |
password строка | Если SMTP требует пароль. |
port целое число | Порт сервера электронной почты. Должно быть целым числом от 1 до 65534 По умолчанию: |
secure строка | Если Если Если Если Варианты:
|
sender псевдонимы: from строка | Электронный адрес, с которого отправляется письмо. Может содержать адрес и фразу. По умолчанию: |
subject псевдонимы: msg строка / обязательно | Тема отправляемого электронного письма. |
subtype строка | Дополнительный тип MIME, может быть Основной тип всегда Варианты:
|
timeout целое число | Устанавливает тайм-аут в секундах для попыток соединения. По умолчанию: |
to псевдонимы: recipients список / элементы=строка | Электронный адрес(ы), кому отправляется письмо. Это список, который может содержать части адреса и фразы. По умолчанию: |
username строка | Если SMTP требует имя пользователя. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: нет | Может работать в |
diff_mode | Поддержка: нет | В режиме сравнения вернет подробности о том, что изменилось (или, возможно, требует изменения в |
Примеры
- 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
- name: Sending an e-mail using StartTLS, remote server, custom EHLO, and timeout of 10 seconds
community.general.mail:
host: some.smtp.host.tld
port: 25
timeout: 10
ehlohost: my-resolvable-hostname.tld
to: John Smith <john.smith@example.com>
subject: Ansible-report
body: System {{ ansible_hostname }} has been successfully provisioned.
secure: starttls
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/mail_module.html