# Ansible Mail Module Failing

**URL:** <https://forum.ansible.com/t/ansible-mail-module-failing/26911>\
**Category:** Ansible Project\
**Created:** [March 6, 2018, 3:09pm UTC](https://forum.ansible.com/t/ansible-mail-module-failing/26911 "2018-03-06T15:09:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Simon\_Hayes](https://avatars.discourse-cdn.com/v4/letter/s/ee7513/32.png) [@Simon\_Hayes](https://forum.ansible.com/u/Simon_Hayes)\
**Post date:** [March 6, 2018, 3:09pm UTC](https://forum.ansible.com/t/ansible-mail-module-failing/26911/1 "2018-03-06T15:09:52Z")

</div>

I’m running a simple playbook to report on server configurations which is formatted into an html file from a template. I use the mail module to attach the html file into the body of the mail as follows:

**- hosts: localhost**  
**tasks:**  
**- name: Send e-mail**  
**local\_action: mail**  
**port=25**  
**headers=“Content-type=text/html”**  
**subtype=html**  
**from=“[xxx@xxx.com](mailto:xxx@xxx.com)”**  
**to=“[xxx@xxx.com](mailto:xxx@xxx.com)”**  
**subject=‘Server Report’**  
**body=“{{ lookup(‘file’, ‘/tmp/report.html’) }}”**

When I run this on a group of 13/14 servers the play runs fine, mail is sent and received as expected. If I add more servers to the group, the initial parts of the playbook run fine, but then it fails when attempting to send the mail. I’ve not seen this with any other playbooks or roles I have on the same server, emails seem to send out just fine

_TASK [Send e-mail] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*_  
_An exception occurred during task execution. To see the full traceback, use -vvv. The error was: socket.error: [Errno 111] Connection refused_  
_fatal: [localhost → localhost]: FAILED! =\> {“changed”: false, “module\_stderr”: “Traceback (most recent call last):\n File "/tmp/ansible\_TNdcry/ansible\_module\_mail.py", line 386, in \n main()\n File "/tmp/ansible\_TNdcry/ansible\_module\_mail.py", line 257, in main\n code, smtpmessage = smtp.connect(host, port=port)\n File "/usr/lib64/python2.6/smtplib.py", line 300, in connect\n self.sock = self.\_get\_socket(host, port, self.timeout)\n File "/usr/lib64/python2.6/smtplib.py", line 278, in \_get\_socket\n return socket.create\_connection((port, host), timeout)\n File "/usr/lib64/python2.6/socket.py", line 567, in create\_connection\n raise error, msg\nsocket.error: [Errno 111] Connection refused\n”, “module\_stdout”: “”, “msg”: “MODULE FAILURE”, “rc”: 1}_

/var/log/messages shows the following abrtd errors which appear to come from python and ansible\_module\_mail.py:

_Mar 5 17:45:13 \<masked\_server\_name\> abrt: [ID - [user.info](http://user.info)] detected unhandled Python exception in ‘/tmp/ansible\_TNdcry/ansible\_module\_mail.py’_  
_Mar 5 17:45:14 \<masked\_server\_name\> abrtd: [ID - daemon.err] Directory ‘pyhook-2018-03-05-17:45:14-17875’ creation detected_  
_Mar 5 17:45:14 \<masked\_server\_name\> abrt-server[18081]: [ID - daemon.err] Saved Python crash dump of pid 17875 to /var/spool/abrt/pyhook-2018-03-05-17:45:14-17875_

What I don’t know is whether this is ansible and/or python, or perhaps my poor implementation of the mail module. Google search has not returned any worthy suggestions or causes. Could I be missing something server side - python config or sendmail?  
Does anyone have any ideas?

Version information:

**ansible 2.4.3.0**  
**config file = /etc/ansible/ansible.cfg**  
**configured module search path = [u’/root/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]**  
**ansible python module location = /usr/lib/python2.6/site-packages/ansible**  
**executable location = /usr/bin/ansible**  
**python version = 2.6.6 (r266:84292, Aug 9 2016, 06:11:56) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]**

-Simon

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [March 7, 2018, 3:00am UTC](https://forum.ansible.com/t/ansible-mail-module-failing/26911/2 "2018-03-07T03:00:42Z")

</div>

So the mail module is not correctly capturing the exception, but the  
base issue that causes the problem is:

[Errno 111] Connection refused

Which might happen for many reasons, most likely resource starvation  
(num of connections/file descriptors/firewall throttle/etc).

I would check dmesg and other logs for the same period on both  
machines (the one executing the task and smtp server) to see if either  
hit a limit.

---

<div class="post-metadata">

**Author:** ![rraka1002](https://avatars.discourse-cdn.com/v4/letter/r/bcef8e/32.png) [@rraka1002](https://forum.ansible.com/u/rraka1002)\
**Post date:** [March 7, 2018, 5:45am UTC](https://forum.ansible.com/t/ansible-mail-module-failing/26911/3 "2018-03-07T05:45:35Z")

</div>

@Simon, So whenyou run `ansible-playbook --syntax-check mail.yml` does it gives some error code?  
i tried that with ansible version 2.4 and it works as expected

---

<div class="post-metadata">

**Author:** ![mrdatamapper](https://avatars.discourse-cdn.com/v4/letter/m/7feea3/32.png) [@mrdatamapper](https://forum.ansible.com/u/mrdatamapper)\
**Post date:** [November 6, 2018, 1:29pm UTC](https://forum.ansible.com/t/ansible-mail-module-failing/26911/4 "2018-11-06T13:29:40Z")

</div>

I add **secure: neve** r and now its work

`

- name: mail send  
mail:  
host: 127.0.0.1  
port: 25  
**secure** \*\*:\*\* **never**  
`
