Отправка почты Ansible smtp

Я пытаюсь отправить письмо через Ansible.

- hosts: all
  tasks:
  - mail:
      host: smtp.gmail.com

      port: 587

      username: ****@gmail.com

      password: *******

      to: John Smith ***@gmail.com

      subject: 'Ansible-report'

      body: 'System  has been successfully provisioned.'

    delegate_to: localhost

но я получаю сообщение об ошибке

фатальный: [host1 -> localhost]: НЕ ВЫПОЛНЕНО! => {"changed": false, "failed": true, "msg": "Ошибка аутентификации на smtp.gmail.com:587, проверьте свое имя пользователя и / или пароль", "rc": 1}

Я использую пример с официального сайта http://docs.ansible.com/ansible/latest/mail_module.html

Насколько я понимаю, SMTP-аутентификация уже существует в исходном новом модуле ANSIBLE. Файл "/tmp/ansible_K94pcN/ansible_module_mail.py", строка 304, в основном smtp.login (имя пользователя, пароль)

Файл "/usr/lib64/python2.7/smtplib.py", строка 621, при входе в систему вызывает SMTPAuthenticationError (код, соответственно)

фатальный: [host1 -> localhost]: НЕ ВЫПОЛНЕНО! => {"изменено": ложь,

"failed": true,

"invocation": {

    "module_args": {

        "attach": null,
        "bcc": null,
        "body": "System ubuntu has been successfully provisioned.",
        "cc": null,
        "charset": "us-ascii",
        "headers": null,
        "host": "smtp.gmail.com",
        "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
        "port": 587,
        "secure": "starttls",
        "sender": "root",
        "subject": "Ansible-report",
        "subtype": "plain",
        "timeout": 20,
        "to": "Cristiano Ross <[email protected]>",
        "username": "[email protected]"
    }
},
"msg": "Authentication to smtp.gmail.com:587 failed, please check your usern              ame and/or password",
"rc": 1

person Victor Radin    schedule 28.10.2017    source источник
comment
Он говорит, что аутентификация не удалась. Вы уверены, что у вас правильные учетные данные Gmail? Эти же учетные данные работают, если вы протестируете их с помощью диагностического инструмента, такого как swaks ( или при настройке почтового клиента)? Вам нужно включить secure: starttls в playbook?   -  person larsks    schedule 28.10.2017
comment
@larsks и другие, пожалуйста, посмотрите -vvv output, я использую starttls и пробую с utf-8   -  person Victor Radin    schedule 28.10.2017
comment
Stack Overflow - это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. Какие темы можно задать здесь в Справочном центре. Возможно, суперпользователь или Unix и Linux Stack Exchange лучше спросить.   -  person jww    schedule 29.10.2017


Ответы (1)


Проблема, с которой вы столкнулись, - это проблема аутентификации, вызванная использованием правильного имени пользователя и пароля для отправки электронной почты из учетной записи Gmail без назначения пароля для конкретного приложения.

Вам необходимо:

а) Настройте «двухэтапную аутентификацию» для учетной записи Gmail отправителя.

б) Затем вам нужно будет создать пароль для конкретного приложения в настройки вашей учетной записи Google.

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

   - mail:
     host: smtp.gmail.com
     port: 587
     secure: starttls
     charset: utf-8
     sender: [email protected]
     username: [email protected]
     password: your app password generated by google for you goes here
     to: '[email protected]'
     subject: Ya u rite
person mordechai    schedule 16.11.2017