[Django]-Cannot set Django to work with smtp.gmail.com

10👍

I have recently set this up and had a slightly different settings.py config.

Move:

EMAIL_USE_TLS = True 

to the top above EMAIL_HOST

Add:

DEFAULT_FROM_EMAIL = 'user@gmail.com'
SERVER_EMAIL = 'user@gmail.com'

17👍

Change your settings like this :

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

Then try:

python manage.py shell
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('Mail Test', 'This is a test', to=['somemail@something.com'])
>>> email.send()

This should return with the status 1, which means it worked.

👤unni

7👍

I had the same problem, and I searched for half a day to find a solution. Most of the proposed solutions are talking about where you should initialize EMAIL_USE_TLS in relation to the other settings. I don’t think this is a solution for the problem.

I found the solution at:
https://support.google.com/accounts/answer/185833?hl=en
and finally
https://security.google.com/settings/security/apppasswords

If you are testing your project on a local machine, you should go to the latter link, and enable “Access for less secure apps”.

👤1man

0👍

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT=465
EMAIL_HOST_USER = 'youruser'
EMAIL_HOST_PASSWORD = '*********'
DEFAULT_EMAIL_FROM = 'youremail@gmail.com'

works fine

0👍

you have to go to this link
https://www.google.com/settings/u/2/security/lesssecureapps?pageId=none
and turn on the access for less secure apps

this option allows django to access your email and send email via it .

Leave a comment