最大 Internet 电子邮件 Message-ID 长度
Maximum internet email Message-ID length
我正在寻找 Internet Message-ID 字段允许的最大字符长度,以便在应用程序中进行验证。我查看了 RFC-2822 and Wikipedia "Message-ID" as well as this SO question 等来源以及其他不同的地方。我能找到的最接近的答案是“998 个字符”,因为这是规范允许互联网消息中每一行的最大长度(来自 RFC-2822),并且 Message-ID 字段不能是多行。
998个字符是确定的答案吗?没有这个限制吗?
如果我从电子邮件中了解到一件事,那一定是它是一个针对 fuzzing email software. That is, no matter what the RFCs say, you will find emails violating them, some email software coping and some failing. I think most will limp along with the robustness principle 的大规模分布式系统。
除此之外,我认为符合 RFC 的最大 Message-ID 长度为 995 个字符。
您引用的 RFC 的最大行长度为 998 个字符。这将包括 "Message-ID:" 字段名称,但您可以在字段名称和字段主体之间进行换行。包含实际 Message-ID 的行将包含 space(折叠白色 space)、“<”、Message-ID 和“>”。从语义上讲,尖括号不是 Message-ID 的一部分。因此,您最终得到最多 998 - 3 = 995 个字符。
其实没有限制
RFC2822 定义了这些作品:
message-id = "Message-ID:" msg-id CRLF
msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]
id-left = dot-atom-text / no-fold-quote / obs-id-left
obs-id-left = local-part
local-part = dot-atom / quoted-string / obs-local-part
quoted-string = [CFWS]
DQUOTE *([FWS] qcontent) [FWS] DQUOTE
[CFWS]
CFWS = *([FWS] comment) (([FWS] comment) / FWS)
FWS = ([*WSP CRLF] 1*WSP) / ; Folding white space
所以id-left
可以是local-part
也可以是quoted-string
(因此有多个FWS
)
所以你可以根据需要折叠它多次以适应任何任意
有效载荷的长度并且仍然符合给定的限制
通过 RFC。
我正在寻找 Internet Message-ID 字段允许的最大字符长度,以便在应用程序中进行验证。我查看了 RFC-2822 and Wikipedia "Message-ID" as well as this SO question 等来源以及其他不同的地方。我能找到的最接近的答案是“998 个字符”,因为这是规范允许互联网消息中每一行的最大长度(来自 RFC-2822),并且 Message-ID 字段不能是多行。
998个字符是确定的答案吗?没有这个限制吗?
如果我从电子邮件中了解到一件事,那一定是它是一个针对 fuzzing email software. That is, no matter what the RFCs say, you will find emails violating them, some email software coping and some failing. I think most will limp along with the robustness principle 的大规模分布式系统。
除此之外,我认为符合 RFC 的最大 Message-ID 长度为 995 个字符。
您引用的 RFC 的最大行长度为 998 个字符。这将包括 "Message-ID:" 字段名称,但您可以在字段名称和字段主体之间进行换行。包含实际 Message-ID 的行将包含 space(折叠白色 space)、“<”、Message-ID 和“>”。从语义上讲,尖括号不是 Message-ID 的一部分。因此,您最终得到最多 998 - 3 = 995 个字符。
其实没有限制
RFC2822 定义了这些作品:
message-id = "Message-ID:" msg-id CRLF
msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]
id-left = dot-atom-text / no-fold-quote / obs-id-left
obs-id-left = local-part
local-part = dot-atom / quoted-string / obs-local-part
quoted-string = [CFWS]
DQUOTE *([FWS] qcontent) [FWS] DQUOTE
[CFWS]
CFWS = *([FWS] comment) (([FWS] comment) / FWS)
FWS = ([*WSP CRLF] 1*WSP) / ; Folding white space
所以id-left
可以是local-part
也可以是quoted-string
(因此有多个FWS
)
所以你可以根据需要折叠它多次以适应任何任意
有效载荷的长度并且仍然符合给定的限制
通过 RFC。