Email Module Failure on Ansible

I have set up an ansible tower using the following docker image

**ybalt/ansible-tower:****latest**

After setting up I have upgraded the applications inside the container by 

**apt-get upgrade**

After that following are the versions inside my conatiner

<b>ansible 2.7.6
  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.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Jul 18 2016, 15:02:52) [GCC 4.8.4</b>**]**

Then when I execute a script that uses the mail module in ansible the following error shown in the ansible tower output

<b>fatal: [Server]: FAILED! => {
    "changed": false, 
    "module_stderr": "Shared connection to x.x.x.x closed.\r\n", 
    "module_stdout": "\r\nTraceback (most recent call last):\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1549369654.27-211111564926363/AnsiballZ_mail.py\", line 113, in <module>\r\n    _ansiballz_main()\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1549369654.27-211111564926363/AnsiballZ_mail.py\", line 105, in _ansiballz_main\r\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1549369654.27-211111564926363/AnsiballZ_mail.py\", line 48, in invoke_module\r\n    imp.load_module('__main__', mod, module, MOD_DESC)\r\n  File \"/tmp/ansible_mail_payload_bQeVQh/__main__.py\", line 381, in <module>\r\n  File \"/tmp/ansible_mail_payload_bQeVQh/__main__.py\", line 330, in main\r\nTypeError: 'NoneType' object is not iterable\r\n", 
    "msg": </b>**"MODULE FAILURE\nSee stdo…**

I have developed a seperate palybook with email configurations inorder 
to refer from an any playbook. So the following is the variables that I 
have defined in the playbook 

email_host: "smtp.sendgrid.net"
email_port: 587
email_username: "username"
email_password: "password"
email_to: "admin@example.com"
email_cc:
email_subject: "test"
email_body:
email_subtype: "html"
email_secure: "try"
email_from: "noreply@example.com ( Ansible Tower )"
email_bcc:
email_attach:

Following is the way how i refer to the above email playbook from my other playbooks

<b>- name: Email body on failure
  set_fact:
    email_body="Hi {{ tower_user_name }}, <br><br> Status - Failed
                                                                  <br> Issue - Build path or given build name doesn't exist
                                                                  <br> Suggested Solution - Check the validity of the build path or the build name.
                                                                  <br><br> Thank You"

- name: Sending an email
  include_role:
    name: email
    tasks_from: main.yml
  when: path_build_location.stat.exists == False</b>

But when that section triggers and when a second play book tries to send
 an email. I get the above error. Variables in my ansible config file 
are fully commented out and all are overidden by the ansible tower 
variables.  All the configurations are rechecked and are according to 
the ansible documentation. I even can sent the notifications via the 
ansible tower but not through the mail module in ansible. But I expected
 to sent the mail automatically by the ansible script. But that didn't 
happen..

Is there something wrong with the email module.. Please give me a explantion. I'm bit stuck in this and I'm a newbie to ansible