电子邮件的标题区分大小写吗?

41

电子邮件头信息是否区分大小写?

例如,Content-Type 是否与 Content-type 不同?

根据RFC 5322,我没有看到关于大小写敏感性的任何内容。然而,我在使用 PEAR Mail_mime 模块创建 MIME 消息时遇到了问题,一切都指向我们的 SMTP 服务器使用 Content-typeMIME-version 而不是 Content-TypeMIME-Version。我尝试使用另一个 SMTP 服务器(如 Gmail),但不幸的是我们的 Web 服务器被严密防火墙保护。


2
答案取决于你正在做什么;这不仅仅是适用于所有情况的“规则”问题。早期互联网的Postel鲁棒性原则仍然是一个很好的指南:“在你所做的事情上要保守,在你从别人那里接受的东西上要开明”。因此,如果你正在接收电子邮件或解析电子邮件头,则“否”,它们不区分大小写 - 但如果你正在发送电子邮件或调整电子邮件头,则“是”,它们区分大小写。-- 还要注意,对于非常老的标准(电子邮件最初由RFC 822于1982年指定),通常使用比“规则”更重要。 - Chuck Kollars
1个回答

70
RFC 5322确实指定了这一点,但它非常间接。 1.2.2节说:

此规范使用扩展Backus-Naur形式(ABNF)[RFC5234]表示消息语法的形式定义。

反过来,RFC 5234的2.3节说:

注意:

ABNF字符串不区分大小写,这些字符串的字符集为US-ASCII。

因此,当RFC 5322指定像这样的生成规则时:

from = "From:" mailbox-list CRLF

隐含的是"From:"不区分大小写。
[更新]
至于Content-Type和MIME-Version,它们由MIME规范(RFC 2045)指定。而它又参照了最初RFC 822所描述的BNF,幸运的是,这也表明这些文本字符串不区分大小写。

底线:根据规范,电子邮件头部不区分大小写,因此看起来您的邮件服务器存在漏洞。


1
感谢您提供详细的答案,它确实有所帮助。顺便说一下,经过更多的测试,我们已经确定问题出在Thunderbird上。其他所有邮件客户端都可以正确地识别替代文本,但是Thunderbird却无法正常工作。 - Michael Irigoyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接