Internet电子邮件的主题行中允许有多少个字符?我扫描了RFC以获取电子邮件,但没有明确看到允许的时间。我有一个同事想要对其进行编程验证。
如果没有正式的限制,那么在实践中建议的长度是多少?
Internet电子邮件的主题行中允许有多少个字符?我扫描了RFC以获取电子邮件,但没有明确看到允许的时间。我有一个同事想要对其进行编程验证。
如果没有正式的限制,那么在实践中建议的长度是多少?
Answers:
请参阅RFC 2822第2.1.1节。
此标准对一行中的字符数有两个限制。每行字符不得超过998个字符,并且应不超过78个字符(不包括CRLF)。
如RFC稍后所述,您可以通过将主题折叠在多行上来解决此限制(而不是应该这样做)。
每个头字段在逻辑上都是一行字符,包括字段名称,冒号和字段正文。但是,为了方便起见,并且为了处理每行的998/78字符限制,可以将标头字段的字段正文部分拆分为多行表示;例如,这称为“折叠”。一般规则是,只要此标准允许折叠空白(不仅仅是WSP字符),都可以在任何WSP之前插入CRLF。例如,标头字段:
Subject: This is a test
可以表示为:
Subject: This is a test
建议主题标题中的字符数不超过78个。没有人愿意滚动查看整个主题行,而重要的事情可能会在右侧被切断。
RFC2322指出主题标头“没有长度限制”
但是要生成长标头,但您需要将其分成多行,此过程称为“折叠”。
RFC 5322中将该主题定义为“非结构化”
这是一些引号([...]表示我省略的内容)
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.
c-client
经过一些测试:如果您向Outlook客户发送电子邮件,并且主题大于77个字符,并且需要"=?ISO"
在主题内部使用(在我的情况下,由于带有重音),则OutLook将在主题的中间“剪切”主题对其进行网格化,然后将其网格化,包括正文,附件等……全部网格化!
我有几个这样的例子:
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".?=
至:
如您所见,在主题行中,它在char 78上用“ =”开头,后接2或3个换行符,然后继续其余主题。
有人从所有使用OutLook的客户那里向我报告了此消息,其他电子邮件客户端可以处理这些问题。
如果您没有使用ISO,它不会受到损害,但是如果将其添加到主题中以使其与RFC兼容,那么OutLook会给您带来惊喜。一点点,如果您不添加ISO,那么iPhone电子邮件将无法理解它(并且使用此类字符附加名称的文件在iPhone上将无法使用)。
我不相信这里有正式的限制,而且我很确定您在RFC中也没有指定任何硬性限制。
我认为一般来说,主题行(不仅仅是电子邮件)有一些很常见的限制:
显然,您想提出一个合理的建议。如果您正在编写电子邮件客户端,则可能要使用256个字符,并且显然要针对大型商用服务器进行全面测试,以确保它们正确地为您的邮件提供服务。
希望这可以帮助!