Internet电子邮件的主题行中允许有多少个字符? 我对The RFC for email进行了扫描,但未能具体了解它的持续时间。 我有一位同事希望以编程方式验证它。
如果没有正式限制,建议的实际长度是多少? 欢呼声,
答案 0 :(得分:180)
请参阅RFC 2822,第2.1.1节开始。
这有两个限制 数量上的标准位置 一行中的字符。每一行 字符必须不超过998 人物,应该不会超过 78个字符,不包括CRLF。
如RFC稍后所述,您可以通过将主题折叠多行来解决此限制(而非您应该)。
每个标题字段在逻辑上都是a 单行字符包括 字段名称,冒号和 场体。为方便起见, 并处理998/78字符 每条线的限制,场体 标题字段的一部分可以被拆分 进入多线表示; 这被称为“折叠”。一般 规则就是这个标准的地方 允许折叠白色空间(不是 只是WSP字符),CRLF可能是 在任何WSP之前插入。对于 例如,标题字段:
Subject: This is a test
可以表示为:
Subject: This is a test
主题标题中不超过78个字符的建议听起来合理。没有人想滚动查看整个主题行,重要的东西可能会在右侧被切断。
答案 1 :(得分:14)
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.
答案 2 :(得分:4)
经过一些测试:如果您向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".?=
要:
正如你所看到的那样,在主题行中,它在#78;" ="接下来是2或3次换行,然后继续对其余的主题进行严格处理。
有几位客户向我汇报了所有使用OutLook的客户,其他电子邮件客户端都可以处理这些主题。
如果你没有ISO,它不会受到伤害,但是如果你把它添加到你的主题对RFC很好,那么你会从OutLook中得到这个惊喜。如果你没有添加ISO,那么iPhone就不会理解它(并且使用这些字符附加带有名字的文件将无法在iPhone上运行)。
答案 3 :(得分:2)
我不相信这里有正式限制,我很确定RFC中没有指定任何硬限制,正如您所发现的那样。
我认为主题行(不仅仅是电子邮件)的一些非常常见的限制是:
显然,你想提出一些合理的东西。如果您正在编写一个电子邮件客户端,您可能希望使用256个字符,并且显然要对那些大型商业服务器进行彻底测试,以确保它们能够正确地为您的邮件服务。
希望这有帮助!
答案 4 :(得分:0)
重要的是您正在使用哪种机制发送电子邮件。大多数现代图书馆(即System.Net.Mail)都会对您隐藏折页。您只需要输入很长的电子邮件主题行,而无需(CR,LF,HTAB)。如果您开始尝试自己进行折叠,则所有投注都将关闭。它将开始报告错误。因此,如果遇到此问题,只需过滤掉CR,LF,HTAB,然后让该库为您完成工作。通常,您还可以将编码文本类型设置为单独的字段。主题行中不需要iso编码。