# Mail Callback

**URL:** <https://forum.ansible.com/t/mail-callback/28528>\
**Category:** Ansible Project\
**Created:** [September 7, 2018, 11:01am UTC](https://forum.ansible.com/t/mail-callback/28528 "2018-09-07T11:01:44Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![JS11](https://avatars.discourse-cdn.com/v4/letter/j/f17d59/32.png) [@JS11](https://forum.ansible.com/u/JS11)\
**Post date:** [September 7, 2018, 11:01am UTC](https://forum.ansible.com/t/mail-callback/28528/1 "2018-09-07T11:01:44Z")

</div>

Hello!

I am trying to receive email alerts anytime a playbook fails.

Could anyone guide me as to how I can configure / setup the mail callback feature to work?

I tried un-commenting the following line in ansible.cfg and added the following lines:  
`  
callback\_whitelist = timer, mail (uncommented)

[callback\_mail] (added)  
to = [user@example.com](mailto:user@example.com) (added)  
`

However, I got the following error when I ran the playbook:

[WARNING]: Failure using method (v2\_runner\_on\_failed) in callback plugin (\<ansible.plugins.callback.mail.CallbackModule object at  
0x25c8e10\>): sub() got an unexpected keyword argument ‘flags’

Callback Exception:  
File “/usr/lib/python2.6/site-packages/ansible/executor/task\_queue\_manager.py”, line 374, in send\_callback  
method(\*new\_args, \*\*kwargs)  
File “/usr/lib/python2.6/site-packages/ansible/plugins/callback/mail.py”, line 220, in v2\_runner\_on\_failed  
self.mail\_result(result, ‘Failed’)  
File “/usr/lib/python2.6/site-packages/ansible/plugins/callback/mail.py”, line 182, in mail\_result  
body += self.indent(‘%s\n’ % result.\_task.action)  
File “/usr/lib/python2.6/site-packages/ansible/plugins/callback/mail.py”, line 136, in indent  
return re.sub(‘^’, ’ ’ \* indent, multiline, flags=re.MULTILINE)

Any assistance will be much appreciated !

Regards  
JS

---

<div class="post-metadata">

**Author:** ![Martin\_Krizek](https://avatars.discourse-cdn.com/v4/letter/m/d26b3c/32.png) [@Martin\_Krizek](https://forum.ansible.com/u/Martin_Krizek)\
**Post date:** [September 7, 2018, 11:15am UTC](https://forum.ansible.com/t/mail-callback/28528/2 "2018-09-07T11:15:24Z")

</div>

The traceback you're getting says "unexpected keyword argument  
'flags'". That argument was added in Python 2.7 which is also the  
minimal Python version supported by Ansible on the controller side.

M.

---

<div class="post-metadata">

**Author:** ![Martin\_Krizek](https://avatars.discourse-cdn.com/v4/letter/m/d26b3c/32.png) [@Martin\_Krizek](https://forum.ansible.com/u/Martin_Krizek)\
**Post date:** [September 7, 2018, 11:24am UTC](https://forum.ansible.com/t/mail-callback/28528/3 "2018-09-07T11:24:05Z")

</div>

But that's being done for 2.7. What Ansible version are you running?

---

<div class="post-metadata">

**Author:** ![JS11](https://avatars.discourse-cdn.com/v4/letter/j/f17d59/32.png) [@JS11](https://forum.ansible.com/u/JS11)\
**Post date:** [September 7, 2018, 12:33pm UTC](https://forum.ansible.com/t/mail-callback/28528/4 "2018-09-07T12:33:48Z")

</div>

Hi Martin

Thanks for the swift response!

Ah ok, I shall upgrade the Python Version in that case!

I am currently running: ansible 2.5.5

Regards  
JS
