RFC3501(imp4协议)中文版(10)

2019-08-17 12:21

自从被选中后,这个邮箱就没有加进新的邮件。

如果对服务器来说判断邮箱是否是“受关注的”、或者其名称是否是一个

/Noselect名称并不切实可行,则服务器不应当发送/Marked或者/Unmarked。 层级分隔符是用来分隔一个邮箱名称的层级的一个字符。一个客户端可以用它来创建子邮箱,及检索名称层级的更高级或者更低级。一个顶层节点的所有孩子必须使用相同的分隔符。一个NIL层级分隔符意味着不存在层级;即名称都在一层。 名称展现为明确的从左至右的层级,并且,用作LIST和LSUB命令的一个参考时必须是正确的。除非/Noselect被指明,否则,用作命令(如SELECT,接受邮箱名)的参数时,名称必须是正确的。 例子:

S: * LIST (/Noselect) “/” ~/Mail/foo

7.2.3. LSUB响应

内容:名称属性,层级分隔符,名称

LSUB响应作为一个LSUB命令的一个结果发生。它返回符合LSUB描述的一个单独的名称。一个单独的LSUB命令可以有多个LSUB响应。LIST响应的数据形式是一样的。 例子:

S: * LSUB () “.” #news.comp.mail.misc

7.2.4. STATUS响应

内容:名称,状态组合列表

STATUS响应作为一个STATUS命令的一个结果发生。它返回符合STATUS描述和请求的邮箱状态信息的邮箱名。 例子:

S: * STATUS blurdybloop (MESSAGES 231 UIDNEXT 44292)

7.2.5. SEARCH响应

内容:0个或者更多个数字

SEARCH响应作为一个SEARCH或者UID SEARCH命令的一个结果发生。这些数字指向那些符合检索标准的邮件。对SEARCH,这些是邮件序列号;对UID SEARCH,这些是唯一标识符。每个数字被一个空格分开。 例子:

S: * SEARCH 2 3 6

7.2.6. FLAGS响应

内容:标记组合列表

FLAGS响应作为一个SELECT或者EXAMINE命令的一个结果发生。标记组合列表确定适用于该邮箱的标记(至少,系统定义的标记)。系统标记以外的标记也可以存在,这取决于服务器实现体。

来自FLAGS响应的更新必须被客户端记录。 例子:

S: * FLAGS (/Answered /Flagged /Deleted /Seen /Draft)

7.3. 服务器响应-邮箱大小

这些响应永远是非标签化的。这是邮箱大小的改变怎样被从服务器传送至客户端的(的所在)。后面直接跟着“*”符号的是表示一个邮件数量的数字。

7.3.1. EXISTS响应

内容:无

EXISTS响应报告邮箱中的邮箱数量。这个响应作为一个SELECT或者EXAMINE命令,及邮箱大小是否改变的一个结果发生(例如,新邮件)。 来自EXISTS响应的更新必须被客户端记录。 例子:

S: * 23 EXISTS

7.3.2. RECENT响应

内容:无

RECENT响应报告带有/Recent标记位的邮件的数量。这个响应作为一个SELECT或者EXAMINE命令,及邮箱大小是否改变的一个结果发生(例如,新邮件)。 注意:新近邮件的邮件序列号不一定是邮箱中的最高n个邮件的一个连续队列(该邮箱中,n是被RECENT响应报告的数值)。 例子:多个客户端打开了同一个邮箱(第一个被通报的会话将视其为新近的,其它的会话将视其为非新近的,及当邮箱被一个非IMAP代理重新排序时)。

辨别新近邮件的唯一可靠方法是察看邮件标记,看哪个带有/Recent标记位,或者做一个SEARCH RECENT。

来自RECENT响应的更新必须被客户端记录。 例子:

S: * 5 RECENT

7.4. 服务器响应-邮件状态

这些响应永远是非标签化的。这是邮件数据如何被从服务器传送至客户端(的所在)。它经常被作为带有相同名称(参数)的一个命令的一个结果。后面直接跟着“*”符号的,是表示一个邮件序列号的一个数字。

7.4.1. EXPUNGE响应

内容:无

EXPUNGE响应报告指定邮件序号已经被从邮件中永久删除了。邮箱中每一个后续的邮件的邮件序列号都马上减1,且这个减小反映在后来的响应中的邮件序列号(包括其它非标签化的EXPUNGE响应)。

EXPUNGE响应也减小邮箱中的邮件数量;没必要发送一个带有新值的EXISTS响应。

作为即时减少规则的一个结果,出现在成功的EXPUNGE响应的一个集合中的邮件序列号,取决于邮件是按由小到大的顺序删除,还是按由大到小的 顺序删除。例如,假如一个有9个邮件的邮箱中的最后5个邮件被删除,一个“由小到大”的服务器将会发送5个非标签化EXPUNGE响应至邮件序列号5,而 一个“由大到小”的服务器将会发送成功的非标签化EXPUNGE响应至邮件序列号9,8,7,6,及5。

当没有命令在行进中时,或者正在响应一个FETCH,STORE,或者SEARCH命令时,不能发送一个EXPUNGE。为避免客户端和服务器 之间的邮件序列号的同步造成丢失,这是有必要的。一个命令不是“在行进中”的,直到已经接收到完成命令;特别的,在命令连续的竞争中,一个命令不是“在行 进中”的。

注意:UID FETCH,UID STORE,及UID SEARCH是不同于FETCH,STORE,及SEARCH的命令。一个EXPUNGE响应可以在一个UID命令期间发送。 来自EXPUNGE响应的更新必须被客户端记录。 例子:

S: * 44 EXPUNGE

7.4.2. FETCH响应

内容:邮件数据

FETCH响应返回客户端的一个邮件的相关数据。这些数据是名称项及其值的数据对,这些对分别被放在一个圆括号中。这个响应作为一个FETCH或者STORE命令的结果发生,也可以因为单方面的服务器决定发生(例如,标记更新)。 目前的数据项有: BODY

BODYSTRUCTURE的一种形式,不带额外数据。 BODY[

]<>

表示指定块的主体内容的一个字符串。它应当被客户端通过内容转换编码,主体类型,及子类型来解释。 如果原始字节被指定,则该字符串是整个主体内容的一个子字符串,它从那个原始字节开始。这意味着,BODY[]<0>可能是被切断的,而BODY[]是不切断的。 注意:这个原始字节的方法不能被一个服务器在一个FETCH响应中使用,除非客户端通过一个BODY[

]<>数据项的一个FETCH特意地请求它。 如果一个[CHARSET]标识符是这个块的主体参数组合列表的一部分,则8位文本数据是允许的。注意,头部(部分指HEADER或者 MIME,或者一个MESSAGE/RFC822部分的头部),必须是7位的;8位字符在头部中是不允许的。还要注意,头部

和主体间的[RFC- 2822]分隔用空行并不见效于头部行的子集;该空行永远被作为头部数据的一部分被包含进来,除非邮件没有主体和空行。

非文本数据,如二进制数据,在传至客户端之前,必须转换编码为文本形式,如BASE64。客户端必须对转换编码的字符串解码,以得到原始的二进制数据。 BODYSTRUCTURE

描述一个邮件的[MIME-IMB]主体结构的一个组合列表。它是由服务器通过解析[MIME-IMB]头部域,必要情况下还包括各种默认域,计算出的。

例如,一个48行,2279字节的一个简单文本邮件有一个主体结构:(“TEXT” “PLAIN” (“CHARSET” “US- ASCII”) NIL NIL “7BIT” 2279 48)。多个部分被表示为组合巢。一个或者多个巢状主体结构的一个序列,代替了作为组合列表的 第一元素的一个主体类型。组合列表的第二个元素是多个子表(混合的,相减的,平行的,二择一的,等等)。 例如,由一个文本和一个BASE64编码的文本附件组成的一个两部分邮件,可以有一个主体结构:

((“TEXT” “PLAIN” (“CHARSET” “US-ASCII”) NIL NIL “7BIT” 1152 23)(“TEXT” “PLAIN” (“CHARSET” “US-ASCII” “NAME” “cc.diff”)”96072316347.20117.h@cac.washington.edu” “Compiler diff” “BASE64” 4554 73) “MIXED”)

扩展数据遵从多个子表。扩展数据不会与BODY获取返回,但是可以与一个

BODYSTRUCTURE获取返回。扩展数据,如果出现,必须是按被定义的顺序。一个多域主体扩展数据有以下顺序: 主体参数组合列表

属性/值对的一个组合列表 [例如,”(foo” “bar” “baz” “rag”)其中“bar”是“foo”的值,“rag”是“baz”的值] ,如[MIME-IMB]所定义的。 主体部署

一个组合列表,由一个部署类型的字符串组成,其后跟着部署属性/值对的一个组合列表,如[DISPOSITION]所定义的。 主体语言

给出了主体语言值的一个字符串或者组合列表,如[LANGUAGE-TAGS]所定义的。 主体定位

给出了主体内容的URI的一个字符串列表,如[LOCATION]所定义的。 在该协议的这个版本中,还没有定义后来的扩展数据的任何一个。这些扩展数据可以包括0或者更多的NIL,字符串,数字,或者这些数据的潜在巢状 组合列表。执行一个BODYSTRUCTURE获取的客户端实现体必须有所准备地接收这些扩展数据。服务器实现体不能发送这些扩展数据,直到它已经被该协 议的一个修订版所定义。

一个非多域主体部分的基本域有以下顺序: 主体类型

给出了内容媒体类型的一个字符串,如[MIME-IMB]所定义的。 主体子类型

给出了内容的子类型的一个字符串,如[MIME-IMB]所定义的。 主体参数组合列表

属性/值对的一个组合列表[例如,(“foo” “bar” “baz” “rag”)其中,”bar”是”foo”的值,”rag’是”baz”的值],如[MIME-IMB]所定义的。

主体号

给出了内容号的一个字符串,如[MIME-IMB]所定义的。 主体描述

给出了内容描述的一个字符串,如[MIME-IMB]所定义的。 主体编码

给出了内容转换编码的一个字符串,如[MIME-IMB]所定义的。 主体大小

给出了主体的字节大小的一个数字。注意,这个大小是其转换编码中的大小,而不是任何解码结果后的大小。

MESSAGE类型和子类型的一个主体类型包括,基本域后紧跟的信封结构,主体结构,及压缩邮件的文本行大小。 TEXT类型的一个主体类型包括,基本域后紧跟的、文本行中的主体大小。注意,这个大小是其内容转换编码中的大小,而不是任何解码结果后的大小。 扩展数据跟着基本域和以上指定类型的域列表。扩展数据不会与BODY获取返回,但是可以与BODYSTRUCTURE获取返回。扩展数据,如果出现,必须按定义的顺序。 一个非多域主体部分的扩展数据有以下的顺序: 主体MD5

给出了主体MD5值的一个字符串,如[MD5]所定义的。 主体部署

一个组合列表,它与针对一个多域主体部分的主体部署有同样的内容和功能。 主体语言

给出了主体语言值的一个字符串或者组合列表,如[LANUAGE-TAGS]所定义的。 主体定位

给出了主体内容URI的一个字符串列表,如[LOCATION]所定义的。 该协议的这个版本还没有定义任何下列扩展数据,它们可能如上面所描述的,属于多域扩展数据。 ENVELOPE

描述了一个邮件的信封结构的一个组合列表。这是由服务器通过解析[RFC-2822]头部为组件部分来算出的,默认为所需要的多种域。 信封结构的域有以下顺序:日期,主题,寄信方,收信方,回复至,送至,抄送,秘密抄送,转送至,及邮件号。日期,主题,转送至,及邮件号是字符串。寄信方,收信方,回复至,送至,抄送,及秘密抄送域是地址结构的组合列表。 一个地址结构是描述一个电子邮件地址的一个组合列表。一个地址结构的域有以下的顺序:个人名称,[SMTP]域列表(路由),邮件名,及主机名。 [RFC-2822]聚合语法由主机名为NIL的一种特殊的地址结构形式指明。如果邮箱名域也是NIL,那么这是聚合的一个末尾(RFC822语法中的分号)。如果邮箱名域是非NIL的,那么这是聚合的一个开始,且邮箱名域中有聚合名称。

如果日期,主题,转送至,及邮件号头部行不出现在[RFC-2822]头部中,那么信封的相关成员为NIL;如果这些头部行出现了但是为空,那么信封的相关成员是空字符串。 注意:在“出现了但是为空“的情况下,一些服务器可能返回一个NIL信封成员。客户端应当将NIL和空字符串看成是一样的。

注意:[RFC-2822]要求所有邮件有一个正确的日期头部。因此,信封中的日期成员不能为NIL或者空字符串。


RFC3501(imp4协议)中文版(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于大数据时代研究会计信息化风险与防范策略

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: