如何在django中使用gmail smtp更改回复和返回路径标头

时间:2013-07-22 14:06:26

标签: django smtp gmail

我在django网站上使用gmail smtp。我有一个联系表单,用户将电子邮件和消息发送给管理员,然后发送邮件给:

   email = EmailMessage('email subject', 'email message', settings.EMAIL_HOST_USER,
                        ['admin.mysite@gmail.com'],
                          headers = {'Reply-To': 'user@foo.bar',
                               'Sender': 'user@foo.bar','from': 'user@foo.bar','Return-Path': 'user@foo.bar'})
   email.send(fail_silently=False)

正确发送/接收电子邮件但是当管理员客户在gmail中选择回复时,它始终回复settings.EMAIL_HOST_USER而不是用户地址。在电子邮件原始标题上,使用setting.EMAIL_HOST_USER

设置“发件人”和“返回”路径

3 个答案:

答案 0 :(得分:4)

Google违反了定义SMTP服务器预期操作的RFP,重写了标头。这可能是导致问题的根本原因:http://lee-phillips.org/gmailRewriting/

答案 1 :(得分:1)

如果您使用smtp.gmail.com发送邮件,而发件人的电子邮件地址不是yourgoogleemailname@gmail.com,则Gmail会重写邮件头并将发件人地址设置为yourgoogleemailname@gmail.com。有关详细信息和可能的解决方案,请参阅http://lifehacker.com/111166/how-to-use-gmail-as-your-smtp-server

答案 2 :(得分:0)

  

由于Gmail的限制,我遇到同样的问题一年了。

     

但是今天我重试并且成功了,看来Google更改了其政策。

# settings.py
....
DEFAULT_FROM_EMAIL = 'Infoma Admin<no-reply@infoma.co.nz>'

enter image description here

Django 2.1.7