python - Django 1.8 使用 gmail SMTP 发送邮件

标签 python django email gmail

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

我的 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 发送邮件。

最佳答案

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()
    

和:https://accounts.google.com/DisplayUnlockCaptcha

并确保为不太安全的应用打开权限。

关于python - Django 1.8 使用 gmail SMTP 发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31324005/

相关文章:

python - 如何在 matplotlib contourf 和 colorbar 中显示给定数量的颜色

python - 在数据框中的多个组中应用 Pandas iterrows 逻辑

python - 如何使用 Django 在任务和 View 之间共享缓存?

sql - 如何检查电子邮件附件是否已被打开

php - 尝试使用 SwiftMailer 和 Sendgrid 发送电子邮件时出现 fatal error

ruby-on-rails - 连接被拒绝 - connect(2) Ruby on Rails 邮件设置

python - 如何在常规 django View 中将数据添加到 tastypie 资源

django - 如何在迁移期间控制创建字段的顺序

python - Django 聚合和以下外键关系

python - 即使命令成功,为什么 subprocess.run 也会创建返回代码 1?