Spec-Zone.ru › Ansible

Модуль 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

Список путей к файлам, которые нужно прикрепить к сообщению.

Для прикреплённых файлов тип содержимого задаётся как application/octet-stream.

По умолчанию: []

bcc

list / elements=string

Адреса электронной почты, на которые отправляется скрытая копия письма.

Это список, который может содержать адреса и фразы.

По умолчанию: []

body

string

Текст отправляемого письма.

cc

list / elements=string

Адреса электронной почты, на которые отправляется копия письма.

Это список, который может содержать адреса и фразы.

По умолчанию: []

charset

string

Кодировка отправляемого письма.

По умолчанию: "utf-8"

ehlohost

string

добавлено в community.general 3.8.0

Позволяет вручную указать хост для EHLO.

headers

list / elements=string

Список заголовков, которые нужно добавить к сообщению.

Каждый заголовок задаётся в формате header=value (см. пример ниже).

По умолчанию: []

host

string

Почтовый сервер.

По умолчанию: "localhost"

message_id_domain

string

добавлено в community.general 8.2.0

Доменное имя для заголовка Message-ID.

По умолчанию: "ansible"

password

string

Пароль, если он требуется для SMTP.

port

integer

Порт почтового сервера.

Значение должно быть допустимым целым числом в диапазоне от 1 до 65534.

По умолчанию: 25

secure

string

Если задано always, соединение отправляет письмо только при условии шифрования соединения. Если сервер не принимает зашифрованное соединение, операция завершается ошибкой.

Если задано try, перед отправкой соединение пытается установить защищённый сеанс SSL/TLS.

Если задано never, перед отправкой соединение не пытается установить защищённый сеанс SSL/TLS.

Если задано starttls, перед отправкой соединение пытается перейти на защищённое соединение SSL/TLS. Если это не удаётся, операция завершается ошибкой.

Варианты:

  • "always"
  • "never"
  • "starttls"
  • "try" ← (по умолчанию)

sender

псевдонимы: from

string

Адрес электронной почты отправителя. Может содержать адрес и фразу.

По умолчанию: "root"

subject

псевдонимы: msg

string / обязательный

Тема отправляемого письма.

subtype

string

Подтип MIME: plain или html.

Основной тип всегда равен text.

Варианты:

  • "html"
  • "plain" ← (по умолчанию)

timeout

integer

Задаёт время ожидания попыток подключения в секундах.

По умолчанию: 20

to

псевдонимы: recipients

list / elements=string

Адреса электронной почты получателей письма.

Это список, который может содержать адреса и фразы.

По умолчанию: ["root"]

username

string

Имя пользователя, если оно требуется для SMTP.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

Можно запустить в режиме check_mode и получить прогноз изменения статуса без изменения целевого объекта.

diff_mode

Поддержка: нет

В режиме diff возвращает сведения о том, что изменилось (или, возможно, должно измениться в check_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

Авторы

  • Dag Wieers (@dagwieers)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API