2024年4月21日发(作者:)
电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就
必须遵循一定的规则,这些规则就是邮件传输协议。SMTP协议定了邮件客户端与SMTP
服务之间,以及两台SMTP服务器之间发送邮件的通信规则;POP3/IMAP协议定义了邮件
客户端与POP3服务器之间收发邮件的通信规则。
一、SMTP协议
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)定义了邮件客户端
与SMTP服务器之间,以及两台SMTP服务器之间发送邮件的通信规则 。SMTP协议属于
TCP/IP协议族,通信双方采用一问一答的命令/响应形式进行对话,且定了对话的规则
和所有命令/响应的语法格式。
SMTP协议中一共定了18条命令,发送一封电子邮件的过程通常只需要其中的6条
命令即可完成发送邮件的功能,下表按照发送命令的先后顺序列出了这6条命令,并描
述了其语法及功能说明,其中,
SMTP命令格式 说明
ehlo命令是SMTP邮件发送程序与SMTP
邮件接收程序建立连接后必须发送的第一条
ehlo
SMTP命令,参数
的主机名。
ehlo命令用于替代传统SMTP协议中的helo命
令。
如果SMTP邮件接收程序需要SMTP邮件发
送程序进行认证时,它会向SMTP邮件发送程序
auth
提示它所采用的认证方式,SMTP邮件发送程序接
着应该使用这个命令回应SMTP邮件接收程序,
参数
邮件接收程序先前提示的认证方式。
此命令用于指定邮件发送者的邮箱地址,参
mail
数
此命令用于指定邮件接收者的邮箱地址,
rcpt
参数
果邮件要发送给多个接收者,那么应使用多条
rcpt
箱地址。
此命令用于表示SMTP邮件发送程序准备开
始输入邮件内容,在这个命令后面发送的所有数
data
“
束。
此命令表示要结束邮件发送过程,SMTP邮件
quit
发送程序的网络连接。
其它SMTP命令的语法及功能描述可以参考RFC821和RFC1869文档。
对于SMTP邮件发送程序发送的每一条命令,SMTP邮件接收程序都将回应一条响应
信息。每条响应信息都以一个响应状态开头,如:250 OK。响应状态用于表示SMTP服
务器对请求命令的处理结果和状态,它是一个三位的十进制数。响应状态码的最高位数
字代表了不同的分类,当其为 2 时表示命令执行成功;为5时表示命令执行失败;为3
时表示命令没有完成。关于响应状态码所代表的具体含义,可以参考RFC821文档。
SMTP协议是一个基于TCP/IP的应用层协议,SMTP服务器默认的网络监听端口号为
25,下面将通过telnet程序,手工发送SMTP命令来发送一封电子邮件,从而理解SMTP
协议的交互过程。
模拟环境说明:连接sina的SMTP服务器,给163的SMTP服务器发送一封邮件,操作
过程如下图所示:


发布评论