文档介绍:简单邮件传输协议SMTPSMTP是因特网电了邮件系统重要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮箱所在邮件服务器传送到收信人邮箱所在邮件服务器。SMTP是客户•服务器应川模式,由发信人的邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器向其它邮件服务器发送邮件消息时,它是作为SMTP客户端。当一个邮件服务器从其它邮件服务器接收邮件消息时,它是作为SMTP服务器端。SMTP规范定义在RFC821中,它的作用是把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。这个限制使得二进制多媒体数据在由SMTP传送Z前必须编码成7位ASCII文木;SMTP传送完毕Z后,再把相应的7位ASCII文木邮件消息解码成二进制数据。下面通过假设Alice给Bob发送一个简单的ASCII文木邮件消息的情形来说明SMTP的基本操作:•Alice调用自己的电了邮件用户代理,给出Bob的电了邮件地址(例如******@),写好邮件内容,然后让用户代理发送本邮件消息。•Alice的用户代理把该邮件消息发送到其邮件服务器屮,由邮件服务器把该消息放入某个消息队列屮。•运行在Alice的邮件服务器上的SMTP客户端看到消息队列中的这个邮件消息后,打开一个到运行在Bob的邮件服务器主机上的SMTP服务器端的TCP连接。•经过最初的一些SMTP握手Z后,SMTP客户把Alice的邮件消息发送到TCP连接上。•在Bob的邮件服务器主机上,SMTP服务器收到这个邮件消息后,把这个消息投递到Bob的邮箱屮。•Bob在方便的时候调用自己的电子邮件用户代理阅读该邮件消息。。000nni□on刃特网mm□□□Boh的邮件眼务器Alice的邮件服务黔图1Alice的邮件服务器把邮件消息传送到Bob的邮件服务器SMTP通常不使用中间的邮件服务器主机中转邮件。如果Bob的邮件服务器不工作了,那么Alice发给Bob的邮件消息将存留在Alice的邮件服务器屮等待新的尝讥而不会存放到某个屮间的邮件服务器中。SMTP协议与现实社会人们面对面交互的礼仪之间有许多相似Z处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不工作,SMTP客户就等待一段时间麻再尝试建立该连接。这个连接建立Z后,SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先白我介绍一下。在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电了邮件地址。彼此白我介绍完毕Z后,客八发出邮件消息。SMTP使用传输层提供的可靠数据传输服务(TCP服务)把该消息无差错地传送到服务器。如果客八还有其它邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程;否则,它就指示TCP关闭该连接。,“CT的ASCII文木行是客户发送到它的TCP套接字屮的完整文木行,前面标以“ST的ASCII文木行是服务器发送到它