IMAP BODYSTRUCTURE值

时间:2015-08-05 03:01:16

标签: imap

我正在尝试了解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,但关于“边界”和“替代”的部分我不明白。

我知道这是一个很大的问题,但我真的很感激帮助。感谢。

1 个答案:

答案 0 :(得分:0)

示例1和2指的是完全不同的消息;示例1是作为两种替代格式发送的一行文本(HTML和纯文本,读者可以选择首选替代),而示例2是548行纯文本。

查看示例一的来源,您将看到会发生什么。

我不同意你的说法,即车身结构的文件很模糊,所以我不认为我可以有效地向你解释。相反,我建议你通过一些示例消息和他们的身体结构响应来浏览3501的那一部分。它会带你几个小时。您的两个示例消息应该是,您可能想要添加第三个示例,其中包含带文件名的附件。

一个八位字节是一个字节(或者更确切地说,"字节"现在明确地指向8位,但并非总是如此)。