因特网中的电子邮件
因特网电子邮件系统有3个主要组成部分:用户代理、邮件服务器、简单邮件传输协议(SMTP)。
用户代理:允许用户阅读、回复、转发、保存和撰写报文。
邮件服务器:每个接收方在其中的某个邮件服务器上有一个邮箱。一个用户的邮箱管理和维护着发送给他的报文。
一个典型的邮件发送过程是:从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。当Bob要在它的邮箱中读取该报文时,包含它邮箱的邮件服务器(使用用户名和口令)来鉴别Bob。
Alice的邮箱也必须能处理Bob的邮件服务器的故障。如果Alice的服务器不能将邮件交付给Bob的服务器,Alice的邮件服务器在一个报文队列中保持该报文并在以后尝试再次发送。通常每30分钟左右进行一次尝试。如果几天后仍不能成功,服务器就删除该报文并以电子邮件的形式通知发送方(Alice)。
SMTP(端口25)
SMTP是因特网电子邮件中主要的应用层协议。使用TCP可靠数据传输服务,从发送方的邮件服务器向接收方的邮件服务器发送邮件。
像大多数应用层协议一样,SMTP也有两个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端。每台邮件服务器上既运行SMTP的客户端也运行SMTP的服务器端。
SMTP一般不使用中间邮件服务器发送邮件,即使这两个邮件服务器位于地球的两端也是这样。
SMTP如何将一个报文从发送邮件服务器传送到接收邮件服务器:
运行在发送邮件服务器主机上的客户SMTP在25号端口建立一个到服务器SMTP的TCP连接。
如果服务器没有开机,客户会在稍后继续尝试该连接。一旦连接建立,服务器和客户执行某些应用层的握手。
在SMTP握手的阶段,SMTP客户指示发送方的邮件地址和接收方的邮件地址。一旦该SMTP客户和服务器彼此介绍之后,客户发送该报文。SMTP能依赖TCP提供的可靠数据传输无差错地将邮件投递到接收服务器。
一旦创建了TCP连接,就开始了下列过程。SMTP使用持续连接。
与HTTP的对比
HTTP:拉协议。即在方便的时候,某些人在Web服务器上装载信息,用户使用HTTP从该服务器拉取这些信息。特别是TCP连接是由想接收文件的机器发起的。
SMTP:推协议。即发送邮件服务器把文件推向接收邮件服务器。特别是,这个TCP连接是由要发送该文件的机器发起的。
邮件报文格式
每个首部必须还有一个From: 一个To:
一个首部也许包含一个Subject: 和其他可选首部行。
在报文首部之后,紧接着一个空白行,然后是以ACSII格式表示的报文体。
邮件访问协议
SMTP用于将邮件从发送方的邮件服务器传输到接收方的邮件服务器;SMTP也用来将邮件从发送方的用户代理传送到发送方的邮件服务器。
如POP3这样的邮件访问协议用来将邮件从接收方的邮件服务器传送到接收方的用户代理。
第三版的邮局协议 POP3
当用户代理打开了一个到邮件服务器端口110上的TCP连接后,POP3就开始工作了。
三个阶段。
1.特许阶段:用户代理发送用户名和口令 鉴别用户
2.事务处理阶段:用户代理取回报文。同时还能对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息。
3.更新阶段:出现在客户发出了quit命令之后,目的是结束该POP3会话。这时,该邮件服务器删除那些被标记为删除的报文。
因特网邮件访问协议 IMAP
IMAP协议为用户提供了创建文件夹以及将邮件从一个文件夹移动到另一个文件夹的命令。IMAP还为用户提供了在远程文件夹中查询邮件的命令,按指定条件去查询匹配的邮件。
IMAP维护了IMAP会话的用户状态信息,例如文件夹的名字以及哪些报文与哪些文件夹相关联。
IMAP的另一个重要特性是它具有允许用户代理获取报文某些部分的命令。例如,一个用户代理可以只读取一个报文的报文首部,或只是一个多部份的MIME报文的一部分。