2011-09-27 151 views
2

正如in the docs所述,SERVER_EMAIL设置应该改变从Django(1.3.1)服务器发送到ADMINS的崩溃电子邮件中的“发件人”地址。如何更改Django电子邮件中的发件人地址?

但事实并非如此。

这是否适合你在1.3.1? (或任何Django版本)

Django坚持只使用我的EMAIL_HOST_USER - 我的电子邮件登录/实际地址 - 作为发件人地址。我使用Gmail作为SMTP服务器,所以我想知道这是否与它有关。 Gmail会阻止这类事情吗?我发誓我已经得到这个工作。

这有点令人讨厌,因为我们有多个项目,似乎都是从同一个地址发送电子邮件,我们必须挖掘回溯来查看它是哪个项目。

回答

3

问题是Gmail。一直到smtplib库,指定了正确的“发件人”地址,并且此库将正确的地址发送到Gmail。

Gmail Support page意味着(特别是在“POP/IMAP”用户注意事项的底部附近),您需要在Gmail的设置下添加地址作为“附加电子邮件地址”,以便能够通过Gmail的SMTP发送邮件服务器。

这当然需要验证;因为我的'发件人'地址没有收件箱(这是假的!),目前它对我来说不可能。但至少它不是Django的bug! :)

(注:这是Gmail在垃圾邮件阻止你一个非常明显的方式,我敢肯定,这就是为什么他们这样做)

+0

非常intreesting,感谢您的更新。这听起来像一个反垃圾邮件工具。 –

1

从我可以在代码(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中放置跟踪输出以验证是否使用了正确的电子邮件地址。

+0

我给的是,当我有机会了(几个)额外的分钟︰) – Dave

相关问题