Ansible mail module failing at sending mail

1,059 views
Skip to first unread message

Umberto Manferdini

unread,
Oct 19, 2018, 10:55:29 AM10/19/18
to Ansible Project

Hello,

Trying to use the mail module to send emails as last task of my playbook

 

It fails saying


fatal: [r1 -> localhost]: FAILED! => {"changed": false, "msg": "Authentication to smtp.mail.yahoo.com:25 failed, please check your username and/or password", "rc": 1}

even if i'm totally sure credentials are right

 

As I imagine, underneath, it relies on on the smtplib python module , I tried to do it manually

 

I get this

 

>>> server = smtplib.SMTP('smtp.mail.yahoo.com', 25)

 

>>> server.connect('smtp.mail.yahoo.com', 25)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/lib/python2.7/smtplib.py", line 317, in connect

    (code, msg) = self.getreply()

  File "/usr/lib/python2.7/smtplib.py", line 368, in getreply

    raise SMTPServerDisconnected("Connection unexpectedly closed")

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

 

>>> server.connect('smtp.mail.yahoo.com', 25)

(220, 'smtp.mail.yahoo.com ESMTP ready')

 

>>> server.ehlo()

(250, 'smtp431.mail.ir2.yahoo.com Hello*** [***])\nPIPELINING\nENHANCEDSTATUSCODES\n8BITMIME\nSIZE 41697280\nSTARTTLS')

 

>>> server.login("***","***")

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/lib/python2.7/smtplib.py", line 585, in login

    raise SMTPException("SMTP AUTH extension not supported by server.")

smtplib.SMTPException: SMTP AUTH extension not supported by server.

 

  • -          I can create the object
  • -          First connect fails
  • -          Second is ok
  • -          Ehlo is fine
  • -          Login fails

 

Same happens with other smtp servers

 

Moreover, If I try to create the server towards port 465 it fails at step 1

 

>>> server = smtplib.SMTP('smtp.mail.yahoo.com', 465)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/lib/python2.7/smtplib.py", line 256, in __init__

    (code, msg) = self.connect(host, port)

  File "/usr/lib/python2.7/smtplib.py", line 317, in connect

    (code, msg) = self.getreply()

  File "/usr/lib/python2.7/smtplib.py", line 368, in getreply

    raise SMTPServerDisconnected("Connection unexpectedly closed")

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

 

has anyone encountered this before?


task is


    - name: Sending an e-mail
      mail:
        host: smtp.mail.yahoo.com
        port: 25
        username: "***"
        password: "***"
        to: ***
        subject: Ansible-report
        body: "report generated"
        attach:
          - "sanity_report.csv"
          - "{{playbook_dir}}/outputs.tgz"
      delegate_to: localhost

Oriol Tauleria

unread,
Oct 19, 2018, 11:02:01 AM10/19/18
to ansible...@googlegroups.com
Hello Umberto,
Try changing the port to 465 or 587 and enabling 
secure: try


And: https://docs.ansible.com/ansible/2.7/modules/mail_module.html

El dv., 19 oct. 2018 16.55, Umberto Manferdini <umberto.m...@gmail.com> va escriure:
--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/22818f52-2dfd-427a-b25c-dc49dba84517%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Umberto Manferdini

unread,
Oct 19, 2018, 11:09:10 AM10/19/18
to Ansible Project
Hi Oriol,
thanks for the tip
unfortunately it does not work
465 gives me the same error
587 times out when trying to connect
Umberto

Oriol Tauleria

unread,
Oct 19, 2018, 11:20:34 AM10/19/18
to ansible...@googlegroups.com
Hello Umberto,
Even in python?
(You need to change the smtplib.SMTP to SMTP_SSL with the new port?)
Thanks!

El dv., 19 oct. 2018 17.09, Umberto Manferdini <umberto.m...@gmail.com> va escriure:

Umberto Manferdini

unread,
Oct 19, 2018, 11:56:05 AM10/19/18
to Ansible Project
Hi Oriol
that helped a bit!
but also with python not working 100%

tried this

>>> server = smtplib.SMTP_SSL('smtp.mail.yahoo.it', 465)
>>> server.connect('smtp.mail.yahoo.it', 465)

(220, 'smtp.mail.yahoo.com ESMTP ready')
>>> server.login("***","***")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/smtplib.py", line 622, in login
    raise SMTPAuthenticationError(code, resp)

connect is way faster now and works at first attempt

anyhow i get auth error. curious thing is that i try to login with those credentials via browser and they work so i cannot understand why there is an AUTH error

Umberto

Oriol Tauleria

unread,
Oct 20, 2018, 4:48:18 AM10/20/18
to ansible...@googlegroups.com
Hello Umberto,
It's clear that the problem is not with Ansible xD.
You can try to configure thunderbird with your parameter and check where the configuration fails. (You can try changing the mail server to SMTP.mail.yahoo.com ... )

I'm out of ideas, sorry Umberto!

El dv., 19 oct. 2018 17.56, Umberto Manferdini <umberto.m...@gmail.com> va escriure:

Sathya Narayanan

unread,
Oct 20, 2018, 4:51:43 PM10/20/18
to ansible...@googlegroups.com
Hi Umberto, 

Just a quick thought, if you have any special character in your password, try searching them.

Some times -$ symbols are not valid when you pass that as a vatiable.

I am not sure if that can fix your problem, but just a suggestion.

--

Umberto Manferdini

unread,
Oct 22, 2018, 8:06:27 AM10/22/18
to Ansible Project
Thanks all,
a colleague of mine pointed to the solution
some mail services require 2FA and per-app passwords

now it is working!
Umberto
Reply all
Reply to author
Forward
0 new messages