Fix for starttls connections for notification mail module

* starttls connection usage is now adding smtp.ehlo before smtp.has_extn function.
* Fixes #42338

(cherry picked from commit 5df01abd58)
This commit is contained in:
Agris 2018-07-06 02:09:42 +03:00 committed by Matt Clay
parent 944161c9ea
commit cbebcc3ac8
2 changed files with 11 additions and 4 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- fix mail module when using starttls https://github.com/ansible/ansible/issues/42338

View file

@ -263,6 +263,11 @@ def main():
except smtplib.SMTPException as e:
module.fail_json(rc=1, msg='Unable to Connect %s:%s: %s' % (host, port, to_native(e)), exception=traceback.format_exc())
try:
smtp.ehlo()
except smtplib.SMTPException as e:
module.fail_json(rc=1, msg='Helo failed for host %s:%s: %s' % (host, port, to_native(e)), exception=traceback.format_exc())
if int(code) > 0:
if not secure_state and secure in ('starttls', 'try'):
if smtp.has_extn('STARTTLS'):
@ -272,13 +277,13 @@ def main():
except smtplib.SMTPException as e:
module.fail_json(rc=1, msg='Unable to start an encrypted session to %s:%s: %s' %
(host, port, to_native(e)), exception=traceback.format_exc())
try:
smtp.ehlo()
except smtplib.SMTPException as e:
module.fail_json(rc=1, msg='Helo failed for host %s:%s: %s' % (host, port, to_native(e)), exception=traceback.format_exc())
else:
if secure == 'starttls':
module.fail_json(rc=1, msg='StartTLS is not offered on server %s:%s' % (host, port))
try:
smtp.ehlo()
except smtplib.SMTPException as e:
module.fail_json(rc=1, msg='Helo failed for host %s:%s: %s' % (host, port, to_native(e)), exception=traceback.format_exc())
if username and password:
if smtp.has_extn('AUTH'):