邮件服务是
Internet上最常用的服务之一,它提供了与操作系统平台无关的通信服务,使用邮件服务,用户可通过电子邮件在网络之间交换数据信息。邮件传输包括将邮件从发送者客户端发往邮件服务器,以及接收者从邮件服务器将邮件取回到接收者客户端。
SMTP和POP3
在
TCP/IP协议簇中,一般使用SMTP协议发送邮件,POP3协议接收邮件。
SMTP,全称
Simple Message Transfer Protocol,中文名为简单邮件传输协议,工作在TCP/IP层次的应用层。SMTP采用Client/Server工作模式,默认使用TCP 25端口,提供可靠的邮件发送服务。
POP3,全称
Post Office Protocol 3,中文名为第三版邮局协议,工作在TCP/IP层次的应用层。POP3采用Client/Server工作模式,默认使用TCP 110端口,提供可靠的邮件接收服务。
SMTP和POP3的工作原理
发送和接收邮件都需要以下两个组件:用户代理(
UA,常用的是Foxmail或Outlook)和SMTP/POP3服务器。
SMTP
工作原理:
1) 客户端使用
TCP协议连接SMTP服务器的25端口;
2) 客户端发送
HELO报文将自己的域地址告诉给SMTP服务器;
3) SMTP服务器接受连接请求,向客户端发送请求账号密码的报文;
4) 客户端向
SMTP服务器传送账号和密码,如果验证成功,向客户端发送一个OK命令,表示可以开始报文传输;
5) 客户端使用
MAIL命令将邮件发送者的名称发送给SMTP服务器;
6) SMTP服务器发送
OK命令做出响应;
7) 客户端使用
RCPT命令发送邮件接收者地址,如果SMTP服务器能识别这个地址,就向客户端发送OK命令,否则拒绝这个请求;
8) 收到
SMTP服务器的OK命令后,客户端使用DATA命令发送邮件的数据。
9) 客户端发送
QUIT命令终止连接。
POP3
工作原理:
1) 客户端使用
TCP协议连接邮件服务器的110端口;
2) 客户端使用
USER命令将邮箱的账号传给POP3服务器;
3) 客户端使用
PASS命令将邮箱的账号传给POP3服务器;
4) 完成用户认证后,客户端使用
STAT命令请求服务器返回邮箱的统计资料;
5) 客户端使用
LIST命令列出服务器里邮件数量;
6) 客户端使用
RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态;
7) 客户端发送
QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。
(注:客户端
UA可以设定将邮件在邮件服务器上保留备份,而不将其删除。)
SMTP/POP3命令码
SMTP/POP3命令码
通过
SMTP/POP3协议进行邮件收发操作时,均通过不同的命令码进行不同的操作,现将其命令码总结如下:
SMTP
命令如表1所示:
命令
|
作用
|
HELO
|
客户端发送此命令与
SMTP服务器建立连接,将发送者邮件地址发送给SMTP服务器
|
MAIL
|
客户端将邮件发送者的名称传送给
SMTP服务器
|
RCPT
|
客户端将邮件接收者的名称传送给
SMTP服务器
|
DATA
|
客户端将邮件报文内容传送给
SMTP服务器
|
SEND
|
用于向指定用户传送邮件
|
SAML/SOML
|
用于发送邮件
|
RSET
|
取消客户端与
SMTP服务器间的当前事务,释放与当前事务相关的内存
|
EXPN
|
标识邮件接收者列表
|
QUIT
|
终止客户端与
SMTP服务器间的连接
|
(表
1 SMTP协议命令)
POP3
命令如表2所示:
命令
|
作用
|
USER
|
客户端向
POP3服务器传送账号
|
PASS
|
客户端向
POP3服务器传送密码
|
STAT
|
客户端请求
POP3服务器返回邮箱的统计信息
|
UIDL
|
客户端请求
POP3服务器返回邮件的唯一标识符
|
LIST
|
客户端请求
POP3服务器返回邮件数量和每封邮件的大小
|
RETR
|
客户端请求
POP3服务器返回由参数标识的邮件的全部文本
|
DELE
|
POP3服务器将由参数标识的邮件标记为删除
|
RSET
|
POP3服务器重置所有标记为删除的邮件,用于撤消
DELE命令
|
NOOP
|
POP3服务器返回一个肯定的响应
|
QUIT
|
终止客户端
POP3服务器间的连接
|
(表
2 POP3协议命令)