简介
邮件的格式对所有不同的E-mail协议来说都非常重要。可以用两种方式来看email信息,简单文本信息和多用途Internet邮件扩展形式MIME(Mutlipurpose InternetMail Extensions).本文主要是讲解传统E-mail格式。
传统E-mail格式
每一个传统E-mail形式都包含两个不同部分:header(首部)和body(正文), 中间用一空行隔开。邮件的TCP/IP标准(RFC 822)指明了邮件header的准确格式和每个首部字段的语义解释,但它将正文的格式的定义留给了发送方。而且,标准指明了邮件首部包含可读文本,而它又被分为若干行,每行由一个关键字跟冒号和一个值组成。Header包含控制数据,如收件人、发件人、标题、发送时间等,而body包含信息本身。
选择邮件格式是为了使在异构机器间处理和传输变得容易。保持邮件首部格式的的直观使得它可用于各种系统。
传统E-mail格式实例
下面是一个简单邮件的例子:
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
To: jinguang.liu@qq.com
From: jliu@163.com
Subject: This is a test email
Date: Wed, 22 Apr 2015 22:26:32 +0800
Message-ID: <20150422142632.10808.43927@bob-PC>
Hello,
this is an autotest email.
---anonimous.
邮件header信息,用于帮助邮件程序(服务器程序和客户端程序)正确处理邮件(发送、转发、显示等),常用的header:
To header: 表明邮件接收人
From header:向用户表明邮件的发件人
Subject header:显示邮箱的摘要信息
Date header:用来按照到达时间分类邮箱
Message-ID header:需要确保产生的Message ID与世界上其他任何邮件都不一样。”@”右边部分是产生这个Message ID的主机全名,这就保证了Message ID是依赖一个唯一的计算机的。而”@”右边的部分是由时间、产生ID的程序进程ID以及一些随机数据联合产生。Message-ID和In-Reply-To header可以帮助邮件服务程序分层次显示邮件。
MIME header:可以帮助邮件程序以合适的语言、格式来显示邮件,它们也用来处理附件。
Header在E-mail系统中扮演很重要的角色,只是它们对于邮件实际的递送没有用。关于头部一个更复杂的例子,来自RFC 822,有兴趣的朋友可以参考此RFC文档:
Date : 27 Aug 76 0932 PDT
From : Ken Davis <KDavis@This-Host.This-net>
Subject : Re: The Syntax in the RFC
Sender : KSecy@Other-Host
Reply-To : Sam.Irving@Reg.Organization
To : George Jones <Group@Some-Reg.An-Org>, Al.Neuman@MAD.Publisher
cc : Important folk: Tom Softwood <Balsa@Tree.Root>, "Sam Irving"@Other-Host;,
Standard Distribution: /main/davis/people/standard@Other-Host, "<Jones>standard.dist.3"@Tops-20-Host>;
Comment : Sam is away on business. He asked me to handle his mail for him. He'll be able to provide a more accurate explanation when he returns next week.
In-Reply-To: <some.string@DBM.Group>, George's message
X-Special-action: This is a sample of user-defined field-names. There could also be a field-name "Special-action", but its name might later be preempted
Message-ID: <4231.629.XYzi-What@Other-Host>