如何更改Django电子邮件中的发件人地址?
正如in the docs所述,SERVER_EMAIL
设置应该改变从Django(1.3.1)服务器发送到ADMINS
的崩溃电子邮件中的“发件人”地址。如何更改Django电子邮件中的发件人地址?
但事实并非如此。
这是否适合你在1.3.1? (或任何Django版本)
Django坚持只使用我的EMAIL_HOST_USER
- 我的电子邮件登录/实际地址 - 作为发件人地址。我使用Gmail作为SMTP服务器,所以我想知道这是否与它有关。 Gmail会阻止这类事情吗?我发誓我已经得到这个工作。
这有点令人讨厌,因为我们有多个项目,似乎都是从同一个地址发送电子邮件,我们必须挖掘回溯来查看它是哪个项目。
问题是Gmail。一直到smtplib
库,指定了正确的“发件人”地址,并且此库将正确的地址发送到Gmail。
此Gmail Support page意味着(特别是在“POP/IMAP”用户注意事项的底部附近),您需要在Gmail的设置下添加地址作为“附加电子邮件地址”,以便能够通过Gmail的SMTP发送邮件服务器。
这当然需要验证;因为我的'发件人'地址没有收件箱(这是假的!),目前它对我来说不可能。但至少它不是Django的bug! :)
(注:这是Gmail在垃圾邮件阻止你一个非常明显的方式,我敢肯定,这就是为什么他们这样做)
从我可以在代码(1.3.1)堆栈跟踪电子邮件使用mail_admins法作为从指定地址发送带有SERVER_EMAIL看到:
mail = EmailMultiAlternatives(u'%s%s' % (settings.EMAIL_SUBJECT_PREFIX, subject),
message, settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS],
connection=connection)
其定义为:
class EmailMultiAlternatives(EmailMessage):
[...]
def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
connection=None, attachments=None, headers=None, alternatives=None,
cc=None):
我建议在EmailMultiAlternatives中放置跟踪输出以验证是否使用了正确的电子邮件地址。
我给的是,当我有机会了(几个)额外的分钟︰) – Dave
非常intreesting,感谢您的更新。这听起来像一个反垃圾邮件工具。 –