计算机网络原理简单邮件传送协议(SMTP)
简单邮件传送协议(SMTP)是一种电子邮件协议,它既具有客户机(发送者)功能,又具有服务器(接收者)功能。SMTP是Internet上的基础传输机制,大多数系统使用它在计算机服务器之间发送邮件。SMTP允许将电子邮件从一个计算机邮件服务器发送到另一个计算机邮件服务器。SMTP服务器接受本地用户的邮件,以将它传输到网络外部的服务器上。
大多数系统通过本地邮件系统服务器在本地按路径发送电子邮件。SMTP发送程序从输出邮件队列中得到报文,通过多个TCP连接将它们传输到目标主面的25号端口上,将这些报文传输到正确的目的计算机。在发送过程中,SMTP接收程序必须能名证实本地邮件目的地址,并处理各种差错,包括传输差错以及没有足够的磁盘空间等。
SMTP发送程序对报文所负的责任直到SMTP接收程序指示传送完成为止。SMTP协议的作用范围仅限于SMTP发送程序和SMTP接收程序之间的对话过程。SMTP主要功能是传送报文。
SMTP规定了14条命令和21种应答信息,每条命令由一行文本组,并以4个字母组成,而每一种应答信息由一个3位数据代码开始,后面附加很简单的文字说明。下面我们来了解SMTP通信最主要的命令和响应信息,一般分三个阶段:
1.连接建立
发送方将需要发送的邮件发送到邮件缓存。SMTP发送程序将每隔一定时间对邮件缓存进行扫描一次。如有邮件未发送,将使用SMTP程序端口号(25号)与目的计算机的SMTP 服务器建立连接。
当连接建立后,将发送“220 Service ready(服务就绪)”,并向SMTP服务器发送HELO 命令来标识自己。
接收方SMTP程序,接收到所发来的标识后,则返还应答“250 OK(一切正常)”来接受发送程序的身份标识。
如果接收方的邮件服务不可用,则返还应答“421 Service not available(服务不可用)”。2.邮件传送
当连接建立后,SMTP发送程序将向SMTP接收程序发送报文信息。报文传送有3个逻辑阶段:
●用一个MAIL命令标识出报文发起方。例如: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服务器交互的过程都被电子邮件系统的用户代理屏蔽了,所以用户在使用
电子邮件的时是看不见这个过程的。