Spec-Zone.ru › Ansible

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

список / элементы=путь

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

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

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

bcc

список / элементы=строка

Электронный адрес(ы), кому письмо отправляется в скрытой копии.

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

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

body

строка

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

cc

список / элементы=строка

Электронный адрес(ы), кому письмо отправляется в копии.

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

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

charset

строка

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

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

ehlohost

строка

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

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

headers

список / элементы=строка

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

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

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

host

строка

Сервер электронной почты.

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

message_id_domain

строка

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

Имя домена, используемого для заголовка Message-ID.

Обратите внимание, что это доступно только в Python 3+. В Python 2 это значение будет проигнорировано.

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

password

строка

Если SMTP требует пароль.

port

целое число

Порт сервера электронной почты.

Должно быть целым числом от 1 до 65534

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

secure

строка

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

Если try, соединение попытается установить безопасное SSL/TLS-соединение, прежде чем пытаться отправить.

Если never, соединение не попытается установить безопасное SSL/TLS-соединение, прежде чем отправить.

Если starttls, соединение попытается перейти к безопасному SSL/TLS-соединению, прежде чем отправить. Если это невозможно, произойдёт ошибка.

Варианты:

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

sender

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

строка

Электронный адрес, с которого отправляется письмо. Может содержать адрес и фразу.

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

subject

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

строка / обязательно

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

subtype

строка

Дополнительный тип MIME, может быть plain или html.

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

Варианты:

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

timeout

целое число

Устанавливает тайм-аут в секундах для попыток соединения.

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

to

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

список / элементы=строка

Электронный адрес(ы), кому отправляется письмо.

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

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

username

строка

Если SMTP требует имя пользователя.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

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

Spec-Zone.ru

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