正文
因特网中的电子邮件系统有三个主要部分:用户代理、邮件服务器和简单邮件传输协议( SMTP )。
用户代理允许用户阅读、回复、转发、保存和撰写报文。
每个邮件服务器上会对应每个接收方有个邮箱。邮箱管理和维护着接收方的报文。具体而言,发送方将邮件发送到发送方的服务器邮箱,发送方的服务器又将邮件发送到接收方的服务器邮箱,接收方的服务器再将邮件发送给接收方。这个过程必须满足 SMTP 。
当接收方的服务器出现故障时,发送方的服务器会延时发送并稍后尝试。多次尝试无果后,会向发送方客户报错。
SMTP
SMTP 是因特网电子邮件的核心。它要求报文必须转化成 ASCII 码再进行传输。
同时它也要求每个用户代理与服务器,服务器与服务器之间必须通过 TCP 连接进行传输。且 SMTP 要求各个服务器之间不存在中间服务器。也就是发送方服务器和接收方服务器之间不存在其他中介服务器。
与 HTTP 对比
三个区别。
第一,HTTP 是一个“拉协议”,即在方便的时候,某些人在服务器上装载信息,用户使用该协议在服务器上拉取信息。SMTP 是一个“推协议”,即发送服务器把文件推给接收服务器。
第二,SMTP 要求 ASCII 码格式。HTTP 不需要。
第三,HTTP 将对象封装到自己的 HTTP 响应报文中。SMTP 把所有报文对象放在一个报文之中。
邮件报文格式
每一个典型的邮件报文都包含首部行和报文体。
每个报文的首部行都会包含 From: 首部行和 To: 首部行。
邮件访问协议
从发送方的用户代理到发送方的邮件服务器,以及发送方的邮件服务器到接收方的邮件服务器都是通过 SMTP 协议进行的。但是,从接收方的邮件服务器到接收方的用户代理却是通过邮件访问协议进行的。
目前一些流行的用户访问协议有:“第三版的邮局协议( POP3 )”、“因特网邮件访问协议( IMAP )”和 HTTP 。
POP3 按照三个阶段进行工作:特许、事务处理以及更新。在特许阶段,用户代理发送用户名和口令来让服务器鉴别用户。事务处理阶段,用户代理可以对报文做删除标记、取消删除标记以及获取邮件的统计信息。更新阶段出现在用户发出了 quit 命令之后,目的是结束该 POP3 会话。之后,邮件服务器会删除那些被标记为删除的报文。
在这个过程中,服务器会对每个用户代理发出的命令做出回答。若一切正常,则回答 +OK,否则,则回答 -ERR。
POP3 可以有两种配置:“下载并删除”和“下载并保留”。
IMAP 则是在 POP3 原有功能的基础上,增加了文件夹的管理功能。每个文件夹与相应的收件人相对应。
返回原文
应用层