如上所述in the docs,SERVER_EMAIL
设置应该更改从Django(1.3.1)服务器发送到ADMINS
的崩溃电子邮件中的“发件人”地址。
但事实并非如此。
这在1.3.1中适合您吗? (或任何Django版本)
Django坚持只使用我的EMAIL_HOST_USER
- 我的电子邮件登录/实际地址 - 作为来自地址。我正在使用Gmail作为SMTP服务器,所以我想知道这是否与它有关。 Gmail会阻止此类事情吗?我发誓我之前已经开始工作了。
这有点烦人,因为我们有多个项目似乎都是来自同一地址的电子邮件,我们必须深入了解追溯,看看它是哪个项目。
答案 0 :(得分:3)
问题是Gmail。一直到smtplib
库,指定了正确的“发件人”地址,此库会将正确的地址发送给Gmail。
此Gmail Support page暗示(特别是在“POP / IMAP注释”用户的底部附近)您需要在Gmail设置下添加地址作为“附加电子邮件地址”才能从中发送邮件通过Gmail的SMTP服务器。
这当然需要验证;因为我的'from'地址没有收件箱(这是假的!),目前我不可能。但至少它不是Django的错误! :)
(注意:这是Gmail阻止您发送垃圾邮件的一种非常明显的方式,我确信这就是他们这样做的原因。)
答案 1 :(得分: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中添加跟踪输出,以验证是否正在使用正确的电子邮件地址。