Ansible mail module failing at sending mail

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 “”, line 1, in

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 “”, line 1, in

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 “”, line 1, in

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: ***
    body: “report generated”
    attach:
  • “sanity_report.csv”
  • “{{playbook_dir}}/outputs.tgz”
    delegate_to: localhost

Hello Umberto,
Try changing the port to 465 or 587 and enabling
secure: try

More info: https://help.yahoo.com/kb/SLN4724.html
And: https://docs.ansible.com/ansible/2.7/modules/mail_module.html

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

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

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.manferdini@gmail.com> va escriure:

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 “”, line 1, in
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

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.manferdini@gmail.com> va escriure:

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.

Thanks all,
a colleague of mine pointed to the solution
https://stackoverflow.com/questions/40904957/send-email-using-my-yahoo-account-error-message
some mail services require 2FA and per-app passwords

now it is working!
Umberto