Hello Ansible Team/Users, I have a Playbook which is expected to send an email, as below. When run, it errors out with "Unable to Connect mailer.domain.com:25: Connection unexpectedly closed: timed out".
--- - hosts: localhost gather_facts: yes vars_prompt: - name: file prompt: "Please enter the name of the .zip file to email!" private: no tasks: - name: Sending Email mail: host: mailer.domain.com port: 25 subject: Ansible Test from: fromaddr...@domain.com to: - toaddr...@domain.com cc: - ccaddr...@domain.com subtype: html secure: starttls timeout: 120 attach: - "~/{{ file }}.zip" Returns the below ERROR. [bharath@acm ~]$ ansible-playbook test.yml -vvvv ansible-playbook 2.7.4 config file = /etc/ansible/ansible.cfg configured module search path = [u '/home/nfs-home/bharath/.ansible/plugins/modules', u '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible-playbook python version = 2.7.5 (default, Sep 12 2018, 05:31:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] Using /etc/ansible/ansible.cfg as config file setting up inventory plugins /home/nfs-home/bharath/hosts did not meet host_list requirements, check plugin documentation if this is unexpected /home/nfs-home/bharath/hosts did not meet script requirements, check plugin documentation if this is unexpected Parsed /home/nfs-home/bharath/hosts inventory source with ini plugin Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7 /site-packages/ansible/plugins/callback/default.pyc PLAYBOOK: test.yml *************************************************************************************************************************************************************************************** 1 plays in test.yml Please enter the name of the .zip file to email!!: test PLAY [localhost] *************************************************************************************************************************************************************************************** TASK [Gathering Facts] *************************************************************************************************************************************************************************************** task path: /home/nfs-home/bharath/test.yml:2 <127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: bharath <127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /tmp/.ansible-${USER}/ansible-tmp-1545085312.03-180815852497310 `" && echo ansible-tmp-1545085312.03-180815852497310="` echo /tmp/.ansible-${USER}/ansible-tmp-1545085312.03-180815852497310 `" ) && sleep 0' Using module file /usr/lib/python2.7/site-packages/ansible/modules/system/ setup.py <127.0.0.1> PUT /home/nfs-home/bharath/.ansible/ansible-local-53102i8q99p/tmpDy7Vr0 TO /tmp/.ansible-bharath/ansible-tmp-1545085312.03-180815852497310/ AnsiballZ_setup.py <127.0.0.1> EXEC /bin/sh -c 'chmod u+x /tmp/.ansible-bharath/ansible-tmp-1545085312.03-180815852497310/ /tmp/.ansible-bharath/ansible-tmp-1545085312.03-180815852497310/AnsiballZ_setup.py && sleep 0' <127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /tmp/.ansible-bharath/ansible-tmp-1545085312.03-180815852497310/AnsiballZ_setup.py && sleep 0' <127.0.0.1> EXEC /bin/sh -c 'rm -f -r /tmp/.ansible-bharath/ansible-tmp-1545085312.03-180815852497310/ > /dev/null 2>&1 && sleep 0' ok: [localhost] META: ran handlers TASK [Sending Email] ********************************************************************************************************************************************************************************** task path: /home/nfs-home/bharath/test.yml:12 <127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: bharath <127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /tmp/.ansible-${USER}/ansible-tmp-1545085313.79-80160480232068 `" && echo ansible-tmp-1545085313.79-80160480232068="` echo /tmp/.ansible-${USER}/ansible-tmp-1545085313.79-80160480232068 `" ) && sleep 0' Using module file /usr/lib/python2.7/site-packages/ansible/modules/ notification/mail.py <127.0.0.1> PUT /home/nfs-home/bharath/.ansible/ansible-local-53102i8q99p/tmpACwk7J TO /tmp/.ansible-bharath/ansible-tmp-1545085313.79-80160480232068/ AnsiballZ_mail.py <127.0.0.1> EXEC /bin/sh -c 'chmod u+x /tmp/.ansible-bharath/ansible-tmp-1545085313.79-80160480232068/ /tmp/.ansible-bharath/ansible-tmp-1545085313.79-80160480232068/AnsiballZ_mail.py && sleep 0' <127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /tmp/.ansible-bharath/ansible-tmp-1545085313.79-80160480232068/AnsiballZ_mail.py && sleep 0' <127.0.0.1> EXEC /bin/sh -c 'rm -f -r /tmp/.ansible-bharath/ansible-tmp-1545085313.79-80160480232068/ > /dev/null 2>&1 && sleep 0' The full traceback is: Traceback (most recent call last): File "/tmp/ansible_mail_payload_fe4hgc/__main__.py", line 263, in main code, smtpmessage = smtp.connect(host, port) File "/usr/lib64/python2.7/smtplib.py", line 316, in connect (code, msg) = self.getreply() File "/usr/lib64/python2.7/smtplib.py", line 364, in getreply + str(e)) SMTPServerDisconnected: Connection unexpectedly closed: timed out fatal: [localhost]: FAILED! => { "changed": false, "invocation": { "module_args": { "attach": [ "~/test.zip" ], "bcc": [], "body": null, "cc": [ "ccaddr...@domain.com" ], "charset": "utf-8", "from": "fromaddr...@domain.com", "headers": [], "host": "mailer.domain.com", "password": null, "port": 25, "secure": "never", "sender": "fromaddr...@domain.com", "subject": "Ansible Test", "subtype": "html", "timeout": 120, "to": [ "toaddr...@domain.com" ], "username": null } }, "msg": "Unable to Connect mailer.domain.com:25: Connection unexpectedly closed: timed out", "rc": 1 } to retry, use: --limit @/home/nfs-home/bharath/test.retry PLAY RECAP *************************************************************************************************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=1 However, the below simple python code can send an email successfully. #!/usr/bin/python import smtplib sender = 'fromaddr...@domain.com' receivers = ['toaddr...@domain.com'] message = """ Ansible Test """ try: smtpObj = smtplib.SMTP('mailer.domain.com', 25) smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email" Can anyone please let me know where am I going wrong. Or, any help is appreciated. Thanks in advance. -- 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-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/9a140e89-a8bc-4886-a1dd-84102c99e518%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.