简单邮件传输协议SMTP.docVIP

  • 10
  • 0
  • 约8.02千字
  • 约 9页
  • 2016-10-14 发布于天津
  • 举报
简单邮件传输协议SMTP.doc

简单邮件传协议SMTPSMTP是因特网电子邮件系统要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮件服务器传送到收信人邮件服务器。SMTP发信人邮件服务器执行的客户端和收信人邮件服务器执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器向其邮件服务器发送邮件消息时,它是作为SMTP客户。当一个邮件服务器从其邮件服务器接收邮件消息时,它是作为SMTP服务器。SMTP规范定义在RFC 821中,它的作用是把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。这个限制使二进制多媒体数据在由SMTP传送之前编码成7位ASCII文本SMTP传送完毕之后,再把相应的7位ASCII文本邮件消息解码成二进制数据。下面通过假设Alice给Bob发送一个简单的ASCII文本邮件消息的情形来说明SMTP的基本操作●Alice调用自己的电子邮件用户代理,给出Bob的电子邮件地址(如bob@),写好邮件内容,然后让用户代理发送本邮件消息。●Alice的用户代理把该邮件消息发送到邮件服务器中,由邮件服务器把该消息某个消息队列中。●运行在A1ice的邮件服务器上的SMTP客户端看到消息队列中的这个邮件消息后,打开一个到运行在Bob的邮件服务器主机上的SMTP服务器端的TCP连接。●经过最初的一些SMTP握手之后SMTP客户把A1ice的邮件消息发送到TCP连接上。●在Bob的邮件服务器主机上,SMTP服务器收到这个邮件消息后,把这个消息投递到Bob的邮箱中。●Bob在方便的时候调用自己的电子邮件用户代理阅读该邮件消息。图11.2展示了上述情形。 图1 A1ice的邮件服务器把邮件消息传送到Bob的邮件服务器SMTP通常不使用中间的邮件服务器主机中转邮件如果Bob的邮件服务器不工作了,那么A1ice发给Bob的邮件消息将存留在Alice的邮件服务器中等待新的尝试,而不会存放到某个中间的邮件服务器中。SMTP协议与面对面交互的礼仪之间有许多相似之处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不工作,SMTP客户就等待一段时间后再尝试建立该连接。这个连接建立之后,SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息。SMTP提供的可靠数据传输服务TCP服务)把该消息无错地传送到服务器如果客户还有其邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程否则,它就指示TCP关闭该连接客户所在主机名为,服务器所在主机名为。前面标以“C:”的ASCII文本行是客户发送到它的TCP套接字中的完整文本行,前面标以“S:”的ASCII文本行是服务器发送到它的TCP套接字中的完整文本行。一个客户和服务器交互的例子以下传输脚本在TCP连接建立之后发生S: 220 C: HELO S: 250 Hello , pleased to meet you C: MAIL FROM: S: 250 alice@ ... Sender OK C: RCPT TO: S: 250 bob@...Recipient OK C: DATA S: 354 Enter mail, end with . on a line by its self C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 closing connection 在这个例子中,客户发送了一个从邮件服务器主机到的邮件消息,信体内容为:“Do you like ketchup? How about pickles?”。客户总共发出了5个命令HELO命令标识发人自己的身份MAIL FROM命令RCPT TO命令标识电子邮件的计划接收人DATA命令表示所有的邮件接收人已标识,并初始化数据传输,以.结束;QUIT命令退出结束会话服务器给每个命令发回应答,其中每个应答都由应答码和一些英语解释(可选)构成SMTP使用持久连接,如果发送邮件服务器有多个邮件消息需发送到同一个接收邮件服务器,那么所有这些消息可以在同一个TCP连接中发送。对于其中的每一个消息,客户以一个新的“HELO ”命令开始整个消息发送过程,但是QUIT命令要等到

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档