Enabling SMTP authentication PLAIN mechanism for web2py
- By Abhishek Bajpai
- Thu 08 October 2015
Some SMTP servers needs clients to configuration for authentication mechanism. Their is no way to configure this mechanism in web2py.
In order to enable this mechanism changes are required in /usr/lib64/python2.7/smtplib.py
AUTH_PLAIN = "PLAIN"
AUTH_CRAM_MD5 = "CRAM-MD5"
AUTH_LOGIN = "LOGIN"
self.ehlo_or_helo_if_needed()
if not self.has_extn("auth"):
raise SMTPException("SMTP AUTH extension not supported by server.")
# Authentication methods the server supports:
authlist = self.esmtp_features["auth"].split()
# List of authentication methods we support: from preferred to
# less preferred methods. Except for the purpose of testing the weaker
# ones, we prefer stronger methods like CRAM-MD5:
preferred_auths = [AUTH_CRAM_MD5, AUTH_PLAIN, AUTH_LOGIN]
# Determine the authentication method we'll use
authmethod = None
just modify the preferred_auths list according to your preferred settings.
In my case
preferred_auths = [AUTH_PLAIN, AUTH_CRAM_MD5, AUTH_PLAIN, AUTH_LOGIN]