Cannot set Django to work with smtp.gmail.com

前端 未结 5 1617
不知归路
不知归路 2021-01-01 13:05

I\'ve been trying to get django to work with gmail\'s smtp server to send mails but I always get this traceback. Any help will be most appreciated.

----- settings.p

相关标签:
5条回答
  • 2021-01-01 13:12

    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.

    0 讨论(0)
  • 2021-01-01 13:12
    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 讨论(0)
  • 2021-01-01 13:14

    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 .

    0 讨论(0)
  • 2021-01-01 13:20

    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".

    0 讨论(0)
  • 2021-01-01 13:21

    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'
    
    0 讨论(0)
提交回复
热议问题