ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:253KB ,
资源ID:1776031      下载积分:6 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1776031.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(SMTP协议详解.docx)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

SMTP协议详解.docx

1、1. 第1章 SMTP概述1. SMTP在邮件通信中的位置2. 几个术语1. 邮件2. 用户代理3. 邮件服务器3. 邮件的收发过程2. 第2章 SMTP详解1. 通信过程2. 命令和响应1. 格式2. 一个例子3. 常用命令4. 常用响应3. 第3章 SMTP的扩充1. SMTP的缺点2. ESMTP3. 邮件首部的扩充4. 正文的扩充4. 第4章 常见的疑问1. 为什么需要SMTP服务器2. SMTP和邮件格式的关系3. 浏览器发送邮件用的什么协议4. 如何用实验验证SMTP的通信过程5. 第5章 分析方案6. 第6章 参考资料SMTP协议分析第1章SMTP概述1.1 SMTP在邮件通信中

2、的位置SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。SMTP在整个电子邮件通信中所处的位置如图 1所示。图 1电子邮件的通信过程可以看出,SMTP是用来将客户机上的邮件传送到服务器上。这里的客户机是指某次连接中的发送方,服务器是指相应的接收方。在讲解发送邮件的整个通信过程前,先解释一下面几个术语。1.2几个术语1.2.1.邮件邮件是一种消息的格式,由信封、首部和正文组成。信封上最重要的是收信人的地址。邮件服务器用这个地址将邮件发送到收信人所在的邮件服务器上。首部是由用户代理或邮件服务器添加的一些信

3、息。包括Received、Message-ID、From、Data、Reply-To、X-Phone、X-Mailer、To和Subject等字段。正文是是发送用户发给接收用户报文的内容。RFC 822 规定正文为NVT ASCII文字行。更为详细的说明,请参考RFC821和RFC822等协议。1.2.2.用户代理用户代理UA(User Agent)是用户与电子邮件系统的交互接口,一般来说它就是我们PC机上的一个程序。Windows上常见的用户代理是Foxmail和Outlook Express。用户代理提供一个好的用户界面,它提取用户在其界面填写的各项信息,生成一封符合SMTP等邮件标准的邮

4、件,然后采用SMTP协议将邮件发送到发送端邮件服务器。1.2.3.邮件服务器邮件服务器是电子邮件系统的核心,它用来发送和接收邮件。邮件服务器不同于普通PC的是它几乎是全天工作的,所以它可以在任何时候为用户提供服务,后面将提到这正是为什么需要邮件服务器的一个重要原因。很多ISP都提供免费的邮件服务器,如126提供邮件服务器。邮件服务器向其它邮件服务器转发邮件也是采用SMTP协议。1.3 邮件的收发过程一般情况下,一封邮件的发送和接收过程如下。1) 发信人在用户代理里编辑邮件,包括填写发信人邮箱、收信人邮箱和邮件标题等等。2) 用户代理提取发信人编辑的信息,生成一封符合邮件格式标准(RFC822)

5、的邮件。3) 用户代理用SMTP将邮件发送到发送端邮件服务器(即发信人邮箱所对应的邮件服务器)。4) 发送端邮件服务器用SMTP将邮件发送到接收端邮件服务器(即收信人邮箱所对应的邮件服务器)。5) 收信人调用用户代理。用户代理用POP3协议从接收端邮件服务器取回邮件。6) 用户代理解析收到的邮件,以适当的形式呈现在收信人面前。第2章.SMTP详解2.1.通信过程一个具体的SMTP通信(如发送端邮件服务器与接收端服务器的通信)的过程如下。1) 发送端邮件服务器(以下简称客户端)与接收端邮件服务器(以下简称服务器)的25号端口建立TCP连接。2) 客户端向服务器发送各种命令,来请求各种服务(如认证

6、、指定发送人和接收人)。3) 服务器解析用户的命令,做出相应动作并返回给客户端一个响应。4) 2)和3)交替进行,直到所有邮件都发送完或两者的连接被意外中断。从这个过程看出,命令和响应是SMTP协议的重点,下面将予以重点讲述。2.2.命令和响应2.2.1.格式SMTP的命令不多(14个),它的一般形式是:COMMAND Parameter 。其中COMMAND是ASCII形式的命令名,Parameter是相应的命令参数,是回车换行符(0DH, 0AH)。SMTP的响应也不复杂,它的一般形式是:XXX Readable Illustration。XXX是三位十进制数;Readable Illus

7、tration是可读的解释说明,用来表明命令是否成功等。XXX具有如下的规律:以2开头的表示成功,以4和5开头的表示失败,以3开头的表示未完成(进行中)。2.2.2.一个例子命令和响应的格式是语法,各命令和响应的意思则是语义,各命令和各响应在时间上的关系则是同步。下面将通过一个简单的SMTP通信过程来说明协议的这三个要素。C:telnet 25 /*以telnet方式连接126邮件服务器*/S:220 Anti-spam GT for Coremail System (126com071018)/* 220为响应数字,其后的为欢迎信息,会应服务器不同而不同*/C:HELO /* HELO 后用

8、来填写返回域名(具体含义请参阅RFC821),但该命令并不检查后面的参数 */:250 OKC: MAIL FROM: bripengandre /* 发送者邮箱 */S:250 ./* “”代表省略了一些可读信息 */C:RCPT TO: bripengandre/* 接收者邮箱 */S:250 ./* “”代表省略了一些可读信息 */C:DATA /* 请求发送数据 */S:354 Enter mail, end with . on a line by itselfC:Enjoy Protocol StudingC:.S:250 Message sentC:QUIT /* 退出连接 */S

9、:221 Bye分析上面的过程可参考注释进行,这里要补充如下几点。1) “C:”开头的行(不包括C:)是客户端的输入,而以“S:”开头的行(不包括S:)则是服务器的输出。2) 上述的命令并不一定会一次性成功,服务器会返回错误响应,客户端应该按照协议规定的时序,来输入后续的命令(或重复执行失败的命令,或重置会话,或退出会话等等)。2.2.3.常用命令SMTP命令不区分大小写,但参数区分大小写,有关这方面的详细说明请参考RFC821。常用的命令如下。HELO 。向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器都能检测到。MAIL FROM: 。为发送者地址,此命令用来初始化邮件传输,即用

10、来对所有的状态和缓冲区进行初始化。RCPT TO: 。用来标志邮件接收者的地址,常用在MAIL FROM后,可以有多个RCPT TO。DATA 。将之后的数据作为数据发送,以.标志数据的结尾。REST 。重置会话,当前传输被取消。NOOP 。要求服务器返回OK应答,一般用作测试。QUIT 。结束会话。VRFY 。验证指定的邮箱是否存在,由于安全方面的原因,服务器大多禁止此命令。EXPN 。验证给定的邮箱列表是否存在,由于安全方面的原因,服务器大多禁止此命令。HELP 。查询服务器支持什么命令。2.2.4.常用响应常用的响应如下所示,数字后的说明是从英文译过来的。更详细的说明请参考RFC821。

11、501参数格式错误502命令不可实现503错误的命令序列504命令参数不可实现211系统状态或系统帮助响应214帮助信息220domain服务就绪221domain服务关闭421domain服务未就绪,关闭传输信道250要求的邮件操作完成251用户非本地,将转发向forward-path450要求的邮件操作未完成,邮箱不可用550要求的邮件操作未完成,邮箱不可用451放弃要求的操作;处理过程中出错551用户非本地,请尝试forward-path452系统存储不足,要求的操作未执行552过量的存储分配,要求的操作未执行553邮箱名不可用,要求的操作未执行354开始邮件输入,以.结束554操作失败

12、第3章.SMTP的扩充3.1.SMTP的缺点从2.2.2的例子可以看出,SMTP至少还有如下缺点。1) 命令过于简单,没提供认证等功能。2) 只传送7位的ASCII码,不能传送二进制文件。针对缺点1),标准化组织制定了扩充的SMTP(即ESMTP),对应的RFC文档为RFC1425。针对缺点2),标准化组织在兼容SMTP的前提下,提出了传送非7位ASCII码的方法,对应的RFC文档有两个:邮件首部的扩充对应于RFC1522,邮件正文的扩充对应与RFC1521(即MIME)。3.2.ESMTPESMTP最显著的地方是添加了用户认证功能。如果用户想使用ESMTP提供的新命令,则在初次与服务器交互时

13、,发送的命令应该是EHLO而不是HELO。先来看一个例子。C:telnet 25 /*以telnet方式连接126邮件服务器*/S:220 Anti-spam GT for Coremail System (126com071018)/* 220为响应数字,其后的为欢迎信息,会应服务器不同而不同*/C:EHLO /* 除了HELO所具有的功能外,EHLO主要用来查询服务器支持的扩充功能 */S:250-mailS:250-AUTH LOGIN PLAINS:250-AUTH=LOGIN PLAINS:250 8BITMIME /* 最后一个响应数字应答码之后跟的是一个空格,而不是- */C:A

14、UTH LOGIN /* 请求认证 */S:334 dxNlcm5hbWU6 /* 服务器的响应经过base64编码了的“Username” */C:Y29zdGFAYW1heGl0Lm5ldA= /* 发送经过BASE64编码了的用户名 */S:334 UGFzc3dvcmQ6 /* 经过BASE64编码了的Password: */C:MTk4MjIxNA= /* 客户端发送的经过BASE64编码了的密码 */S:235 auth successfully/* 认证成功 */C: MAIL FROM: bripengandre /* 发送者邮箱 */S:250 ./* “”代表省略了一些可读

15、信息 */C:RCPT TO: bripengandre/* 接收者邮箱 */S:250 ./* “”代表省略了一些可读信息 */C:DATA /* 请求发送数据 */S:354 Enter mail, end with . on a line by itselfC:Enjoy Protocol StudingC:.S:250 Message sentC:QUIT /* 退出连接 */S:221 Bye对于这个例子有如下几点说明。1) 只是一个示意性的过程,再输入用户名、密码时需采用base64编码,这需要专门的计算,所以在telnet终端上模拟比较麻烦。2) 认证过程有很多种,有基于明文的认

16、证,也有基于MD5加密的认证,这里给出的只是一个示意性的过程。3) EHLO对于具体服务器,响应会不同,关键字“8BITMIME”用来说明服务器是否支持正文中传送位ASCII码,而以“X”开头的关键字都是指服务器自定义的扩充(还没纳入RFC标准)更详细的说明,请参看RFC1425。3.3.邮件首部的扩充首部通过两种编码方式来支持传送非7位ASCII码。它首先通过一个如下格式的编码字来表明所用的编码方式。=?charset?encoding?encoded-text?textcharset是字符集规范。有效值是两个字符串us-ascii和iso-8859-x,其中x 是一个单个数字,例如iso-

17、8859-1中的数字为“ 1”。encoding是一个单个字符用来指定编码方法,支持两个值。Q代表quoted-printable(可打印)编码。任何要发送的字符若其第8比特置1则被作为3个字符发送:第1个是字符是“=”,后面的两个字符对应于字符的十六进制表示。例如对于二进制码11111111,其对应的十六进制表示为“FF”,所以对应的编码位“=FF”。为了能够传输“=”,“=”的编码方式与第比特置的字符相同,因为其二进制代码为00111101,所以对应的编码为“=3D”。可以看出这种编码方式的开销达200%,所以只适合传送只含有少量非7位ASCII码的文本。B代表base64编码。它的编码方

18、法是先将二进制代码划分为一个24bit长的单元,然后将这24 bit单元划分为4个6 bit组。每个组按图 2所示的方法转换成ASCII码。图 2base64映射表可以看出这种映射方法是这样的:0-25依次映射成A-Z,26-51依次映射成a-z,52-61依次映射成数字0-9,然后62映射成+,63映射成/。对于二进制代码01001001 00110001 01111001,先将其划分成4个6 bit组,即010010 0100011 000101 111001。接着按图 2所示的映射表,可得到base64编码为:STF5。可以看出,这种编码方式的开销是25%,相对quoted-printa

19、ble编码来说,它更适合用来传送含大量非7位ASCII码的二进制文件。3.4.正文的扩充正文的扩充主要是使正文不仅可以传输NVT ASCII字符,而且可以传输任意字符,对应的文档为RFC1511(即MIME)。MIME全称为“Multiple Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它通过新增一些邮件首部字段、邮件内容格式和传送编码,使得其成为一种应用很广泛的可以传输多媒体的电子邮件规范。更详细的说明请参看另一篇文章MIME协议分析和RFC1511。第4章.常见的疑问4.1.为什么需要SMTP服务器一般的PC资源不够,处理能力不够,不

20、可能全天候地连接在因特网上来收发邮件。所以使用SMTP服务器,可以让多个用户共用服务器,有效地降低了成本。4.2.SMTP和邮件格式的关系如前所述,SMTP是客户机向服务器发送邮件时所使用的协议,其核心是2.2中所述的命令和响应,至于它命令和响应中所带的参数采用什么格式,则是依赖于其他标准的。例如DATA后所带的参数,则应遵循邮件格式标准RFC822SMTP和邮件格式的关系可用这么一个例子来说明。甲与乙书信往来,甲通过邮局向乙发信,邮局间转交邮件可看成使用了SMTP协议,至于书信的格式则会因为地区习惯等的不同而不同(中国人的书信格式和美国人的书信格式不同),这个书信格式则可看成是邮件格式标准。

21、应当认识到不能孤立地看待协议,各个协议之间往往存在着耦合关系,但为了分析方便,我们在具体叙述某个协议时,只能抓住主要矛盾主要阐述单个协议。4.3.浏览器发送邮件用的什么协议浏览器如IE、Maxthon可通过登陆用户邮箱,来收发邮件,这是怎样实现的?例如bripengandre可通过登陆来收发邮件。这个过程是这样的:bripengandre在提供的邮件页面上填写的相应信息(如发信人邮箱、收信人邮箱等),通过http协议被提交给126服务器;126服务器根据这些信息组装一封符合邮件规范的邮件(就像用户代理一样);然后通过SMTP协议将这封邮件发送到接收端邮件服务器。可以看出,浏览器发送邮件只是用户

22、代理的功能直接放到邮件服务器上去做了,至于邮件服务器间发送邮件还是采用的SMTP协议。我们看问题,如果有必要还是要适当地透过现象看本质。4.4.如何用实验验证SMTP的通信过程1) 可以通过ethereal等协议分析软件来抓包分析协议。2) 可以利用socket编程实现SMTP的通信过程。3) 可以利用用户代理来查看一封邮件的原始编码。例如在Foxmail中,可以选择邮件列表右键菜单的“原始信息”进行查看。第5章.分析方案IDProtocolCaptured contentsuser namepasswordsenderreceiversubjectcontentsattachments4sm

23、tp表 1 协议分析要求表 1给出了协议分析要求。容易看出,获取各个字段是比较容易的。我们可以抓取客户端与服务器端的交互信息,然后根据各命令字或响应字来提取出我们想要的字段。例如,要获取user name,我们只需检测到服务器端要求客户端发送用户名这个时候,然后提取这之后客户端的发送信息即可。需要说明的是,虽然客户端与服务端交互的信息可能经过了编码或加密,但我们仍能够通过解码或解密来获得所需要的信息。第6章.参考资料1 RFC文档:RFC821对应SMTP协议,RFC822对应邮件标准,RFC1425对应ESMTP,RFC1522对应邮件首部的扩充,RFC1521对应邮件正文的扩充,RFC1939对应POP3协议。2 http:/www.faqs.org/rfcs/,上面有全面的英文RFC文档3 4 Stevens, W.R., TCP/IP Illustrated, Vol1. Addision-Wesley, 机械工业出版社,2002

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服