Модуль community.general.mail — отправка электронной почты
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.general.
Чтобы использовать её в плейбуке, укажите: community.general.mail.
Краткое описание
- Этот модуль предназначен для отправки электронной почты из плейбуков.
- Зачем автоматизировать отправку электронной почты? В сложных средах время от времени возникают процессы, которые невозможно автоматизировать: либо у вас нет полномочий для этого, либо не все согласны на единый подход.
- Если вы не можете автоматизировать определённый шаг, но он не блокирует выполнение, можно отправить письмо ответственному лицу с просьбой выполнить свою часть работы. Это элегантный способ переложить ответственность на кого-то другого.
- Разумеется, отправка письма также может быть полезна для уведомления одного или нескольких членов команды о том, что определённое действие было выполнено (успешно).
Параметры
Параметр | Комментарии |
|---|---|
attach list / elements=path | Список путей к файлам, которые нужно прикрепить к сообщению. Для прикреплённых файлов тип содержимого задаётся как По умолчанию: |
bcc list / elements=string | Адреса электронной почты, на которые отправляется скрытая копия письма. Это список, который может содержать адреса и фразы. По умолчанию: |
body string | Текст отправляемого письма. |
cc list / elements=string | Адреса электронной почты, на которые отправляется копия письма. Это список, который может содержать адреса и фразы. По умолчанию: |
charset string | Кодировка отправляемого письма. По умолчанию: |
ehlohost string добавлено в community.general 3.8.0 | Позволяет вручную указать хост для EHLO. |
headers list / elements=string | Список заголовков, которые нужно добавить к сообщению. Каждый заголовок задаётся в формате По умолчанию: |
host string | Почтовый сервер. По умолчанию: |
message_id_domain string добавлено в community.general 8.2.0 | Доменное имя для заголовка Message-ID. По умолчанию: |
password string | Пароль, если он требуется для SMTP. |
port integer | Порт почтового сервера. Значение должно быть допустимым целым числом в диапазоне от По умолчанию: |
secure string | Если задано Если задано Если задано Если задано Варианты:
|
sender псевдонимы: from string | Адрес электронной почты отправителя. Может содержать адрес и фразу. По умолчанию: |
subject псевдонимы: msg string / обязательный | Тема отправляемого письма. |
subtype string | Подтип MIME: Основной тип всегда равен Варианты:
|
timeout integer | Задаёт время ожидания попыток подключения в секундах. По умолчанию: |
to псевдонимы: recipients list / elements=string | Адреса электронной почты получателей письма. Это список, который может содержать адреса и фразы. По умолчанию: |
username string | Имя пользователя, если оно требуется для SMTP. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: нет | Можно запустить в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения о том, что изменилось (или, возможно, должно измениться в |
Примеры
- 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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/mail_module.html