IMAP MIME BODYSTRUCTURE 格式字符串可以嵌套多少个值?

How many values can IMAP MIME BODYSTRUCTURE format string be nested?

从 IMAP 服务器检索各个部分时,MIME 格式字符串是否可以嵌套超过 3 个小数点?例如,RFC3501 section 6.4.5, pg56,在描述如何从服务器解析rfc822消息时,如果我想从IMAP服务器获取邮件的明文版本,这是可能的(并且在处理w/rfc822时很常见消息 w/attachments) 发布

tag FETCH uid BODY[4.2.2.1]

因为 rfc822 消息可以嵌套很深。因此该格式字符串中有 3 个小数点。我的问题是,任何类型的 MIME 消息都可能看起来像这样吗?

tag FETCH uid BODY[1.2.3.4.5]

或者 3 个小数点是可能的最大嵌套量吗?我还没有在我的测试中找到它,但在我在我的解析器中实现它之前,我需要确定地知道 RFC3501 没有具体说明这一点。如果 MIME 格式字符串中的小数点可以超过 3 个,那么该消息的 BODYSTRUCTURE 会是什么样子?

感谢您的宝贵时间,期待您的回复。

Rfc3501(您链接的)指出

BODY[<section>]<<partial>>

    The text of a particular body section.  The section
    specification is a set of zero or more part specifiers
    delimited by periods...

这似乎很明确地说明了没有上限。

至于这样的消息有什么用,我不知道

没有上限。我见过的最长的是这个小宝贝,Content-Description 消息已被编辑为包含部件号:

* 1 FETCH (BODYSTRUCTURE (("text" "plain" NIL NIL "Part number 1" "7BIT" 9 1 NIL NIL NIL NIL)("application" "octet-stream" NIL NIL "Part number 2" "BASE64" 14 "qWXKy9s0ny8E1/5/uzNhpg==" ("attachment" ("filename" "foo.bar" "size" "8")) NIL NIL)("message" "rfc822" NIL NIL "Part number 3" "7BIT" 540 ("Thu, 20 May 2004 14:28:50 +0200" "embedded rfc822 message" (("B" NIL "b" "c.d")) NIL NIL (("A" NIL "a" "c.d")) NIL NIL NIL NIL) (("text" "plain" NIL NIL "Part number 3.1" "7BIT" 9 1 NIL ("inline" NIL) ("en" "no" "de") NIL)("application" "octet-stream" NIL NIL "Part number 3.2" "BASE64" 14 NIL NIL NIL NIL) "mixed" ("boundary" "Y") NIL NIL NIL) 24 NIL NIL NIL NIL)(("image" "gif" NIL NIL "Part number 4.1" "BASE64" 0 NIL NIL NIL NIL)("message" "rfc822" NIL NIL "Part number 4.2" "7BIT" 658 ("Thu, 20 May 2004 14:28:50 +0200" "second embedded rfc822 message" (("A" NIL "a" "c.d")) NIL NIL (("B" NIL "b" "c.d")) NIL NIL NIL NIL) (("text" "plain" NIL NIL "Part number 4.2.1" "7BIT" 9 1 NIL NIL NIL NIL)(("text" "plain" NIL NIL "Part number 4.2.2.1" "7BIT" 9 1 NIL NIL "en" NIL)("text" "richtext" NIL NIL "Part number 4.2.2.2" "7BIT" 9 1 NIL NIL NIL NIL) "alternative" ("boundary" "B") NIL NIL NIL) "mixed" ("boundary" "A") NIL NIL NIL) 34 NIL NIL NIL NIL) "mixed" ("boundary" "Z") NIL NIL NIL) "mixed" ("boundary" "X") NIL NIL NIL))

我找到了答案,虽然 rfc204x 和 rfc3501 都没有限制,但我尝试过的每个邮件服务器都有自己的限制,因为夸张的 MIME 嵌套似乎是绕过垃圾邮件、.exe 等各种过滤器的常见方法阻塞等 "MIME nesting exceeds safety limit" 似乎是 return 发送 15+ 级小数时的流行消息。