我一直在尝试开发一个需要验证电子邮件地址的小型演示应用。谷歌搜索后我发现我可以使用
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()
但是我没有在收件人端收到任何电子邮件。怎么了。帮助将不胜感激。感谢。
答案 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.com
和Fred <fred@example.com>
两种形式都是合法的。如果省略,则使用DEFAULT_FROM_EMAIL
设置。