电子邮件主题长度限制是多少?

时间:2009-10-20 03:28:46

标签: email

Internet电子邮件的主题行中允许有多少个字符? 我对The RFC for email进行了扫描,但未能具体了解它的持续时间。 我有一位同事希望以编程方式验证它。

如果没有正式限制,建议的实际长度是多少? 欢呼声,

5 个答案:

答案 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中没有指定任何硬限制,正如您所发现的那样。

我认为主题行(不仅仅是电子邮件)的一些非常常见的限制是:

  • 80个字符
  • 128个字符
  • 256个字符

显然,你想提出一些合理的东西。如果您正在编写一个电子邮件客户端,您可能希望使用256个字符,并且显然要对那些大型商业服务器进行彻底测试,以确保它们能够正确地为您的邮件服务。

希望这有帮助!

答案 4 :(得分:0)

重要的是您正在使用哪种机制发送电子邮件。大多数现代图书馆(即System.Net.Mail)都会对您隐藏折页。您只需要输入很长的电子邮件主题行,而无需(CR,LF,HTAB)。如果您开始尝试自己进行折叠,则所有投注都将关闭。它将开始报告错误。因此,如果遇到此问题,只需过滤掉CR,LF,HTAB,然后让该库为您完成工作。通常,您还可以将编码文本类型设置为单独的字段。主题行中不需要iso编码。