欢迎来到天天文库
浏览记录
ID:7234934
大小:444.00 KB
页数:9页
时间:2018-02-08
《简单邮件传输协议smtp》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、简单邮件传输协议SMTPSMTP是因特网电子邮件系统重要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮箱所在邮件服务器传送到收信人邮箱所在邮件服务器。SMTP是客户-服务器应用模式,由发信人的邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器向其它邮件服务器发送邮件消息时,它是作为SMTP客户端。当一个邮件服务器从其它邮件服务器接收邮件消息时,它是作为SMTP服务器端。SMTP规范定义在RFC821中,它的作用是把邮件消息
2、从发信人的邮件服务器传送到收信人的邮件服务器。SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。这个限制使得二进制多媒体数据在由SMTP传送之前必须编码成7位ASCII文本;SMTP传送完毕之后,再把相应的7位ASCII文本邮件消息解码成二进制数据。下面通过假设Alice给Bob发送一个简单的ASCII文本邮件消息的情形来说明SMTP的基本操作:●Alice调用自己的电子邮件用户代理,给出Bob的电子邮件地址(例如bob@csu.edu),写好邮件内容,然后让用户代理发送本邮件消息。●Alice的用户代理把该邮件
3、消息发送到其邮件服务器中,由邮件服务器把该消息放入某个消息队列中。●运行在A1ice的邮件服务器上的SMTP客户端看到消息队列中的这个邮件消息后,打开一个到运行在Bob的邮件服务器主机上的SMTP服务器端的TCP连接。●经过最初的一些SMTP握手之后,SMTP客户把A1ice的邮件消息发送到TCP连接上。●在Bob的邮件服务器主机上,SMTP服务器收到这个邮件消息后,把这个消息投递到Bob的邮箱中。●Bob在方便的时候调用自己的电子邮件用户代理阅读该邮件消息。图11.2展示了上述情形。图1A1ice的邮件服务器把邮件消息传送到B
4、ob的邮件服务器SMTP通常不使用中间的邮件服务器主机中转邮件。如果Bob的邮件服务器不工作了,那么A1ice发给Bob的邮件消息将存留在Alice的邮件服务器中等待新的尝试,而不会存放到某个中间的邮件服务器中。SMTP协议与现实社会人们面对面交互的礼仪之间有许多相似之处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不工作,SMTP客户就等待一段时间后再尝试建立该连接。这个连接建立之后,SMTP客户和服务器先执行一些
5、应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息。SMTP使用传输层提供的可靠数据传输服务(TCP服务)把该消息无差错地传送到服务器。如果客户还有其它邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程;否则,它就指示TCP关闭该连接。假设客户所在主机名为sina.com,服务器所在主机名为csu.edu。前面标以“C:”的ASCII文
6、本行是客户发送到它的TCP套接字中的完整文本行,前面标以“S:”的ASCII文本行是服务器发送到它的TCP套接字中的完整文本行。一个客户和服务器交互的例子如下(以下传输脚本在TCP连接建立之后发生):S:220csu.eduC:HELOsina.comS:250Hellosina.com,pleasedtomeetyouC:MAILFROM:S:250alice@sina.com...SenderOKC:RCPTTO:S:250bob@csu.edu...RecipientOKC:DATAS:354Entermail,endwi
7、th"."onalinebyitsselfC:Doyoulikeketchup?C:Howaboutpickles?C:.S:250MessageacceptedfordeliveryC:QUITS:221csu.educlosingconnection在这个例子中,客户发送了一个从邮件服务器主机sina.com到csu.edu的邮件消息,信体内容为:“Doyoulikeketchup?Howaboutpickles?”。客户总共发出了5个命令。其中HELO命令标识发信人自己的身份;MAILFROM命令表示请求发送邮件,初始化邮
8、件传输;RCPTTO命令标识某电子邮件的计划接收人;DATA命令表示所有的邮件接收人已标识,并初始化数据传输,以.结束;QUIT命令表示退出邮件发送过程,结束会话。服务器给每个命令发回应答,其中每个应答都由应答码和一些英语解释(可选)构成。SMTP使用持久连接,
此文档下载收益归作者所有