Django无法向收件人发送电子邮件

时间:2015-11-18 15:56:02

标签: python django email

我一直在尝试开发一个需要验证电子邮件地址的小型演示应用。谷歌搜索后我发现我可以使用

 django.core.mail.EmailMessage

发送电子邮件。以下是我为 settings.py 文件所做的更改。

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

我创建了一条消息并尝试按以下方式发送。

 email = EmailMessage('Subject', 'Body', ['recipient1@gmail.com', 'recipient2@particulate.me'])
 email.send()

但是我没有在收件人端收到任何电子邮件。怎么了。帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

您似乎错过了应该在收件人列表之前的from_address参数。我相信EmailMessage构造函数应该如下所示:

email = EmailMessage('Subject', 'Body', EMAIL_HOST_USER, ['recipient1@gmail.com', 'recipient2@particulate.me'])

实际上您可以省略发件人的地址,但它会使用DEFAULT_FROM_EMAIL核心设置中存储的值。

答案 1 :(得分:1)

您错过了from_email,但未设置DEFAULT_FROM_EMAIL。 来自docs

email = EmailMessage('Hello', 'Body goes here', 'from@example.com',
            ['to1@example.com', 'to2@example.com'], ['bcc@example.com'],
            reply_to=['another@example.com'], headers={'Message-ID': 'foo'})
  

from_email:发件人的地址。 fred@example.comFred <fred@example.com>两种形式都是合法的。如果省略,则使用DEFAULT_FROM_EMAIL设置。