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

Sco*_*son 215 email

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

如果没有正式限制,那么在实践中建议的长度是多少?干杯,

Mic*_*tta 183

请参阅RFC 2822,第2.1.1节开始.

此标准对一行中的字符数有两个限制.每行字符必须不超过998个字符,并且不应超过78个字符,不包括CRLF.

正如RFC稍后所述,您可以通过将主题折叠多行来解决此限制(而不是您应该).

每个标题字段在逻辑上是单行字符,包括字段名称,冒号和字段正文.然而,为了方便起见,并且为了处理每行的998/78字符限制,可以将头字段的字段主体部分分成多行表示; 这被称为"折叠".一般规则是,无论此标准允许折叠空白区域(不仅仅是WSP字符),都可以在任何WSP之前插入CRLF.例如,标题字段:

       Subject: This is a test
Run Code Online (Sandbox Code Playgroud)

可以表示为:

       Subject: This
        is a test
Run Code Online (Sandbox Code Playgroud)

主题标题中不超过78个字符的建议听起来合理.没有人想滚动查看整个主题行,重要的东西可能会在右侧被切断.

  • 当前版本的IMF规范RFC 5322可以在这里找到:http://tools.ietf.org/html/rfc5322#section-2.1.1 (8认同)
  • 此答案仅解决行长度限制,而不是总长度限制. (5认同)
  • 为了澄清,主题行没有长度限制,因为标准允许标题超过998字节,方法是将单个标题包装在任意数量的行上.大约80个字符的推荐确实是合理的.如果你正在写一个电子邮件客户端,你*必须能够应对可笑的长篇科目,而不会以一种可怕的方式打破,最好是在显示为列表的一部分时截断. (3认同)

Jas*_*sen 18

RFC2322声明主题标题"没有长度限制"

但要生成长标题,但需要将其拆分为多行,这个过程称为"折叠".

subject在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.
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案。问题的第二部分“实践中的良好长度”完全取决于您的应用程序。如果您要保存收到的电子邮件,那么您必须支持无限长度。 (2认同)

小智 5

经过一些测试:如果您向 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".?=
Run Code Online (Sandbox Code Playgroud)

到:

如您所见,在主题行中,它在字符 78 上用“=”切割,然后是 2 或 3 个换行符,然后继续处理主题的其余部分。

有几个客户向我报告,他们都在使用 OutLook,其他电子邮件客户端可以处理这些主题。

如果你没有 ISO,它不会受到伤害,但如果你将它添加到你的主题中以对 RFC 友好,那么你会从 OutLook 得到这个惊喜。如果您不添加 ISO,那么 iPhone 电子邮件将无法理解它(并且使用此类字符附加名称的文件将无法在 iPhone 上使用)。

  • 你设置的主题有很多问题:1.空格应该用'_'编码,2.一个'encoded-word'(=?charset?Q/B?data?=)长度不能超过75个字符(RFC2047)。3rd 您不能在行尾使用 '=' 字符转义新行(标题 QP 编码与正文 QP 不同)。底线是:这不是 Outlook 的错。 (6认同)