[RFC主页] [文本|PDF格式|HTML格式] [跟踪器] [知识产权] [勘误表] [信息页]

作废人:5322拟议标准
更新人:5335,5336 勘误表存在
网络工作组P.Resnick,编辑征求意见:2822 QUALCOMM Incorporated过时:8222001年4月类别:标准轨道Internet消息格式此备忘录的状态本文档为互联网社区,并请求讨论和建议改进。请参阅“互联网”的最新版本标准化状态的官方协议标准”(STD 1)以及此协议的状态。此备忘录的分发不受限制。版权声明版权所有(C)互联网协会(2001)。保留所有权利。摘要本标准规定了发送的文本消息的语法在“电子邮件”框架内,在计算机用户之间信息。本标准取代请求中规定的标准评论(RFC)822,“ARPA互联网文本格式标准信息”,更新以反映当前做法并纳入其他RFC中指定的增量更改。目录1.简介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
   1.1.范围。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
   1.2.符号惯例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4
   1.2.1.要求符号。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4
   1.2.2.语法符号。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4
   1.3.本文件的结构。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4
   2.信息的词汇分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5
   2.1.概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5
   2.1.1.线路长度限制。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6
   2.2.标题字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7
   2.2.1.非结构化标题字段体。。。。。。。。。。。。。。。。。。。。。。。7
   2.2.2.结构化标题字段体。。。。。。。。。。。。。。。。。。。。。。。。。7
   2.2.3.长标题字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7
   2.3.车身。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8
   .语法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9
   3.1.简介。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9
   3.2.词汇标记。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9



Resnick标准跟踪[第1页]


副本请求2822互联网消息格式2001年4月


   3.2.1.原语标记。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9
   3.2.2.带引号的字符。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10
   3.2.3.折叠空白和注释。。。。。。。。。。。。。。。。。。。。。。。11
   3.2.4.原子。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12
   3.2.5.带引号的字符串。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。13
   3.2.6.其他代币。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。13
   3.3.日期和时间规范。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14
   3.4.地址规范。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15
   3.4.1.添加规范。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。16
   3.5总体消息语法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。17
   3.6.字段定义。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。18
   3.6.1.起始日期字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。20
   3.6.2.发起人字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。21
   3.6.3.目的地地址字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。22
   3.6.4.标识字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。23
   3.6.5.信息字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。26
   3.6.6.重新发送字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。26
   3.6.7.跟踪字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28
   3.6.8条.可选字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。29
   4.过时的语法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。29
   4.1.其他过时的代币。。。。。。。。。。。。。。。。。。。。。。。。。。。。30
   4.2.过时的折叠空白。。。。。。。。。。。。。。。。。。。。。。。。。。。。。31
   4.3.废弃日期和时间。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。31
   4.4.过时的寻址。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33
   4.5.过时的标题字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33
   4.5.1.过时的起始日期字段。。。。。。。。。。。。。。。。。。。。。。。。34
   4.5.2.过时的发起人字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。34
   4.5.3.过时的目标地址字段。。。。。。。。。。。。。。。。。。。。34
   4.5.4.过时的标识字段。。。。。。。。。。。。。。。。。。。。。。。。。35
   4.5.5.过时的信息字段。。。。。。。。。。。。。。。。。。。。。。。。。。35
   4.5.6.过时的重新显示字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。35
   4.5.7.过时的跟踪字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。36
   4.5.8.过时的可选字段。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。36
   5.安全注意事项。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。36
   6.参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。37
   7.编辑地址。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。38
   8.确认。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。39
   附录A.消息示例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。41
   A.1款.寻址示例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。41A.1.1、。一个人给另一个人的信息寻址。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。41
   A.1.2节.不同类型的邮箱。。。。。。。。。。。。。。。。。。。。。。。。。。。42
   A.1.3节.集团地址。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。43
   A.2款.回复消息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。43
   答3.重新发送消息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。44
   A.4款.带跟踪字段的消息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。46
   答5.空白处、评论和其他奇怪之处。。。。。。。。。。。。。。。。47
   答6.作废表格。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。47



Resnick标准跟踪[第2页]


副本请求2822互联网消息格式2001年4月


   A.6.1款.过时的寻址。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48
   A.6.2款.过时日期。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48
   A.6.3款.过时的空白和注释。。。。。。。。。。。。。。。。。。。。。。48
   附录B.与早期标准的差异。。。。。。。。。。。。。。。。49
   附录C.通知。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。50完整版权声明。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。51

1.简介

1.1.范围本标准规定了发送的文本消息的语法在“电子邮件”框架内,在计算机用户之间信息。本标准取代请求中规定的标准评论(RFC)822,“ARPA互联网文本格式标准消息“[RFC822协议]更新以反映当前实践合并其他RFC中指定的增量更改[STD3标准].本标准仅规定了文本消息的语法。特别是它没有对图像的传输做出规定,电子邮件消息中的音频或其他类型的结构化数据。发布了几个扩展,例如MIME文档系列[RFC2045,RFC2046协议,RFC2049协议],描述了通过电子邮件传输此类数据将此处提供的语法扩展或通过将此类消息结构化为符合此语法。这些机制超出了本标准。在电子邮件的上下文中,消息被视为具有信封和内容物。信封里有任何信息需要完成传输和交付。(请参见[RFC2821协议]对于讨论信封。)内容包含要发送给收件人。本标准仅适用于以及消息内容的一些语义。它不包含信封中信息的说明。然而,一些消息系统可能使用来自内容的信息创建封套。本标准旨在促进通过程序获取此类信息。本规范旨在定义什么消息内容格式将在系统之间传递。尽管有些信息系统以这种格式本地存储消息(这消除了需要在格式之间进行转换),其他人使用的格式与本标准中规定的不同,本地存储是超出本标准范围。Resnick标准跟踪[第3页]


副本请求2822互联网信息格式2001年4月注:本标准无意规定内部格式网站使用的特定消息系统功能预期支持或用户界面的任何特性创建或读取消息的程序。此外,本标准没有为任一传输指定字符编码或储存;也就是说,它没有指定使用的位数或这些比特是如何通过导线传输或存储的在磁盘上。1.2.符号惯例

1.2.1.要求符号本文档偶尔使用大写字母中的术语。当术语“必须”、“应该”、“推荐”、“绝对不能”、“应当”NOT”和“MAY”显示为大写,它们用于表示本规范的特殊要求。关于这些术语的含义见[RFC2119协议].1.2.2.句法符号本标准使用增强巴克斯-诺尔形式(ABNF)符号在中指定[RFC2234协议]语法的形式定义信息。字符将由十进制值指定(例如,值%d65表示大写A,%d97表示小写A)或by用引号括起来的区分大小写的文字值(例如。,“A”表示大写或小写A)。请参见[RFC2234协议]为了全部符号的描述。1.3.本文件的结构本文档分为几个部分。本节,第1部分,是对文档的简短介绍。第2节列出消息及其组成部分。这是一个概述,帮助读者理解本文后面部分使用的一些一般原则文档。不得将本节中的任何示例视为消息任何部分的形式语法规范。第3节为每个部件的结构指定正式的ABNF规则描述消息(语法)之间的关系这些部分及其在消息上下文中的含义(语义)。也就是说,它描述了结构的实际规则消息的每个部分(语法)以及关于如何解释它们的部分和说明(语义)。这包括对Resnick标准跟踪[第4页]


副本请求2822互联网消息格式2001年4月具有特定结构的消息的子部分。语法包含在中第3节表示必须创建的消息。中也有注释第3节指示是否有任何选项在语法中指定的。两个部分2描述合法生成的消息就本标准而言。第4节指定了“过时”的语法。中的引用第3节这些过时的语法元素。这个过时语法的规则是出现在本标准的早期修订版或之前广泛使用用于Internet消息。因此,这些元素必须由消息解析器解释,以符合此要求标准。但是,由于此语法中的项已确定不可中断或导致重大问题消息的收件人,不得由一致性消息。第5节详细说明在以下情况下要考虑的安全考虑事项执行本标准。第6节是本文档中的参考书目。第7节包含编辑的地址。第8节包含确认。附录A列出了各种消息的示例。这些示例中并没有列出出现在但对某些句法形式进行了概括性的概述。附录B列出了本标准与早期标准之间的差异互联网信息标准。附录C拥有版权和知识产权声明。2.信息的词汇分析

2.1.一般说明在最基本的层次上,消息是一系列字符。A类符合本标准的消息包括值在1到127之间的字符,解释为US-ASCII字符[ASCII码].  为了简洁起见,本文档有时将此字符范围简单地称为“US-ASCII字符”。Resnick标准跟踪[第5页]


副本请求2822互联网消息格式2001年4月注:本标准规定消息由字符组成在US-ASCII范围内为1到127。还有其他文件,特别是MIME文档系列[RFC2045,RFC2046协议,RFC2047协议,RFC2048协议,RFC2049协议],它扩展了此标准以允许值超出该范围。对这些机制的讨论不在本标准的范围。消息分为多行字符。一行是一系列由两个字符分隔的字符和线馈送;即回车符(CR)字符(ASCII值13),紧跟换行符(LF)字符(ASCII值10)。(机架翻转/线馈电对通常写入本文件称为“CRLF”。)消息由标题字段组成(统称为“标题消息“)后跟正文(可选)。标题是中定义的具有特殊语法的字符行序列本标准。正文只是一系列字符在页眉后面,用空行与页眉分隔(即CRLF之前没有任何内容的行)。2.1.1.线路长度限制本标准对一行中的字符。每行字符不得超过998个字符,不应超过78个字符CRLF。998个字符的限制是由于许多实现中的限制发送、接收或存储Internet消息格式的消息一行不能处理998个以上的字符。接收实现可以很好地处理任意大的数字为了健壮起见,一行中的字符。然而,确实如此许多实现(符合传输的要求[RFC2821协议])不接受包含更多内容的邮件每行超过1000个字符(包括CR和LF),这一点很重要以便实现不创建这样的消息。较为保守的78个字符的建议是显示这些内容的许多用户界面实现可能截断或灾难性地包装每行超过78个字符,尽管如此实现与此目的不一致规范(以及[RFC2821型]如果他们真的导致信息丢失)。再次强调,即使有这个限制消息,在显示消息的实现上是累赘的Resnick标准跟踪[第6页]


副本请求2822互联网消息格式2001年4月处理一行中任意数量的字符(至少可以达到998个字符的限制)稳健性。2.2.标题字段标题字段是由字段名后跟冒号组成的行(“:”),后跟字段体,以CRLF结尾。A字段名称必须由可打印的US-ASCII字符组成(即。,值介于33和126之间的字符(包括在内),但冒号。字段主体可以由任何US-ASCII字符组成,CR和LF除外。然而,当用于页眉“折叠”和“展开”,如中所述部分
   2.2.3。所有字段主体必须符合部分4本标准的要求。2.2.1.非结构化标题字段体本标准中的一些领域机构的定义如下“非结构化”(以下指定为任何US-ASCII字符,CR和LF除外),无进一步限制。这些是称为非结构化场体。语义上,非结构化字段体被简单地视为一行字符无需进一步处理(除了收割台“折叠”和“展开”,如中所述第2.2.3节).2.2.2.结构化标题字段体本标准中的一些字段主体具有特定的语法结构比非结构化场体更具限制性如上所述。这些机构被称为“结构化”现场机构。结构化字段体是特定词汇标记的序列在章节中描述4本标准的要求。其中许多代币允许(根据语法)引入或以注释(如中所述第3.2.3节)以及空间(SP、,ASCII值32)和水平制表符(HTAB,ASCII值9)字符(统称为空白字符,WSP)和那些WSP字符受标题“折叠”和“展开”的影响中描述的第2.2.3节.结构化字段的语义分析正文及其语法一起给出。2.2.3.长标题字段每个标题字段在逻辑上是一行字符,包括字段名称、冒号和字段正文。为了方便起见然而,为了处理每行998/78个字符的限制,标题字段的字段主体部分可以拆分为多个线表示;这叫做“折叠”。一般规则是Resnick标准跟踪[第7页]


副本请求2822互联网消息格式2001年4月只要本标准允许折叠空白(不允许简单地说就是WSP字符),可以在任何WSP之前插入CRLF。对于例如,标题字段:主题:这是一个测试可以表示为:主题:此是一个测试注意:尽管结构化字段体的定义方式如下折叠可以发生在许多词汇标记之间(甚至在一些词汇标记中),折叠应限于将CRLF置于更高级别的语法中断处。例如,如果字段体定义为逗号分隔的值,建议使用折叠发生在分隔中结构化项的逗号之后优先选择其他可以折叠田地的地方,即使在其他地方是允许的。从这个折叠的多线表示中移动的过程标题字段的单行表示称为“展开”。展开只需移除任何CRLF即可完成紧接着就是WSP。每个标题字段应为以展开形式进行处理,以进一步实现句法和语义评价。2.3.车身消息的正文只是US-ASCII字符行。这个对身体的两个限制如下:-CR和LF必须作为CRLF一起出现;它们不得出现独立于身体。-正文中的字符行数必须限制为998个字符,并且应该限制为78个字符,不包括CRLF。注:如前所述,还有其他标准文件,特别是MIME文件[RFC2045,RFC2046协议,RFC2048协议,RFC2049协议]扩展了该标准以允许不同类型的消息身体。同样,这些机制超出了此范围文档。Resnick标准跟踪[第8页]


副本请求2822互联网消息格式2001年4月


.语法

3.1.简介本节中给出的语法定义了互联网信息。符合本标准的消息必须符合本节中的语法。如果在中有选项本节中应生成一个选项,即要么在散文中,要么在语法旁边的注释中。对于定义的表达式,对语法和给出了用法,然后是ABNF中的语法,最后是语义分析。已使用但未指定的基元标记来自[RFC2234协议].在某些定义中,会有一些非终结符的名称以“obs-”开头。这些“obs-”元素是指在中过时的语法第4节在所有情况下,这些产品为了生成合法的互联网而被忽略信息,不得作为此类信息的一部分使用。然而,在解释消息时,这些标记必须作为法律语法。从这个意义上说,第3节为定义语法生成消息,其中包含要忽略的“obs-”元素,虽然第4节添加用于解释消息的语法。3.2.词汇标记以下规则用于定义底层词汇分析器,它向高级解析器提供令牌。这个节定义了结构化头字段体中使用的标记。注:本标准的读者需要特别注意如何这些词汇标记用于低级别和文档后面的高级语法。尤其是白色中定义的空格标记和注释标记第3.2.3节得到使用在这里定义的低级别标记中,以及那些低级别标记依次用作稍后定义的高级令牌的一部分。因此,可以在更高级别的标记,即使它们可能不会显式出现在特定定义。3.2.1.原始标记以下是本文其他地方引用的原始标记标准,但在[射频C2234].  他们中的一些人会不会出现在语法中的任何其他地方,但它们很方便请参阅本文档其他部分中的。Resnick标准跟踪[第9页]


副本请求2822互联网消息格式2001年4月注:下面的“特价商品”就是这样一个例子。尽管特价代币在本标准中没有出现对于使用词汇分析工具的实现者很有用信息。特价商品中的每个字符都可以用来表示词汇分析中的标记化点。NO-WS-CTL=%d1-8/;US-ASCII控制字符%d11/;不包括%d12/;回车、换行、,%d14-31/;和空白字符%第127页文本=%d1-9/;不包括CR和LF的字符%第11天/%第12天/%第14-127页/obs-文本specials=“(”/“)”/;中使用的特殊字符"<" / ">" /     ;  语法的其他部分"[" / "]" /":" / ";" /"@" / "\" /"," / "." /报价这些标记没有附加任何特殊语义。他们只是单个字符。3.2.2.带引号的字符一些字符保留用于特殊解释,例如分隔词汇标记。允许将这些字符用作未解释的数据,提供了引用机制。quoted-pair=(“\”文本)/obs-qp如果出现任何报价单,则应将其解释为文本只有性格。也就是说,显示为引用的部分在语义上是“看不见的”。注意:“\”字符可能出现在消息中,但它不是消息的一部分一张引用的画。不出现在引用的pair在语义上是不可见的。这里唯一的地方当前出现引用页面的标准是内容、qcontent、,dcontent、no-fold-quote和no-fold-literal。Resnick标准跟踪[第10页]


副本请求2822互联网消息格式2001年4月


3.2.3.折叠空白和注释空白字符,包括折叠中使用的空白(如所述第2.2.3节),可能出现在中的多个元素之间标题字段体。此外,被视为注释可以作为字符包含在结构化字段体中用括号括起来。以下定义了折叠白色空间(FWS)和注释结构。括号中的字符串被视为注释只要它们不出现在“quoted-string”中,如第3.2.5节。注释可能会嵌套。本标准中有几个地方可能会有评论和FWS自由插入。为了适应这种语法,需要一个额外的标记对于“CFWS”,定义为可以出现注释和/或FWS的地方。然而,如果本标准中出现CFWS,则不得插入以这样一种方式,折叠页眉字段的任何一行都是由完全是WSP字符,没有其他内容。FWS=([*WSP CRLF]1*WSP)/;折叠空白obs-FWSctext=无-WS-CTL/;非空白控件%d33-39/;美国其他地区——ASCII%d42-91/;字符不包括“(”,%d93-126;“)”或“\”ccontent=ctext/引用对/注释注释=“(”*([FWS]ccontent)[FWS]“)”CFWS=*([FWS]评论)(([FWS]评论)/FWS)在本标准中,FWS(折叠空白标记)出现时,表示页眉折叠的位置,如中所述第2.2.3节,可能发生。页眉折叠出现在消息(即,包含CRLF后跟任何WSP),在对该标题字段执行任何进一步的词法分析根据本标准。也就是说,出现在FWS在语义上是“看不见的”注释通常用于结构化字段正文中,以提供一些人类可读的信息文本。由于允许评论包含FWS,评论中允许折叠。还要注意的是由于注释中允许引用对,所以括号和Resnick标准跟踪[第11页]


副本请求2822互联网消息格式2001年4月只要出现反斜杠字符,它们就可以出现在注释中作为一张报价单。从语义上讲,括号不是评论的一部分;评论是两者之间的内容圆括号。如前所述,任何报价中的“\”和注释中出现的任何FWS中的CRLF都是语义上的“看不见”,因此也不是评论的一部分。中词汇标记之间发生的FWS、注释或CFWS运行结构化字段头在语义上解释为单个空格字符。3.2.4.原子结构化头字段体中的几个产品很简单某些基本字符的字符串。此类产品称为原子。一些结构化标题字段体也允许句点字符(“.”,ASCII值46)。另一个“点原子”标记就是为了这些目的而定义的。atext=字母/数字/;除控件外的任何字符,"!" / "#" /     ;  SP和特色菜。"$" / "%" /     ;  用于原子"&" / "'" /"*" / "+" /"-" / "/" /"=" / "?" /"^" / "_" /"`" / "{" /"|" / "}" /“~”atom=[CFWS]1*atext[CFWS]点原子=点原子文本dot-atom-text=1*atext*(“.”1*atext)原子和点原子都被解释为一个单一的单位,包括组成它的字符串。语义上,可选其他角色周围的注释和FWS不是一部分原子的;atom只是atom中的一组atext字符,或点原子中的atext和“.”字符。Resnick标准跟踪[第12页]


副本请求2822互联网消息格式2001年4月


3.2.5.带引号的字符串包含非以下字符的字符串原子中允许的可以用带引号的字符串格式表示,其中字符用引号括起来(DQUOTE,ASCII值34)字符。qtext=无-WS-CTL/;非空白控件%d33/;美国其他地区——ASCII%d35-91/;不包括“\”的字符%d93-126;或引号字符qcontent=qtext/quoted-pairquoted-string=[CFWS]引用*([FWS]qcontent)[FWS]引用【CFWS】报价字符串被视为一个单元。也就是说,quoted-string是语义上与atom相同。由于报价单被允许包含FWS,允许折叠。还请注意,自报价以来则引号和反斜杠字符可以只要它们以引用的形式出现,就会出现在引用的字符串中。语义上,报价外的可选CFWS字符或引号字符本身都是报价字符串;引用字符串包含在这两者之间引号字符。如前所述,任何报价中的“\”以及报价表中出现的任何FWS/CFWS中的CRLF为语义上“看不见”,因此不属于引用字符串的一部分两者都可以。3.2.6.其他代币另外定义了三个标记,单词和短语用于组合原子和/或引用的字符串,非结构化,用于非结构化头字段和结构化中的某些位置标题字段。单词=atom/quoted-string短语=1*单词/词组Resnick标准跟踪[第13页]


副本请求2822互联网消息格式2001年4月utext=无-WS-CTL/;非空白控件%d33-126/;US-ASCII的其余部分obs-文本非结构化=*([FWS]utext)[FWS]3.3.日期和时间规范日期和时间出现在多个标题字段中。本节规定完整日期和时间规范的语法。虽然折叠在整个日期时间规范中允许使用空白建议在FWS的每个位置使用一个单独的空间出现(无论是必需的还是可选的);一些老年人实现可能无法解释折叠白色的其他情况空格正确。date-time=[day-of-week“,”]日期FWS时间[CFWS]周中日期=([FWS]日名称)/obs-day-of-weekday-name=“周一”/“周二”/“周三”/“周四”/“周五”/“周六”/“周日”日期=年月日年=4*DIGIT/obs-year月=(FWS月-名称FWS)/obs-monthmonth-name=“一月”/“二月”/“三月”/“四月”/“五月”/“六月”/“七月”/“八月”/“九月”/“十月”/“十一月”/“十二月”天=([FWS]1*2DIGIT)/obsday时间=FWS区域的一天时间一天中的时间=小时“:”分钟[“:”秒]小时=2DIGIT/obs-hour分钟=2DIGIT/obs-minute秒=2DIGIT/obs-second区域=((“+”/“-”)4DIGIT)/obs-区域Resnick标准跟踪[第14页]


副本请求2822互联网消息格式2001年4月日期是一个月的数字日。年份是任意数字1900年或之后。时间指定小时、分钟和可选择显示日期午夜后的秒数。日期和时间应表示当地时间。该区域指定与协调世界时(UTC,之前称为“格林威治标准时间”)表示一天中的时间。“+”或“-”表示一天的时间超前于(即东于)或落后于(即西于)世界时间。前两位数字表示小时数与世界时不同,最后两位数字表示与世界时相差的分钟数。(因此,+hhmm表示+(hh*60+mm)分钟,-hhmm表示-(hhx60+mm分钟)。表格“+0000”应用于表示时区世界时间。虽然“-0000”也表示世界时,但它是用于指示在系统上生成的时间位于世界时以外的本地时区,因此指示日期时间不包含有关本地的信息时区。日期时间规范必须在语义上有效。也就是说星期二(如果包括)必须是日期所暗示的日期,每月的数字日必须介于1和天数之间允许指定月份(在指定年份)一天中的时间必须在00:00:00到23:59:60(允许闰秒的秒数;参见[标准12])、和区域必须在-9959到+9959的范围内。3.4.地址规范地址出现在多个消息标题字段中,以指示发件人和邮件收件人。地址可以是个人邮箱或一组邮箱。地址=邮箱/组邮箱=名称地址/地址规范名称地址=[显示名称]角度地址角度地址=[CFWS]“<”addr-spec“>”[CFWS]/obs-angle-addrgroup=显示名称“:”[mailbox-list/CFWS]“;”【CFWS】雷斯尼克标准轨道[第15页]


副本请求2822互联网消息格式2001年4月display-name=短语mailbox-list=(邮箱*(“,”邮箱))/obs-mbox-listaddress-list=(地址*(“,”地址)/obs-addr-list邮箱接收邮件。它是一个概念实体必然与文件存储有关。例如,一些网站可能会选择在打印机上打印邮件并将输出发送到收件人的办公桌。通常,邮箱由两部分组成:(1)指示收件人姓名的可选显示名称(可以是个人或系统),可以显示给邮件应用程序的用户,以及(2)包含在尖括号(“<”和“>”)。还有一种替代的简单形式地址规范地址单独出现的邮箱的收件人的姓名或尖括号。互联网地址规范地址描述见第3.4.1节.注意:一些遗留实现使用简单的形式,其中addr规范不带尖括号,但包含名称在addr-spec后面的括号中显示收件人的注释。由于注释中信息的含义未明确,实现应使用邮箱的完整名称和地址形式,指定关联的显示名称,而不是传统表单带有邮箱。此外,因为一些遗留实现解释注释,注释通常不应用于地址字段以避免混淆此类实现。当需要将多个邮箱作为一个单元处理时(即在通讯组列表中),可以使用组结构。这个组构造允许发送方指示收件人。这是通过为组指定显示名称来完成的,后跟一个冒号,然后是一个以逗号分隔的任意数字列表邮箱数(包括0和1),并以分号结尾。因为邮箱列表可以为空,所以使用组构造也是向收件人传达消息的简单方式已发送给一个或多个指定的收件人集,但实际上为每个用户提供单独的邮箱地址收件人。3.4.1.添加规范addr-spec是包含后跟at-sign字符(“@”,ASCII值64),后跟Internet域。当地解释的字符串要么是引用字符串,要么是点原子。如果字符串可以表示为点原子(也就是说,它不包含由atext包围的atext字符或“.”以外的字符Resnick标准跟踪[第16页]


副本请求2822互联网信息格式2001年4月字符),则应使用点原子形式不应使用报价表。注释和折叠白色不应在addr-spec中的“@”周围使用空格。addr-spec=local-part“@”域local-part=dot-atom/quoted-string/obs-local-partdomain=dot-atom/domain-literal/obs-domaindomain literal=[CFWS]“[”*([FWS]数据内容)[FWS]“]”[CFWS]dcontent=dtext/quoted-pairdtext=无-WS-CTL/;非空白控件%d33-90/;美国其他地区——ASCII%d94-126;不包括“[”的字符,;  “]”或“\”域部分标识邮件到达的点交付。在点原子形式中,这被解释为互联网域名(主机名或邮件交换器名)为中描述的[标准差3,STD13标准,标准14].  在域-双边形式中域被解释为特定主机。在这两种情况下,如何使用寻址以及如何邮件中包含将消息传输到特定主机的信息运输单据[RFC2821协议].  这些机制不在本文件的范围。本地部分是域相关字符串。在地址中,它在特定主机上简单地解释为特定邮箱。3.5总体消息语法消息由标题字段组成,可以选择后跟消息车身。消息中的行最多只能包含998个字符不包括CRLF,但建议将行数限制为78不包括CRLF的字符。(请参见第2.1.1节以供解释。)在消息正文中,尽管文本中列出了所有字符可以使用规则,使用US-ASCII控制字符(值1到8、11、12和14到31)是不鼓励的,因为不保证接收机对显示进行解释。Resnick标准跟踪[第17页]


副本请求2822互联网消息格式2001年4月消息=(字段/obs-fields)[CRLF主体]正文=*(*998text CRLF)*998text标题字段包含大多数语义信息定义于第3.6节。正文只是一系列文本行为了本标准的目的,未对其进行解释。3.6.字段定义消息的标题字段在此处定义。所有标题字段具有相同的一般语法结构:字段名,后跟冒号,后跟字段体。每种语言的特定语法标题字段在后面的部分中定义。注意:在后面几节中每个字段的ABNF语法中字段名后跟必需的冒号。然而,为了简洁起见有时,冒号在文本描述中没有提及语法。然而,这是必需的。需要注意的是,标题字段不能保证按特定顺序排列。它们可能以任何顺序出现,并且已知在运输过程中偶尔会重新排序互联网。然而,就本标准而言,标题在传输消息或转化。更重要的是,跟踪头字段和重新发送标题字段不得重新排序,应保存在块中添加到消息之前。参见章节3.6.63.6.7了解更多信息。唯一必需的标题字段是发起日期字段和发起人地址字段。所有其他标题字段都是语法可选。表中包含更多信息遵循此定义。字段=*(跟踪*(最近日期/最近来自/最近发送人/重新发送到/最近的cc/重新发送bcc/最近msg-id))*(原始日期/来自/发送方/回复/Resnick标准跟踪[第18页]


副本请求2822互联网消息格式2001年4月至/抄送/密件抄送/消息id/回复中/参考文献/主题/评论/关键字/可选字段)下表列出了每次的次数限制字段可以出现在消息头中,也可以出现在任何特殊的这些字段的使用限制。值旁边的星号在最小或最大列中表示特殊限制出现在“注释”列中。字段最小数量最大数量注释trace 0 unlimited Block prepended-请参阅3.6.7重新发送日期0*无限制*每个块一个,必需如果其他重新发送字段存在-见3.6.6resent-from 0无限制*每个块一个-请参阅3.6.6重新发送0*无限制*每个块一个,必须使用多地址发生最近-见3.6.6resent-to 0无限制*每个块一个-请参阅3.6.6resent-cc 0无限制*每个块一个-请参阅3.6.6resent-bcc 0无限制*每个块一个-请参阅3.6.6resent-msg-id 0无限制*每个块一个-请参阅3.6.6原始日期1 1来自1 1参见发送方和3.6.2Resnick标准跟踪[第19页]


副本请求2822互联网消息格式2001年4月发送器0*1必须与multi一起出现-来自的地址-见3.6.2回复0 1到0 1抄送0 1密件抄送0 1消息id 0*1应该存在-请参阅3.6.4回复0*1应该发生在回复-见3.6.4引用0*1应该出现在回复-见3.6.4主题0 1评论0无限制关键字0不受限制可选字段0无限制每个字段的准确解释将在下文中描述部分。3.6.1.起始日期字段发起日期字段由后跟的字段名称“日期”组成通过日期时间规范。orig-date=“date:”date-time CRLF起始日期指定创建者的日期和时间消息的表示消息已完成并准备就绪进入邮件传递系统。例如,现在可能是用户在应用程序中按下“发送”或“提交”按钮程序。在任何情况下,它都不打算传达消息实际传输的时间,而不是消息的人类或其他创造者将消息放在了哪个位置最终形成,准备运输。(例如,便携式未连接到网络的计算机用户可能会将消息排队Resnick标准跟踪[第20页]


副本请求2822互联网消息格式2001年4月用于交付。发起日期旨在包含日期以及用户将消息排队的时间,而不是用户连接到网络以发送消息。)3.6.2.发起人字段消息的发起者字段由发件人字段、sender字段(如果适用),也可以选择reply-to字段。“发件人”字段由字段名“发件人”和一个或多个邮箱规范的逗号分隔列表。如果“发件人”字段中包含多个邮箱规范mailbox-list,然后是sender字段,其中包含字段名“发件人”和单个邮箱规范必须出现在消息。在这两种情况下,可选的回复字段也可以是包含,其中包含字段名“Reply-To”和一个或多个地址的逗号分隔列表。from=“from:”邮箱列表CRLFsender=“sender:”邮箱CRLFreply-to=“reply-to:”地址列表CRLF原始发件人字段指示源的邮箱消息。“发件人:”字段指定消息的作者,即负责人或系统的邮箱用于编写消息。“发件人:”字段指定负责实际传输的代理的邮箱消息。例如,如果一个秘书要给另一个人,秘书的邮箱会出现在“发件人:”字段和实际作者的邮箱将出现在“发件人:”字段。如果可以指示消息的发起者通过一个邮箱,作者和发送者是相同的不应使用“发件人:”字段。否则,两个字段都应该出现。发起人字段还提供以下情况所需的信息:回复消息。当“Reply-To:”字段出现时指示邮件作者建议的邮箱将发送回复。如果没有“回复:”字段,默认情况下,回复应发送到“发件人:”字段,除非组成回复。在所有情况下,“发件人:”字段不应包含任何不属于邮件的作者。另请参阅部分
   3.6.3有关形成目标地址的详细信息回复。Resnick标准跟踪[第21页]


副本请求2822互联网消息格式2001年4月


3.6.3.目标地址字段消息的目的地字段由三个可能的字段组成,每个相同的表单:字段名,可以是“收件人”、“抄送”或“密件抄送”,后跟一个或多个地址的逗号分隔列表(邮箱或组语法)。to=“收件人:”地址列表CRLFcc=“cc:”地址列表CRLFbcc=“密件抄送:”(地址列表/[CFWS])CRLF目标字段指定邮件的收件人。每个目的地字段可以有一个或多个地址,并且每个地址表示邮件的预期收件人。唯一的这三个字段之间的区别在于各自的使用方式。“收件人:”字段包含主要收件人的地址消息的。“抄送:”字段(其中“抄送”是指使用复写纸在打字机上复印)包含要接收消息的其他人的地址,尽管消息的内容可能不会针对他们。“密件抄送:”字段(其中“密件抄送”表示“盲抄送”)包含地址不在向邮件的其他收件人透露。有三种方式其中使用了“密件抄送:”字段。在第一种情况下,当消息包含“密件抄送:”字段的行准备发送即使所有收件人(包括指定的收件人)都已删除在“密件抄送:”字段中)发送邮件副本。在第二次在这种情况下,将分别发送“收件人:”和“抄送:”行中指定的收件人如上所述删除了“密件抄送:”行的邮件副本,但“密件抄送:”行中的收件人将获得邮件的单独副本包含“密件抄送:”行。(当有多个收件人时“密件抄送:”字段中的地址,一些实现实际上会发送一个给每个收件人的邮件的单独副本带有“密件抄送:”仅包含特定收件人的地址。)最后,由于“密件抄送:”字段可能不包含地址,因此“密件传真:”字段可以是发送时没有向失明的收件人显示任何地址副本已发送给某人。与“密件抄送:”字段一起使用的方法是依赖于实现的,但请参阅“安全性本文件的“注意事项”一节对每一项进行了讨论。Resnick标准跟踪[第22页]


副本请求2822互联网消息格式2001年4月当一封邮件是对另一封邮件的回复时原始邮件的作者(“发件人:”字段中的邮箱)或“回复:”字段中指定的邮箱(如果存在)可以出现在回复的“收件人:”字段中,因为这些通常是回复的主要收件人。如果回复发送到消息具有目标字段的,通常需要发送除了作者。当形成此类回复时,在“收件人:”和原始消息的“抄送”字段可能会出现在回复,因为这些通常是回复。如果原始邮件中存在“密件抄送:”字段,该字段中的地址可能会出现在回复的“密件抄送:”字段中,但不应出现在“收件人:”或“抄送:”字段中。注意:一些邮件应用程序具有自动回复命令将原始邮件的目标地址包含在回复的目标地址。这些回复命令的行为依赖于实现,超出了本文档的范围。特别是,是否包括原始目的地原始消息中包含“回复:”字段时的地址不是地址在这里。3.6.4.标识字段虽然是可选的,但每条消息都应该有一个“消息ID:”字段。此外,回复消息应具有“回复中:”和“参考:”字段,如下所述。“Message-ID:”字段包含一个唯一的消息标识符。“References:”和“In-Reply-To:”字段都包含一个或多个唯一的消息标识符,可以选择由CFWS分隔。消息标识符(msg-id)在语法上与angle-addr类似在没有内部CFWS的情况下构建。message id=“消息id:”消息id CRLFin-reply-to=“in-reply-to:”1*msg-id CRLFreferences=“references:”1*msg-id CRLFmsg-id=[CFWS]“<”id-left“@”id-right“>”[CFWS]id-left=dot-atom-text/no-ford-quote/obs-id-leftid-right=点-原子-文本/no-fold-literal/obs-id-右no-fold-quote=报价*(qtext/quoted-pair)报价Resnick标准跟踪[第23页]


副本请求2822互联网消息格式2001年4月no-fold-literal=“[”*(dtext/quoted-pair)“]”“Message-ID:”字段提供一个唯一的消息标识符指特定消息的特定版本。这个消息标识符的唯一性由以下主机保证:生成它(见下文)。此消息标识符旨在机器可读,对人类不一定有意义。一条消息标识符正好属于特定的一个实例化信息;消息的后续修订每次都会收到新消息标识符。注意:消息“更改”的情况有很多,但更改不会构成该消息的新实例化,并且因此消息不会获得新的消息标识符。对于例如,当消息被引入传输系统时通常在前面加上额外的头字段,例如trace字段(如中所述第3.6.7节)和重新发送字段(如中所述第3.6.6节).  添加这样的标题字段不会更改消息的标识,因此原始的“消息ID:”字段被保留。在所有情况下,这意味着发送方希望传达的信息(即这是否相同消息或其他消息),确定“Message-ID:”字段更改,没有任何特定的语法差异出现(或不出现)在消息中的。创建回复消息。它们保存原始的消息标识符消息和其他消息的消息标识符(例如,对于回复消息本身就是回复的情况)。这个“In-Reply-To:”字段可用于识别消息(或消息),新消息是对其的回复,而“References:”字段可用于标识的“线程”对话。创建邮件回复时,“回复收件人:”和结果消息的“References:”字段构造为如下所示:“In-Reply-To:”字段将包含“消息”的内容-ID:“此消息作为回复的消息字段(”父级消息”)。如果有多条父消息,则“In-回复:“字段将包含所有家长的“Message-ID:”字段。如果在任何父消息,则新消息将没有“In-Reply-To:”字段。Resnick标准跟踪[第24页]


副本请求2822互联网消息格式2001年4月“References:”字段将包含父级“References:”字段(如果有)后跟父级的内容“Message-ID:”字段(如果有)。如果父消息不包含一个“References:”字段,但确实有一个“In-Reply-To:”字段包含单个消息标识符,然后是“References:”字段将包含父级的“In-Reply-To:”字段的内容后跟父级的“Message-ID:”字段的内容(如果任何)。如果父级没有“References:”、“In-Reply-To:”,或“Message-ID:”字段,则新消息将没有“引用:”字段。注意:一些实现解析“References:”字段以显示“讨论的线索”。这些实现假设每个新消息都是对单个家长的回复,因此他们可以向后遍历“References:”字段以查找父项此处列出的每条消息。因此,尝试形成一个具有多个父级的答复的“引用:”字段为本文档中没有定义不鼓励以及如何这样做。消息标识符(msg-id)本身必须是全局唯一的消息的标识符。消息标识符的生成器必须确保消息id是唯一的。有几个可用于实现此目的的算法。因为msg-id已经与angle-addr类似的语法(除了注释和不允许折叠空白),一个好方法是将主机的域名(或域文字IP地址)消息标识符创建在“@”的右侧,并且将当前绝对日期和时间与其他一些当前唯一(可能是顺序的)标识符可用在左侧的系统上(例如,进程id号)侧面。使用左手边的日期和域名或域右边的文字可以保证唯一性,因为没有两个主机使用相同的域名或IP地址同时。虽然其他算法也会起作用,但确实如此建议右侧包含一些域标识符(主机本身或其他)使发电机消息标识符可以保证左手的唯一性方在该域范围内。从语义上讲,尖括号字符不是消息id;msg-id是包含在两个角括号之间的内容字符。Resnick标准跟踪[第25页]


副本请求2822互联网消息格式2001年4月


3.6.5.信息字段信息字段都是可选的。“关键字:”字段包含一个或多个单词的逗号分隔列表或引用的字符串。“主题:”和“注释:”字段是中定义的非结构化字段第2.2.1节,因此可能包含文本或折叠空白。subject=“subject:”非结构化CRLFcomments=“comments:”非结构化CRLFkeywords=“keywords:”短语*(“,”短语)CRLF这三个字段旨在只有人类可读的内容包含有关消息的信息。“主题:”字段是common,包含一个短字符串,用于标识消息。在回复中使用时,字段正文可以以字符串“Re:”(来自拉丁语“res”,在事件中)后跟原始消息的“主题:”字段正文的内容。如果这样做了,则应该只有文字字符串“Re:”的一个实例由于使用其他字符串或多个实例可以导致不良后果。“注释:”字段包含任何对消息正文文本的附加注释。这个“关键字:”字段包含以逗号分隔的重要单词列表以及可能对收件人有用的短语。3.6.6.重新发送字段重新发送字段应添加到由重新引入的任何消息中用户进入传输系统。一组单独的重发字段每次完成后都应添加。所有重新显示的字段对应于消息的特定重发一起。每一组新的重新发送字段都是在消息前准备的;也就是说,最近的一组重新显示字段出现在消息。重新发送时消息中的其他字段没有更改添加字段。每个重新显示的字段对应于其他位置的特定字段在语法中。例如,“Resent-Date:”字段对应于“日期:”字段和“重新发送到:”字段对应于“收件人:”字段。在每种情况下,字段体的语法都与前面给出的相应字段的语法。使用重发字段时,“重发发件人:”和“重发日期:”必须发送字段。应发送“Resent-Message-ID:”字段。如果“Resent-Sender:”与“Resent-From:”相同。Resnick标准跟踪[第26页]


副本请求2822互联网消息格式2001年4月resent-date=“resent-date:”date-time CRLFresent-from=“resent-from:”邮箱列表CRLFresent-sender=“resent-sender:”邮箱CRLFresent-to=“resent-to:”地址列表CRLFresent-cc=“resent-cc:”地址列表CRLFresent bcc=“重新发送bcc:”(地址列表/[CFWS])CRLFresent-msg-id=“回复消息id:”msg-id CRLF重新发送字段用于标识消息用户重新引入传输系统。目的使用重新发送字段是为了使消息显示在最后收件人,就像它是由原始发件人直接发送的一样所有原始字段保持不变。每组重新发送字段对应于特定的重发事件。也就是说,如果消息被多次重发,每组重发字段给出确定每个单独时间的信息。重新发送字段为严格的信息性。不得在正常情况下使用对消息的回复或其他这样的自动动作的处理。注:将消息重新引入传输系统并使用重新发送字段是与“转发”不同的操作。“转发”有两种含义:转发的一种含义是邮件用户可以告诉阅读程序转发消息的副本发送给另一个人,使转发的消息成为新消息的主体消息。在这种意义上转发的消息似乎没有来自原始发件人,但是来自的全新邮件消息的转发器。另一方面,转发也是用于表示邮件传输程序收到消息并将其转发到其他目的地进行最终交付。重新发送标题字段不适用于转发。重新发送发件人字段指示人员的邮箱或重新发送消息的系统。与常规发起人一样字段,有两种形式:简单的“Resent-From:”形式包含进行重发的个人的邮箱,以及更复杂的形式,当一个人(在“Resent-Sender:”字段)代表一个或多个重新发送消息其他(在“重新发送自:”字段中标识)。注意:回复重新发送的消息时,回复的行为与之相同将与任何其他消息一起使用原始“发件人:”,Resnick标准跟踪[第27页]


副本请求2822互联网消息格式2001年4月“回复收件人:”、“消息ID:”和其他字段。重新显示的字段是仅供参考,不得用于回复。“Resent-Date:”表示重新发送的日期和时间消息由消息的重发者发送。就像“日期:”字段,它不是消息的日期和时间实际运输。“Resent-To:”、“Resent-Cc:”和“Resent-Bcc:”字段功能分别与“收件人”、“抄送”和“密件抄送”字段相同,除非它们指示重新发送消息的收件人,而不是原始邮件的收件人。“Resent-Message-ID:”字段为重新发送消息。3.6.7.跟踪字段跟踪字段是一组标题字段,由可选的“Return-Path:”字段和一个或多个“Received:”字段。“返回路径:”标题字段包含一对尖括号包含可选的addr-spec。“Received:”字段包含名称/值对列表(可能为空),后跟分号和日期时间规范。名称/值对的第一项是由item-name定义,第二项是addr-spec原子、域或消息id根据标准提供的跟踪字段的语法使用,例如[RFC2821协议].trace=[返回]1*收到return=“return-Path:”Path CRLF路径=([CFWS]“<”([CFWS]/addr-spec)“>”[CFWS])/obs路径received=“received:”name-val-list“;”日期时间CRLFname-val-list=[CFWS][名字-名字-配对*(CFWS名字-配对)]name-val-pair=商品名称CFWS商品价值项目名称=ALPHA*([“-”](ALPHA/DIGIT))项目值=1*角度地址/地址规格/原子/域/消息idResnick标准跟踪[第28页]


副本请求2822互联网消息格式2001年4月关于Internet邮件跟踪字段的使用的详细讨论如下包含在中[RFC2821协议].  在本标准中字段是严格的信息性字段它们不在本文件的范围之内。3.6.8.可选字段字段可能出现在本规范中未指定的消息中标准。它们必须符合可选字段的语法。这是一个字段名,由可打印的US-ASCII字符组成除SP和冒号外,后面跟冒号,后面跟任何符合以下条件的文本符合非结构化。任何可选字段的字段名称不得与任何本标准其他地方规定的字段名称。optional-field=field-name“:”非结构化CRLF字段名称=1*ftextftext=%d33-57/;任何字符,除了%d59-126;控件、SP和;  ":".在本标准中,任何可选字段都是无法解释。4.过时的语法本标准的早期版本允许不同的(通常更多自由)此版本中允许的语法。此外,还有是互联网消息中使用的语法元素解释从未被记录在案。尽管其中一些语法形式不得根据第3节,它们必须被一致的接收器接受和解析。本节记录了其中许多语法元素。采取中的语法第3节并添加本节中给出的定义节将产生用于解释的语法信息。注意:本节确定了任何实现的语法形式必须合理解释。然而,确实有互联网甚至不符合中给出的附加语法的消息本节。事实上,一个特定的形式没有出现在任何本文档的第节不是计算机程序的正当理由崩溃或任何实施。重复一个例子,尽管本文档要求消息中的行不超过998个字符,无提示Resnick标准跟踪[第29页]


副本请求2822互联网消息格式2001年4月丢弃一行中的第999个及后续字符警告对于实现来说仍然是不好的行为。已经结束了实现对消息的稳健处理。过时(口译)和当前(生成)语法是结构化头字段体中的语法(即,在冒号和任何结构化标题的CRLF之间字段)、空白字符,包括折叠空白,以及可以在任何语法标记之间自由插入注释。这个允许许多对某些人来说很困难的复杂表单要解析的实现。过时语法和当前语法之间的另一个关键区别是规则在第3.2.3节关于完全由以下内容组成的线条注释中的空白和折叠空白不适用。请参见中折叠空白的讨论第4.2节如下所示。最后,消息中以前允许使用的某些字符出现在本节中。NUL字符(ASCII值0)是一次允许,但由于兼容性原因不再允许。CR和LF为允许以CRLF以外的形式出现在消息中;这种用法也是如图所示。语法和语义上的其他差异如下所示部分。4.1.其他过时标记这些语法元素在过时的语法或在主要语法中。obs-char和obs-qp元素各自添加ASCII值0。裸CR和裸LF被添加到obs-text和obs-utext。句点字符将添加到obs-phrase中。obs-phrase列表在以逗号分隔的短语列表中提供“空”元素。注:obs-phrase中的“句点”(或“句号”)字符(“.”)为不是早期版本中允许的表单标准。句号(或其他特殊字符)不是允许在短语中使用,因为它带来了解析困难区分addr-spec的短语和部分(请参见第4.4节).  它出现在这里是因为句点字符是当前在的显示名称部分的许多消息中使用地址,尤其是姓名首字母缩写,因此必须正确解释。将来,周期可能会出现在短语的常规语法。obs-qp=“\”(%d0-127)obs-text=*LF*CR*(obs-char*LF*CR)Resnick标准跟踪[第30页]


副本请求2822互联网消息格式2001年4月obs字符=%d0-9/%d11/;%d0-127除CR和%d12/%d14-127;低频obs-utext=obs-textobs-phrase=单词*(单词/“.”/CFWS)obs-phrase-list=phrase/1*([phrase][CFWS]“,”[CFWS])[短语]裸CR和裸LF出现在具有两种不同含义的消息中。在许多情况下,不正确地使用裸CR或裸LF代替CRLF指示行分隔符。在其他情况下,裸CR和裸LF简单用作ASCII控制字符及其传统ASCII含义。4.2.过时的折叠空白在过时的语法中,任何数量的折叠空格都可以是在允许obs-FWS规则的位置插入。这将创建一行中有两个连续“褶皱”的可能性,以及因此,组成折叠收割台的线条可能字段可以完全由空白组成。obs-FWS=1*WSP*(CRLF 1*WSP)4.3废弃日期和时间过时日期格式的语法允许在日期字段并允许使用字母时区列表本标准早期版本中使用的规范。它还允许在许多代币。obs-day-of-week=[CFWS]日名称obs-year=[CFWS]2*DIGIT[CFWS]obs-month=CFWS月名称CFWSobsday=[CFWS]1*2DIGIT[CFWS]obs-hour=[CFWS]2DIGIT[CFWS]obs-minute=[CFWS]2DIGIT[CFWS]obs-second=[CFWS]2DIGIT[CFWS]obs-zone=“UT”/“GMT”/;世界时间Resnick标准跟踪[第31页]


副本请求2822互联网消息格式2001年4月; 北美UT; 偏移“EST”/“EDT”/;东部:-5/-4“CST”/“CDT”/;中部:-6/-5“MST”/“MDT”/;山脉:-7/-6“PST”/“PDT”/;太平洋:-8/-7%d65-73/;军事区-“A”%d75-90/;通过“I”和“K”%d97-105/;通过“Z”,两者%d107-122;大写和小写如果日期中出现两位数或三位数的年份,则年份应为解释如下:如果遇到两位数的年份值在00和49之间,年份的解释是增加2000,最终的值介于2000和2049之间。如果两位数的年份是遇到50到99之间的值,或任意三位数的年份遇到时,年份被解释为加1900。在过时的时区中,“UT”和“GMT”表示“世界时”和“格林威治标准时间”分别是语义上与“+0000”相同。剩下的三个字符区是美国时区。第一个字母“E”、“C”、“M”或“P”代表“东部”、“中部”、,“山”和“太平洋”。第二个字母为“S”,表示“标准”时间,或“D”表示“夏令时”(或夏季)。他们的解释如下:EDT在语义上等价于-0400EST在语义上等价于-0500CDT在语义上等价于-0500CST在语义上等价于-0600MDT在语义上等价于-0600MST在语义上等价于-0700PDT在语义上等同于-0700PST在语义上等价于-08001个字符的军事时区是在非标准时区中定义的进入的方式[RFC822协议]因此,它们的含义是不可预测的。军事区“A”到“I”的最初定义是分别相当于“+0100”到“+0900”;“K”、“L”和“M”分别相当于“+1000”、“+1100”和“+1200”;“N”至“Y”分别相当于“-0100”至“-1200”;“Z”相当于“+0000”。然而,由于中的错误[RFC822协议],除非有一些银行外信息证实了它们的含义。Resnick标准跟踪[第32页]


副本请求2822互联网消息格式2001年4月其他多字符(通常在3到5之间)字母时区已在Internet消息中使用。任何此类时区含义未知应视为等同于“-0000”除非有确认其含义的银行外信息。4.4.过时的寻址寻址有三个主要区别。首先,邮箱在addr-spec之前,允许地址具有路由部分当包含在“<”和“>”中时。路线简单地用逗号分隔域名列表,每个域名前面都有“@”,列表以结尾用冒号表示。其次,允许CFWS在间隔期之间local-part和domain元素(即未使用dot-atom)。此外,local-part还允许包含quoted-string到原子。最后,邮箱列表和地址列表被允许具有“null”成员。也就是说,在这样的清单中间没有任何内容。obs-angle-addr=[CFWS]“<”[obs-route]addr-spec“>”[CFWS]obs-route=[CFWS]obs-domain-list“:”[CFWS:obs-domain-list=“@”域*(*(CFWS/“,”)[CFWS]“@”domain)obs-local-part=单词*(“.”单词)obs-domain=atom*(“.”atom)obs-mbox-list=1*([邮箱][CFWS]“,”[CFWS]])[邮箱]obs-addr-list=1*([地址][CFWS]“,”[CFWS]])[地址]解释地址时,应忽略路由部分。4.5.过时的标题字段在语法上,过时字段语法的主要区别是它允许任何字段多次出现,并且它们可以以任何顺序发生。此外,允许任何数量的空白在字段名称末尾的“:”之前。obs-fields=*(obs-return/已接收到obs/obs-orig日期/obs-来自/obs发送器/obs回复/光突发交换(obs-to)/Resnick标准跟踪[第33页]


副本请求2822互联网消息格式2001年4月obs-cc公司/obs-bcc/obs-消息id/obs-in-reply到/obs-参考/obs主题/obs-注释/obs关键字/obs发布日期/obs-resent-来自/obs-resent-发送/obs重新发送rply/obs-resent-to/obs-resent-cc/obs-resent-bcc型/obs-resent-mid/(可选)除了目标地址字段(如中所述第4.5.3节),字段多次出现的解释尚未明确。此外,记录道场和重现场的解释不出现在消息前面的块中也是未指定的。除非以下章节另有说明其他字段与对其非过时字段的解释相同中的对应项第3节.4.5.1.过时的起始日期字段obs orig date=“日期”*WSP“:”日期时间CRLF4.5.2.过时的发起人字段obs-from=“from”*WSP“:”mailbox-list CRLFobs-sender=“发件人”*WSP“:”邮箱CRLFobs-reply-to=“reply-to”*WSP“:”邮箱列表CRLF4.5.3。过时的目标地址字段obs-to=“to”*WSP“:”地址列表CRLFobs-cc=“cc”*WSP“:”地址列表CRLFobs bcc=“bcc”*WSP“:”(地址列表/[CFWS])CRLFResnick标准跟踪[第34页]


副本请求2822互联网消息格式2001年4月当目标地址字段在消息,应将其视为字段的出现与通过添加逗号和连接来进行后续出现。4.5.4.过时的标识字段过时的“In-Reply-To:”和“References:”字段与允许短语(单词或带引号的字符串)出现。msg-id左侧和右侧的过时形式允许分散的CFWS,使它们在语法上与本地部分和域。obs-message-id=“消息id”*WSP“:”msg-id CRLFobs in reply-to=“in reply-to”*WSP“:”*(短语/msg id)CRLFobs-references=“参考”*WSP“:”*(短语/msg-id)CRLFobs-id-left=本地部分obs-id-right=域为了便于解释,“回复:”中的短语和忽略“References:”字段。语义上,没有围绕本地部分的可选CFWS域是obs-id-left和obs-id-right的一部分分别是。4.5.5.过时的信息字段obs-subject=“subject”*WSP“:”非结构化CRLFobs-comments=“comments”*WSP“:”非结构化CRLFobs-keywords=“keywords”*WSP“:”obs-phrase-list CRLF4.5.6.过时的重新显示字段过时的语法添加了“Resent-Reply-To:”字段,其中包括字段名称、可选注释和折叠空白的冒号和以逗号分隔的地址列表。obs-resent-from=“resent-from”*WSP“:”mailbox-list CRLFobs-resent-send=“resent-Sender”*WSP“:”邮箱CRLFResnick标准跟踪[第35页]


副本请求2822互联网消息格式2001年4月obs-resent-date=“resent-date”*WSP“:”日期时间CRLFobs-resent-to=“resent-to”*WSP“:”地址列表CRLFobs resent cc=“重新发送抄送”*WSP“:”地址列表CRLFobs-resent-bcc=“resent-bcc”*WSP“:”(地址列表/[CFWS])CRLFobs-resent-mid=“resent-Message-ID”*WSP“:”msg-ID CRLFobs-resent-rply=“resent-Reply-To”*WSP“:”地址列表CRLF与其他重发字段一样,“重发重发:”字段将仅作为跟踪信息处理。4.5.7.过时的跟踪字段这里再次将obs-return和obs-received作为模板给出定义,正如return和received在第3节.他们的完整语法见[RFC2821协议].obs return=“返回路径”*WSP“:”路径CRLFobs-received=“已接收”*WSP“:”name-val-list CRLFobs-path=obs-angle-addr4.5.8.过时的可选字段obs-optional=field-name*WSP“:”非结构化CRLF5.安全注意事项在终端或终端模拟器。强大的终端可能作用于转义序列和ASCII控制字符的其他组合后果。他们可以重新映射键盘或允许其他可能导致拒绝服务的终端修改甚至损坏数据。它们可以触发(有时是可编程的)可以允许消息导致命令代表收件人签发。它们还可以影响操作终端连接设备,如打印机。消息查看器可能希望从中去除潜在危险的终端逃逸序列显示之前的消息。然而,出现了其他转义序列用于有用目的的消息(参见[RFC2045,RFC2046协议,RFC2047协议,RFC2048协议,RFC2049协议,ISO2022]),因此不应剥离不加区别地。Resnick标准跟踪[第36页]


副本请求2822互联网消息格式2001年4月在消息中传输非文本对象会引发其他问题安全问题。这些问题在[RFC2045,RFC2046协议,RFC2047协议,射频2048,RFC2049协议].许多实现使用“密件抄送:”字段中描述的第3.6.3节方便向发送消息收件人,而不透露一个或多个收件人发送给其他收件人。误用“密件抄送:”对可能泄露的机密信息有影响,通过了解以下信息最终可能导致安全问题甚至存在特定的邮件地址。例如,如果使用中描述的第一种方法第3.6.3节,其中“密件抄送:”行从邮件中删除,盲收件人没有明确的表明已向其发送盲拷贝,除非他们的地址没有出现在邮件标题中。因为这样,其中一个盲收件人可能会向所有显示的收件人,并意外地透露消息给了盲人。当第二种方法来自部分
   3.6.3则盲收件人的地址显示在“密件抄送:”消息的单独副本的字段。如果“密件抄送:”字段已发送包含所有盲收件人,所有“密件抄送:”收件人将被每个“密件抄送:”收件人看到。即使有单独的消息发送给每个“密件抄送:”收件人,只需提供个人地址,实现仍然需要小心处理对消息依据第3.6.3节以免意外泄露对其他收件人设置盲收件人。6.参考文献[ASCII码]美国国家标准协会(ANSI),代码字符集-7位美国国家标准代码信息交换,ANSI X3.41986年。[ISO2022年]国际标准化组织(ISO),信息处理.ISO 7位和8位编码字符集.代码扩展技术,第三版-1986-05-01,ISO 20221986。[RFC822协议]Crocker,D.,“ARPA互联网格式标准文本消息“,副本请求8221982年8月。[RFC2045协议]Freed,N.和N.Borenstein,“多用途互联网邮件扩展(MIME)第1部分:Internet消息格式身体”,RFC 2045号文件,1996年11月。[RFC2046协议]Freed,N.和N.Borenstein,“多用途互联网邮件扩展(MIME)第二部分:媒体类型“,RFC 2046号文件,1996年11月。Resnick标准跟踪[第37页]


副本请求2822互联网消息格式2001年4月[射频2047]Moore,K.,“多用途互联网邮件扩展(MIME)第三部分:非ASCII文本的消息标题扩展”,副本请求20471996年11月。[RFC2048协议]Freed,N.、Klensin,J.和J.Postel,“多用途Internet邮件扩展(MIME)第四部分:格式互联网消息正文”,RFC 2048号文件1996年11月。[RFC2049协议]Freed,N.和N.Borenstein,“多用途互联网邮件扩展(MIME)第五部分:一致性标准和示例“,射频20491996年11月。[RFC2119协议]Bradner,S.,“RFC中使用的关键词需求水平”,业务连续性计划14,副本请求21191997年3月。[RFC2234协议]编辑Crocker,D.和P.Overell,“增强BNF语法规范:ABNF“,RFC 2234号文件1997年11月。[RFC2821协议]Klensin,J.,编辑,《简单邮件传输协议》,副本请求
              28212001年3月。[STD3标准]Braden,R.,《主机要求》,STD 3,副本请求1122副本请求
              11231989年10月。[标准12]Mills,D.,“网络时间协议”,STD 12,副本请求1119,1989年9月。[STD13标准]Mockapetris,P.,“域名系统”,STD 13,RFC 1034号文件副本请求10351987年11月。[标准14]Partridge,C.,“邮件路由和域系统”,STD14,副本请求9741986年1月。7.编辑地址彼得·雷斯尼克高通公司莫尔豪斯大道5775号加利福尼亚州圣地亚哥92121-1714美国电话:+1 858 651 4478传真:+1 858 651 1102电子邮件:presnick@qualcomm.comResnick标准跟踪[第38页]


副本请求2822互联网消息格式2001年4月


8.致谢许多人对这份文件作出了贡献。他们包括那些参与了邮件的详细修订和更新互联网工程任务标准(DRUMS)工作组部队(IETF)、DRUMS主席、IETF区域主管,以及只是通过电子邮件发送评论的人。编辑是深深感激他们,并衷心感谢他们。下面是列表中包括发送有关此文档的电子邮件的所有人。希望所有做出贡献的人都能在这里被点名:马蒂·阿尼奥·巴里·芬克尔·拉里·马斯特田中亚基拉·埃里克·福斯伯格·丹尼斯·麦基恩(Tanaka Akira Erik Forsberg Denis McKeon)Russ Allbery Chuck Foster William P McQuillan公司埃里克·奥尔曼·保罗·福克斯·阿列克谢·梅尔尼科夫Harald Tveit Alvestrand Klaus M.Frank Perry E.MetzgerRan Atkinson Ned Freed史蒂文·米勒Jos Backus Jochen弗里德里希·基思·摩尔Bruce Balden Randall C.盖尔伦斯John Gardiner Myers戴夫·巴尔·苏克文德·辛格·吉尔·克里斯·纽曼阿兰·巴雷特·蒂姆·古德温·约翰·W·诺伦伯格约翰·贝克·菲利普·冈瑟·埃里克·诺曼J.Robert von Behren托尼·汉森·迈克·奥戴尔Jos den Bekker约翰·霍金森拉里·奥斯特曼D.J.Bernstein Philip Hazel Paul Overell博士詹姆斯·贝里曼·凯·亨宁森·雅各布·帕尔姆诺伯特·博洛特·罗伯特·赫里奥特·迈克尔·巴顿Raj Bose Paul Hethmon Uzi Paz公司安东尼·鲍斯曼(Antony Bowesman)、吉姆·希尔(Jim Hill)、迈克尔·A·昆兰(Michael A.Quinlan)斯科特·布拉德纳·保罗·E·霍夫曼·埃里克·S·雷蒙德兰迪·布什·史蒂夫·霍尔·萨姆·罗伯茨汤姆·拜勒卡里·赫塔·休·萨塞布鲁斯·坎贝尔(Bruce Campbell)、马可·海曼·巴特·谢弗(Marco S.Hyman Bart Schaefer)拉里·坎贝尔Ofer Inbar汤姆·斯科拉W.J.Carpenter Olle Jarnefors Wolfgang Segmuller先生迈克尔·查普曼·凯文·约翰逊·尼克·谢尔内斯理查德·克莱顿·苏迪什·约瑟夫·约翰·斯坦利Maurizio Codogno Maynard Kang Einar Stefferud公司吉姆·康克林·普拉巴特·基尼(Jim Conklin Prabhat Keni)杰夫·斯蒂芬森(Jeff Stephenson)R.Kelley Cook John C.Klensin伯纳德·斯特恩史蒂夫·科亚·格雷厄姆·克莱恩·彼得·西尔维斯特马克·克里斯平·布莱德·诺尔斯马克·西蒙斯Dave Crocker Shuhei Kobayashi埃里克·托马斯马特·柯丁·彼得·科赫·李·汤普森迈克尔·德埃里科·丹·科恩·卡雷尔·德弗里恩特赛勒斯·达布·克里斯蒂安·库兹·马修·沃尔朱塔·德格纳·阿南德·库米拉·罗尔夫·韦伯马克·德拉尼·斯蒂恩·拉森·布伦特·韦尔奇雷斯尼克标准轨道[第39页]


副本请求2822互联网消息格式2001年4月史蒂夫·多纳·艾略特·李尔·丹·永(Steve Dorner Eliot Lear Dan Wing)哈罗德·A·德里斯科尔·巴里·雷巴·杰克·德温特迈克尔·埃尔金斯杰·莱维特·格雷戈里·伍德豪斯罗伯特·埃尔兹·拉尔斯(Robert Elz Lars-Johan Liman Greg A.Woods)约翰尼·埃里克逊·查尔斯·林赛·山本嘉祖(Johnny Eriksson Charles Lindsey Kazu Yamamoto)埃里克·E·费尔皮特·洛辛·阿兰·扎姆罗杰·法伊曼·西蒙·莱尔杰米·扎温斯基帕特里克·福尔茨特罗姆·比尔·曼宁·蒂莫西·苏切尔克劳斯·安德烈·法伯·约翰·马丁Resnick标准跟踪[第40页]


副本请求2822互联网消息格式2001年4月


附录A.示例消息本节提供了一系列消息。这些是为了协助实施本标准,但不应作为规范;也就是说,尽管这里的例子如果碰巧发生冲突,请仔细审查部分在这些示例和部分中描述的语法之间4在本文档中,这些部分中的语法将被视为对的。此部分中的消息在“----”行之间分隔。这个“----”行不是消息本身的一部分。A.1款.解决示例以下是两个服务器之间可能发送的消息示例个人。A.1.1节.一个人发给另一个人的简单地址信息这可以称为规范消息。它只有一个作者,John Doe,单身收件人,Mary Smith,主题,日期消息标识符和正文中的文本消息。----发件人:John Doe<jdoe@machine.example(jdoe@机器示例)>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:1997年11月21日星期五09:55:06-0600消息ID:<1234@local.machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----Resnick标准跟踪[第41页]


副本请求2822互联网消息格式2001年4月如果约翰的秘书迈克尔真的发了信息,尽管约翰是作者吗?对此消息的回复应该发回给他将使用sender字段:----发件人:John Doe<jdoe@machine.example(jdoe@机器示例)>发件人:迈克尔·琼斯<mjones@machine.example>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:1997年11月21日星期五09:55:06-0600消息ID:<1234@local.machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----A.1.2节。不同类型的邮箱此消息在目标字段中包含多个地址也使用几种不同形式的地址。----发件人:“Joe Q.Public”<john.q.public@example.com>收件人:玛丽·史密斯<mary@x.test>, jdoe@example.org,谁<one@y.test测试>抄送:<boss@nil.test>,“Giant;”大“Box”<sysservices@example.net>日期:2003年7月1日星期二10:52:37+0200消息ID:<5678.21-1997年11月21日@example.com>大家好。----请注意,Joe Q.Public和Giant的显示名称;“大”盒子需要用双引号括起来,因为前者包含句点和后者包含分号和双引号字符(显示为报价单的双引号字符构造)。相反,Who的显示名称?可能会出现没有它们,因为原子中的问号是合法的。通知还有那个jdoe@example.orgboss@nil.test没有显示名称与他们有任何关联,以及jdoe@example.org使用更简单的没有尖括号的地址形式。Resnick标准跟踪[第42页]


副本请求2822互联网消息格式2001年4月


A.1.3节.组地址----发件人:Pete<pete@silly.example>致:A组:Chris Jones<c@A.test>,joe@where.test,约翰<jdoe@one.test测试>;抄送:未披露收件人:;日期:1969年2月13日星期四23:32:54-0330消息ID:<testabcd.1234@silly.example>测试。----在此消息中,“收件人:”字段有一个名为a的组收件人包含3个地址的组,以及一个“抄送:”字段,该字段为空名为“未披露收件人”的组收件人。A.2款.回复消息以下是组成约翰和玛丽之间的对话线索。John firsts发送了一个消息给玛丽,玛丽回复约翰的消息,然后约翰回复玛丽的回复信息。请特别注意“Message-ID:”、“References:”和“In-Reply-To:”每个消息中的字段。----发件人:John Doe<jdoe@machine.example(jdoe@机器示例)>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:1997年11月21日星期五09:55:06-0600消息ID:<1234@local.machine.example(1234@local.machine.example)>这是一条信息,只是为了打个招呼。所以,“你好”。----Resnick标准跟踪[第43页]


副本请求2822互联网消息格式2001年4月但在发送回复时,“主题”字段通常会被保留前面加上“Re:”,如中所述第3.6.5节.----发件人:玛丽·史密斯<mary@example.net>收件人:John Doe<jdoe@machine.example(jdoe@机器示例)>回复:“玛丽·史密斯:个人账户”<smith@home示例>主题:回复:打招呼日期:1997年11月21日星期五10:01:10-0600消息ID:<3456@example.net>回复中:<1234@local.machine.example>参考文献:<1234@local.machine.example(1234@local.machine.example)>这是对你的问候的回复。----请注意上述消息中的“回复:”字段。当约翰回复时对于玛丽上面的信息,回复应发送到“回复收件人:”字段,而不是“发件人:”字段中的地址。----收件人:“玛丽·史密斯:个人账户”<smith@home.example>发件人:John Doe<jdoe@machine.example(jdoe@机器示例)>主题:回复:打招呼日期:1997年11月21日星期五11:00:00-0600消息ID:<地址:abcd.1234@local.machine.tld>回复中:<3456@example.net>参考文献:<1234@local.machine.example> <3456@example.net>这是对你回复的回复。----答3.重新发送消息从已经被用作示例的消息开始次数:----发件人:John Doe<jdoe@machine.示例>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:1997年11月21日星期五09:55:06-0600消息ID:<1234@local.machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----Resnick标准跟踪[第44页]


副本请求2822互联网消息格式2001年4月说Mary在收到此消息后希望发送一份给简的消息,这样(a)消息看起来直接从约翰那里来;(b) 如果Jane回复消息应回复约翰;和(c)所有原件信息,比如消息最初发送给玛丽的日期,保留消息标识符和原始收件人。在这种情况下,重新发送字段被添加到消息之前:----投诉人:玛丽·史密斯<玛丽@example.net>致:简·布朗<j-brown@other.example(j-brown@其他示例)>最近日期:1997年11月24日星期一14:22:01-0800回复消息ID:<78910@example.net>发件人:John Doe<jdoe@machine.example(jdoe@机器示例)>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:1997年11月21日星期五09:55:06-0600消息ID:<1234@local.machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----如果Jane反过来想把这条消息重新发送给另一个人,她会在上面加上她自己的一组resent头字段然后发送。Resnick标准跟踪[第45页]


副本请求2822互联网消息格式2001年4月


A.4款.带有跟踪字段的消息当消息通过传输系统发送时,如中所述[RFC2821协议],跟踪字段已添加到消息的前面。以下内容是这些跟踪字段的一个示例。请注意自这些行以来,第一行中有一些折叠空白可能会很长。----收到:来自x.y.test通过example.net通过TCP带ESMTPid ABC12345的<玛丽@example.net>;  1997年11月21日10:05:43-0600接收:来自机器,例如通过x.y.test;1997年11月21日10:01:22-0600发件人:John Doe<jdoe@machine.example(jdoe@机器示例)>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:1997年11月21日星期五09:55:06-0600消息ID:<1234@local.machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----Resnick标准跟踪[第46页]


副本请求2822互联网消息格式2001年4月


答5.空白、评论和其他奇怪之处空白,包括折叠空白,评论可以插入到字段的多个标记之间。举个例子从A.1.3开始,可以在所有领域。----发件人:皮特(一个很棒的家伙)<皮特(他的账户)@sill.test(他的主人)>收件人:A Group(一些人):Chris Jones<c@(Chris的主持人)public.example>,joe@example.org,约翰<jdoe@one.test测试>(我亲爱的朋友);(小组结束)抄送:(空列表)(开始)未披露收件人:(没有人(我认识));日期:星期四,13二月196923:32-0330(纽芬兰时间)消息ID:<测试bcd.1234@sily.test>测试。----上述例子在美学上令人不快,但完全合法。特别注意(1)“发件人:”字段中的注释(包括有“)”字符出现在报价单中的一部分);(2)“收件人:”字段中“:”后没有空格,以及群组名称后的注释和折叠空白,特殊Chris Jones地址评论中的字符(“.”),以及折叠前后空白“joe@example.org,”;(3)“抄送:”字段中的多个嵌套注释以及紧跟在“抄送”后的“:”后面的注释;(4) 褶皱空白(但除末尾外没有注释)和缺少的日期字段时间中的秒数;(5)前面的空白(但不在)“Message-ID:”字段中的标识符。答6.作废表格以下是过时的示例(即“不得generate”)中描述的语法元素第4节这个的文档。雷斯尼克标准轨道[第47页]


副本请求2822互联网消息格式2001年4月


A.6.1款.地址过时请注意,在下面的示例中,缺少关于Joe Q Public的引用,玛丽·史密斯地址中的路线,两个逗号出现在“收件人:”字段中,以及出现在jdoe地址中的“.”。----发件人:Joe Q.Public<john.q.public@example.com>收件人:玛丽·史密斯<@machine.tld:mary@example.net>, jdoe@测试例子日期:2003年7月1日星期二10:52:37+0200消息ID:<5678.21-1997年11月21日@example.com>大家好。----A.6.2款.过时日期以下消息使用了过时的日期格式,包括非-数字时区和两位数的年份。请注意,尽管缺少day-of-week,这不是特定于过时的语法;在当前语法中,它也是可选的。----发件人:John Doe<jdoe@machine.示例>收件人:玛丽·史密斯<mary@example.net>主题:打招呼日期:97年11月21日09:55:06 GMT消息ID:<1234@local.machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----A.6.3款.过时的空白和注释空白和注释可以出现在比在当前语法中。此外,折叠线完全由空白是合法的。Resnick标准跟踪[第48页]


副本请求2822互联网消息格式2001年4月----发件人:John Doe<jdoe@machine(评论)。示例>收件人:Mary Smith__<mary@example.net>主题:打招呼日期:1997年11月21日星期五09(评论):55:06-0600消息ID:<1234@local(blah).machine.example>这是一条信息,只是为了打个招呼。所以,“你好”。----特别注意“收件人:”字段的第二行。它开始于两个空格字符。(注意,“__”代表空格。)因此,它被视为折叠的一部分,如第4.2节此外,整个页面的注释和空白地址、日期和消息标识符都是过时的语法。附录B与早期标准的差异本附录包含在早期标准中的Internet消息格式,特别是[RFC822协议]和[STD3标准].  下面标有星号(*)的项目是指出现在第4节因此不能再生成。1.短语的过时形式允许的句点。2.ABNF移出文档到[RFC2234协议].3.年份允许四位或四位以上。4.标头字段顺序明确(缺少)。5.已删除加密头字段。6.接收的语法松散,允许任何标记/值对。7.特别允许“-0000”时区并赋予其含义。8.每个标记之间不允许折叠空白。9.删除目的地要求。10.转发和重发已重新定义。11.扩展标题字段不再明确显示。12.删除ASCII 0(空)*13.折叠续行不能仅包含空白*14.日期中不允许自由插入注释*15.不允许非数字时区*16.不允许使用两位数的年份*17.解释了三位数年份,但不允许生成。18.不允许在地址中路由*19.本地部分和域中不允许CFWS*20.不允许空的地址列表成员*Resnick标准跟踪[第49页]


副本请求2822互联网信息格式2001年4月21.不允许在字段名和冒号之间折叠空白*22.不允许在字段名和冒号之间添加注释。23.in-reply-to和references的语法更加紧凑*24.消息id中不允许CFWS*25.重新显示字段的严格语义仅供参考。26.不允许Resent-Reply-To*27.字段没有多次出现(除了重新发送和接收)*28.不允许自由CR和LF*29.不允许返回路径中的路由*30.规定的线路长度限制。31.更明确地指定密件抄送。附录C.通知知识产权IETF对任何可能要求的知识产权或其他权利与中描述的技术的实现或使用有关本文件或此类权利下的任何许可的范围可能可用或不可用;它也不代表它已尽力确定任何此类权利。有关IETF关于标准权利的程序——跟踪和标准相关文档可在中找到白细胞介素-11.的副本可供出版的权利主张和许可证可用,或尝试获得使用此类设备的通用许可证或许可本规范实施者或用户的所有权可以从IETF秘书处获取。Resnick标准跟踪[第50页]


副本请求2822互联网消息格式2001年4月完整版权声明版权所有(C)互联网协会(2001)。保留所有权利。本文件及其翻译可复制并提供给其他,以及评论或以其他方式解释它的衍生作品或协助其实施全部或部分分发,不受任何限制种类,前提是上述版权声明和本段包括在所有此类副本和衍生作品中。然而,这文档本身不能以任何方式修改,例如删除版权声明或提及互联网协会或其他互联网组织,除非出于以下目的需要制定互联网标准,在这种情况下互联网标准过程中定义的版权必须或根据需要将其翻译为其他语言英语。上述授予的有限权限是永久性的,不会被互联网协会或其继承人或受让人撤销。本文件及其所含信息在“现状”基础与互联网协会和互联网工程TASK FORCE否认所有明示或暗示的担保,包括但不限于保证信息的使用本协议不会侵犯针对特定目的的适销性或适用性。确认RFC编辑器功能的资金目前由互联网社会。Resnick标准跟踪[第51页]