21

我正在尝试通过设置 gmail smtp 从 Django 发送电子邮件。但每次它返回我 0 状态。我在stackoverflow中搜索了不同的相关答案,我以同样的方式设置了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 发送电子邮件吗?非常感谢您的帮助 在此先感谢

4

2 回答 2

26

你的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)
于 2013-10-09T20:15:50.977 回答
2

尝试将 EMAIL_USE_TLS=True 更改为 EMAIL_USE_SSL=True 和 EMAIL_PORT=465

https://docs.djangoproject.com/en/1.10/topics/email/

于 2017-04-04T15:31:26.750 回答