Django:如何发送符合RFC 822的电子邮件? (由于空格,用户无法回复)

时间:2018-08-28 21:34:41

标签: django django-email

一个用户最近通知我,由于地址中的空白,他无法回复我的电子邮件。他还提到原始FROM字段不符合RFC 822的要求-我对此了解不多,也无法验证。

这是他收到的原始“发件人”字段:

From: SiteName someprefix@mg.somesite.io

这是我当前发送这些电子邮件的方式:

msg_plain = render_to_string('email_template.txt', context)
                msg_html = render_to_string('email_template.html', context)

                EMAIL_FROM_FIELD = 'SiteName someprefix@mg.somesite.io'

                mail_was_sent = send_mail(
                    email_subject,
                    msg_plain,
                    EMAIL_FROM_FIELD,
                    [profile.user.email],
                    html_message=msg_html,
                )

我在做什么错了?

2 个答案:

答案 0 :(得分:3)

除非我缺少任何东西,否则我认为您需要更改此内容:

EMAIL_FROM_FIELD = 'SiteName someprefix@mg.somesite.io'

对此:

EMAIL_FROM_FIELD = 'SiteName <someprefix@mg.somesite.io>'
  

一般规则是,凡是可能存在线性空白(不只是LWSP字符)的地方,都可以插入CRLF,紧随其后的是至少一个LWSP字符。

这来自:https://www.w3.org/Protocols/rfc822/

答案 1 :(得分:1)

您可以如下定义表单字段:

EMAIL_FROM_FIELD = 'SiteName <someprefix@mg.somesite.io>'