一尘不染

Django 1.8使用Gmail SMTP发送邮件

django

我正在尝试smtp.gmail.com在Django 1.8中使用发送邮件

我的settings.py包含:

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

from django.core import mail
mail.send_mail('subject','message','sarath4coding@gmail.com',['sarath4coding@gmail.com'])

但是得到了这个错误

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 62, in send_mail
    return mail.send()
  File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages
    new_conn_created = self.open()
  File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django_smtp_ssl.py", line 14, in open
    self.connection.login(self.username, self.password)
  File "/usr/lib/python2.7/smtplib.py", line 622, in login
    raise SMTPAuthenticationError(code, resp)
SMTPAuthenticationError: (534, '5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbuze\n5.7.14 2FDKQt2Dlo2vqFIvbr6DnBItwWvh9DChPwbeTZO66N91gzmiA437Vqs80cZ9-8u13vxq5a\n5.7.14 bVahzO_BQcZ53yKbJ-YbAlmFE1XIK7MfH97O0wI1lvzpTG_WAHuTIBF0HD1GA2icUoUemt\n5.7.14 ErZn4qb942aAIMG103FnrzLp4txXTbXC-wGLpaz5yvnUN5thahvv3-RiIVW8F1QddZKZlg\n5.7.14 qQKpqWw56zr1AcO2s_oaBEt556fQ> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14  Learn more at\n5.7.14  https://support.google.com/mail/answer/78754 kx14sm6579665pab.0 - gsmtp')

我尝试了文档所说的所有内容,并遵循了许多建议的解决方案。

例如https://accounts.google.com/DisplayUnlockCaptcha,启用安全性较低的应用程序等。

但我仍然有错误

谁能说出如何正确配置Django 1.8以使用Gmail发送邮件。


阅读 508

收藏
2020-03-29

共1个答案

一尘不染

为我在settings.py中:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'test@gmail.com'
EMAIL_HOST_PASSWORD = 'test'
EMAIL_PORT = 587

views.py

from django.core.mail import EmailMessage

email = EmailMessage('title', 'body', to=[email])
email.send()
2020-03-29