在我的 settings.py 中,我有以下值:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'us[email protected] /cdn-cgi/l/email-protection'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_USE_TLS = True
然后在我看来,我从我的模型中获得了一个电子邮件地址,例如:
#models.py
class Profile(models.Model):
name = models.CharField(...)
email_address = models.EmailField()
我们假设email_address
in the Profile
模型是[email protected] /cdn-cgi/l/email-protection
#views
def send_email(request,profile_id):
profile = Profile.objects.get(pk=profile_id)
email = profile.email_address
所以当我发送邮件时
send_mail('subject', 'content', email, ['[email protected] /cdn-cgi/l/email-protection'])
当电子邮件已经发送时,sender_email 仍然是[电子邮件受保护] /cdn-cgi/l/email-protection。有人可以教我如何覆盖这个电子邮件地址吗?谢谢。
The DEFAULT_FROM_EMAIL https://docs.djangoproject.com/en/stable/ref/settings/#default-from-email设置就是默认的。 Django 在自动发送电子邮件的地方使用此功能(例如将错误报告发送到ADMINS
)。当您致电send_mail
直接方法,您必须提供from_email
范围。即使你wanted the DEFAULT_FROM_EMAIL
,你必须从django.conf.settings
然后将其传递进去。
我最好的猜测是 Gmail 实际上是罪魁祸首。据我所知,Gmail 不允许您指定自定义发件人,因为人数太多already尝试使用 Gmail 发送垃圾邮件,他们希望阻止这种做法。
基本上,当您的电子邮件通过 Gmail 外发邮件服务器时,它会忽略您发送的自定义标头并从实际的 Gmail 帐户用户发送。您可以通过在 Gmail 设置中添加要用作有效发件人的自定义电子邮件来解决此问题。转到“设置”,然后转到“帐户和导入”选项卡。找到标题为“发送邮件为”的部分,然后单击“添加您拥有的其他电子邮件地址”链接。您可以从那里添加一个要发送的新电子邮件帐户,它会让您通过电子邮件确认地址(因此它必须是可以接收电子邮件的有效地址)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)