电子邮件,与发件人地址不同的“回复”地址

时间:2011-01-05 04:41:29

标签: django email contact-form

我在网站上有一个contact form(一般表格:名称电子邮件主题消息)使用谷歌应用程序 smtp向管理员发送邮件。
目前,如果管理员想要直接选择回复选项来回复邮件,则该人的回复的字段将由发件人的地址自动填写。

我不想问的是,是否有任何标准化的方式来传递邮件的一些额外信息,这将定义对邮件的任何回复应该转到此地址而不是发件人?

这个选项似乎有一点机会,因为它可能会因垃圾邮件发送者而导致一些问题(他们可能会在邮件中定义自定义回复字段,而普通用户可能看不到他们回复的位置)。

作为替代方案,我认为找到一种方法来创建一个带有发件人帐户的过滤器,该过滤器从格式中找出回复电子邮件地址并转发邮件(似乎不是一个好的解决方案,我不知道如何实现这一点)。

我已经标记了django,虽然这与此没有直接关系,因为我最终将通过django实现这一点。

4 个答案:

答案 0 :(得分:13)

事实上,标准化的标头指定了响应标头:http://cr.yp.to/immhf/response.html

就Django实现这一点而言,documentation包含一个例子:

from django.core.mail import EmailMessage

email = EmailMessage(
    'Hello',
    'Body goes here',
    'from@example.com',
    ['to1@example.com', 'to2@example.com'],
    ['bcc@example.com'],
    headers = {'Reply-To': 'another@example.com'}
)

这解决了我的问题。

答案 1 :(得分:3)

Reply-To是标准的SMTP标头。

目前我找不到一个很好的参考,但在Email上的维基百科文章中提到过。

编辑:找到它:RFC 5322,第3.6.2节

答案 2 :(得分:1)

RFC说你可以指定多个电子邮件,这就是我要找的东西。想出了这个:

from django.core.mail import EmailMessage
headers = {'Reply-To': 'email@one.com;email@two.com'}
msg = EmailMessage(subject, html_content, EMAIL_HOST_USER, email_list, headers=headers)
msg.content_subtype = "html"
msg.send()

像魅力一样工作。注意:根据Django doc电子邮件设置,从您的设置文件导入EMAIL_HOST_USER。有关此内容的更多信息,请搜索“回复”:https://docs.djangoproject.com/en/dev/topics/email/

答案 3 :(得分:0)

这也是回复方式的使用方式

from django.core.mail import EmailMessage

email = EmailMessage(
    'Hello',
    'Body goes here',
    'from@example.com',
    ['to1@example.com', 'to2@example.com'],
    ['bcc@example.com'],
    reply_to=['another@example.com'],
    headers={'Message-ID': 'foo'},
)

在文档docs.djangoproject

中了解更多信息