3.6.5. Informational Fields
The informational fields are all optional. The "Subject:" and
"Comments:" fields are unstructured fields as defined in section
2.2.1, [...]
2.2.1. Unstructured Header Field Bodies
Some field bodies in this specification are defined simply as
"unstructured" (which is specified in section 3.2.5 as any printable
US-ASCII characters plus white space characters) with no further
restrictions. These are referred to as unstructured field bodies.
Semantically, unstructured field bodies are simply to be treated as a
single line of characters with no further processing (except for
"folding" and "unfolding" as described in section 2.2.3).
2.2.3 [...] An unfolded header field has no length restriction and
therefore may be indeterminately long.
Subject: =?ISO-8859-1?Q?Actas de la obra N=BA.20100154 (Expediente N=BA.20100182) "NUEVA RED FERROVIARIA.=
TRAMO=20BEASAIN=20OESTE(Pedido=20PC10/00123-125),=20BEASAIN".?=
4 回答
请参见RFC 2822,第2.1.1节开始 .
正如RFC稍后所述,您可以通过将主题折叠多行来解决此限制(而不是您应该) .
主题 Headers 中不超过78个字符的建议听起来合理 . 没有人想滚动查看整个主题行,重要的东西可能会在右侧被切断 .
RFC2322声明主题 Headers “没有长度限制”
但要生成长 Headers ,但需要将其拆分为多行,这个过程称为“折叠” .
subject在RFC 5322中定义为“非结构化”
这里有一些引用([...]表示我省略的东西)
经过一些测试:如果你发送一封电子邮件到Outlook客户端,并且主题是> 77个字符,并且它需要在主题内使用
"=?ISO"
(在我的情况下因为重音),那么OutLook将"cut"在其中间的主题并将它所有后来的网格化,包括正文,附加等...所有的网格!我有几个像这样的例子:
至:
正如你所看到的那样,在主题行中,它在char 78上切换为“=”,然后是2或3行换行,然后继续对其余主题进行粗略处理 .
据我所知,有几个客户使用OutLook,其他电子邮件客户端处理这些主题 .
如果你没有ISO,它不会受到伤害,但如果你把它添加到你的主题对RFC很好,那么你会从OutLook中得到这个惊喜 . 如果你没有添加ISO,那么iPhone就不会理解它(并且使用这些字符附加带有名字的文件将无法在iPhone上运行) .
我不相信这里有正式的限制,我很确定RFC中没有指定任何硬限制,正如您所发现的那样 .
我认为一般(不仅仅是电子邮件)主题行的一些非常常见的限制是:
80个字符
128个字符
256个字符
显然,你想要提出一些合理的东西 . 如果您正在编写一个电子邮件客户端,您可能希望使用256个字符,并且显然要对那些大型商业服务器进行彻底测试,以确保它们正确地为您的邮件服务 .
希望这可以帮助!