I am trying to configure Django's send_email so I can send password reset emails to users. So far I've had no luck on getting it to work. I've set up a basic Gmail account (no Google App etc) and in my Django settings.py i have:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = 'my_password'
EMAIL_HOST_USER = '[email protected]'
EMAIL_PORT = 587
MAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = '[email protected]'
Then i try to test this by doing:
python manage.py shell
>>> from django.core.mail import send_mail
>>> send_mail('test', 'test', '[email protected]', ['[email protected]'])
and I get the error message
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Program Files\Python27\lib\site-packages\django\core\mail\__init__.py
", line 62, in send_mail
connection=connection).send()
File "C:\Program Files\Python27\lib\site-packages\django\core\mail\message.py"
, line 255, in send
return self.get_connection(fail_silently).send_messages([self])
File "C:\Program Files\Python27\lib\site-packages\django\core\mail\backends\sm
tp.py", line 88, in send_messages
new_conn_created = self.open()
File "C:\Program Files\Python27\lib\site-packages\django\core\mail\backends\sm
tp.py", line 55, in open
self.connection.login(self.username, self.password)
File "C:\Program Files\Python27\lib\smtplib.py", line 577, in login
raise SMTPException("SMTP AUTH extension not supported by server.")
SMTPException: SMTP AUTH extension not supported by server.
Does anyone have an idea what is going on! Any hint is appreciated!
You have made a typo in your settings. TLS should be set with EMAIL_USE_TLS
not MAIL_USE_TLS
. Not using TLS while connecting to 587 generates this error.
This response is late for the question; but will hopefully help future readers of this thread.
As pointed out by @WAF, EMAIL_USE_TLS = True resovles this error.
Additionally, if the resolution is being validated via the shell command of the django manage tool, we'll have to restart the shell after adding the above setting & repeat the validation steps.
The following summarizes the minimal config for gmail validation from django shell:
In settings.py:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '<email.id>'
EMAIL_HOST_PASSWORD = '<pw>'
EMAIL_USE_TLS = True
In the shell of the django manage tool:
from django.core.mail import send_mail
send_mail('From django', 'Test email from dj manage', '[email protected]', ['[email protected]'])
... 1
I found the problem... you have to use this code
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
instead of
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
Make sure you have also set the EMAIL_BACKEND
setting:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With