Python Django Gmail SMTP 设置
Posted
技术标签:
【中文标题】Python Django Gmail SMTP 设置【英文标题】:Python Django Gmail SMTP setup 【发布时间】:2013-10-16 09:23:54 【问题描述】:我正在尝试通过设置 gmail smtp 从 Django 发送电子邮件。 但每次它返回我 0 状态。我已经在 *** 中搜索了不同的相关答案,并且我正在以相同的方式设置 smtp 服务器,但它仍然没有发送任何电子邮件.. 下面是我的设置文件
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'my gmail account'
EMAIL_HOST_PASSWORD = 'my gmail account password'
DEFAULT_FROM_EMAIL = 'my gmail account'
DEFAULT_TO_EMAIL = 'to email'
下面是我的代码
from django.conf import settings
from django.core.mail import send_mail
print "Sending Email"
mail_title = 'Test Email'
message = 'This is a test email.'
email = settings.DEFAULT_FROM_EMAIL
recipients = [settings.DEFAULT_TO_EMAIL]
print send_mail(mail_title, message, email, recipients, settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD)
print "Email Sent"
但每次打印状态 0 表示未发送电子邮件。关于环境,我在 Amazon EC2 实例上运行此代码,该实例具有 ubuntu 作为操作系统,Apache 作为服务器..
我需要做额外的设置来通过 gmail smtp 发送电子邮件吗? 非常感谢您的帮助 提前致谢
【问题讨论】:
此代码是否可以在您自己的工作站或 EC2 以外的其他地方工作?这将允许隔离问题的根源 【参考方案1】:尝试将 EMAIL_USE_TLS=True 更改为 EMAIL_USE_SSL=True 和 EMAIL_PORT=465
https://docs.djangoproject.com/en/1.10/topics/email/
【讨论】:
【参考方案2】:您的gmail.smtp
设置正确。看起来您没有正确调用 send_email
函数,这就是它没有发送的原因。在 python shell 中,尝试以下操作:
import django
from django.conf import settings
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', settings.EMAIL_HOST_USER,
['to@example.com'], fail_silently=False)
【讨论】:
以上是关于Python Django Gmail SMTP 设置的主要内容,如果未能解决你的问题,请参考以下文章
无法将 Django 设置为与 smtp.gmail.com 一起使用
Django 通过 smtp.gmail.com 发送电子邮件的问题
在 django 中发送邮件 - gmail smtp 问题
如何在 django 中使用 gmail smtp 更改回复和返回路径标头
带有 smtp.gmail SMTPAuthenticationError 534 的 Django 电子邮件需要特定于应用程序的密码