2024年4月18日发(作者:)

计算机网络 SMTP协议

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一种电子邮件协议,它既

具有客户机(发送方)发送邮件的功能,又具有服务器(接收方)接收邮件的功能。SMTP

协议允许将电子邮件从一个计算机邮件服务器发送到另一个计算机邮件服务器,并且SMTP

服务器接收本地用户发送的邮件,以便将其传输到互联网中其他邮件服务器上。

在互联网中,大多数计算机系统通过本地邮件系统服务器在本地按路径发送电子邮件。

SMTP发送程序从输出邮件队列中得到邮件报文,通过多个TCP连接将邮件报文传输到目标

主机的25号端口上。在发送过程中,SMTP接收程序必须能够证实本地邮件目的地址,并

处理各种差错,包括传输差错以及没有足够接收空间等。

SMTP发送程序对报文的作用直到SMTP接收程序指示传输完成才结束,因此SMTP协

议的作用范围仅限于SMTP发送程序和SMTP接收程序之间的对话过程。SMTP协议的主要

功能是传送报文,为了保证正确传送报文,SMTP协议规定了14条命令和21种响应信息。

其中,每条命令由一行文本组和四个字母的命令组成;而每一种响应信息由一个三位数据代

码和简单的文字说明组成。下面介绍SMTP协议通信过程中,各阶段主要用到的命令和响应

信息。

1.建立连接

邮件发送方将需要发送的邮件发送到邮件缓存中,SMTP发送程序将每隔一定时间对邮

件缓存进行扫描。如果缓存有未发送的电子邮件,则使用SMTP程序端口号与目的计算机的

SMTP服务器建立连接。

建立连接后,发送方将发送“220 Service ready(服务就绪)”的信息,并向SMTP服务

器发送用来标识自己的HELLO命令。当接收方的SMTP程序接收到发送方所发送的信息后,

则返回响应信息“250 OK(一切正常)”,以便接收发送方SMTP发送程序的身份标识。如果

接收方的邮件服务器不可用,则返回响应信息“421 Service not available(服务不可用)”。

2.传输邮件

当连接建立成功后,SMTP发送程序将向SMTP接收程序发送邮件报文信息。邮件报文

传送包括以下三个逻辑阶段:

 用一个EAIL命令标识出邮件报文的发送方。例如,MAIL FROM:

 用一个或者多个RCPT命令标识该邮件报文的接收方。例如,RCPT TO: <收信人电子

邮箱地址>。

 用一个DATA命令标识该邮件报文的内容。

发送MAIL命令后,如果SMTP服务器已经做好接收邮件的准备,则返回响应信息“250

OK(一切正常)”。否则,返回有关无法接收邮件原因的响应信息,例如451(处理时出错)、

452(存储空间不够)、500(命令无法识别)等。

RCPT命令标识邮件接收方的电子邮箱地址,多次使用该命令能够为邮件指定多个接收

者,并且每个RCPT命令都会返回一个单独的响应信息。例如“550 No such user here(无此

用户)”,即不存在此电子邮箱地址。RCPT命令的作用是:先检测SMTP接收服务器是否做

好接收邮件的准备,然后在进行邮件传输。

3.关闭连接

邮件发送完毕后,发送方SMTP服务器程序将发送QUIT命令。当接收方SMTP服务器

程序返回响应信息“211(服务关闭)”时,表明接收方SMTP服务器程序同意关闭TCP连接。

在现实的电子邮件系统中,SMTP协议的通信过程都被电子邮件系统的用户代理所

提 示

屏蔽,用户使用电子邮件时看不到此通信过程。