我正在尝试了解IMAP BODYSTRUCTURE的价值观,但面临一些困惑,如果您能提供指导,我们将不胜感激。
通过gmail发送简单的1行电子邮件会返回此BODYSTRUCTURE
example 1
BODYSTRUCTURE (("text" "plain" ("charset" "utf-8") NIL NIL "7bit" 10 1 NIL NIL NIL NIL)("text" "html" ("charset" "utf-8") NIL NIL "7bit" 35 1 NIL NIL NIL NIL) "alternative" ("boundary" "001a113a6490bbcac5051c86cddc") NIL)
通过gmail发送略有不同的电子邮件会返回此
example 2
BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 12535 548 NIL NIL NIL NIL)
从第74页的rfc3501复制/粘贴,48行电子邮件包含此BODYSTRUCTURE
example 3
("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 2279 48)
使用示例2,并阅读第75页rfc3501,这是我理解/误解的:
值#1“text”=正文类型
值#2“plain”= body subtype
值#3(“charset”“us-ascii”)= body参数括号列表。这是ASCII或unicode的编码吗?
值#4 NIL =正文ID
值#5 NIL =正文描述
值#6“7位”=正文编码
值#7 12535 =八位字节的正文大小 - 什么是八位字节?这在rfc3501中没有定义
值#8 548 = body md5值。这是标准的md5哈希值no?
值#9 - 12 NIL =身体配置,语言&位置?
以下是我的问题:
1,示例1和示例2几乎是相同的电子邮件,但具有完全不同的车身结构。为什么呢?
2,NIL有哪些值可以也可以不是?例如,在rfc3501中,对于包络结构,它非常具体,可以和不可以是什么,但是对于车身结构的信息非常模糊。在示例1和2以及我尝试的每个IMAP服务器上,rfc3501中还没有定义额外的NIL。
3,有人可以逐项向我解释,#1是什么样的例子我知道如何解析它?它似乎包含2个不同的BODYSTRUCTURES,但关于“边界”和“替代”的部分我不明白。我知道这是一个很大的问题,但我真的很感激帮助。感谢。
答案 0 :(得分:0)
示例1和2指的是完全不同的消息;示例1是作为两种替代格式发送的一行文本(HTML和纯文本,读者可以选择首选替代),而示例2是548行纯文本。
查看示例一的来源,您将看到会发生什么。
我不同意你的说法,即车身结构的文件很模糊,所以我不认为我可以有效地向你解释。相反,我建议你通过一些示例消息和他们的身体结构响应来浏览3501的那一部分。它会带你几个小时。您的两个示例消息应该是,您可能想要添加第三个示例,其中包含带文件名的附件。
一个八位字节是一个字节(或者更确切地说,"字节"现在明确地指向8位,但并非总是如此)。