您好,欢迎访问三七文档
简单邮件传输协议院系:信息工程学院专业:通信工程简单邮件传输协议SMTP分析实验目的1.了解什么是SMTP协议以及它规定的命令和响应2.掌握SMTP的通信和收发邮件的过程3.学会使用Wireshark软件对SMTP分组俘虏更详细了解实验环境本实验要求实验室主机能够连接到Internet,具有事先申请好可用的电子邮件帐户,并且能够支持SMTP和POP3协议。实验室主机安装有OutlookExpress软件,学生可以进行账号的配置,并利用其进行收发邮件的的操作。实验拓扑如图所示:实验拓扑图实验原理SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送电子邮件的规则,由它来控制电子邮件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转电子邮件时找到下一个目的地。通过SMTP协议所指定的服务器,我们可以把E-mail寄到收信人的服务器上了。SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。SMTP协议是两个报文传输代理之间的通信协议。它规定了两个相互通信MTA之间如何交换信息。SMTP协议的最大特点是简单,它规定了发送程序和接收程序之间的命令和应答格式。SMTP提供可靠且有效电子邮件传输,是建模在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。SMTP重要特性之一是其能跨越网络传输邮件,即SMTP邮件中继。通常,一个网络可以由互联网上可通过TCP相互访问的主机、防火墙分隔的TCP/IP网络上可通过TCP相互访问的主机,及其它利用非TCP传输层协议的局域网或广域网中的主机组成。使用SMTP,可实现相同网络上主机之间的邮件传输,也可通过中继器或网关实现某主机与其它网络之间的邮件传输。SMTP使用的是TCP的端口25。SMTP命令SMTP命令是发送于SMTP主机之间的ASCII信息,可能命令如下表所示:SMTP命令列表命令描述DATA开始信息写作,DATA命令后面的数据将被看作邮件内容处理,以CRLF(回车换行符)标识数据的结尾EXPNstring需要扩展的邮件发送清单HELOdomain发送方的主机名HELPcommand返回指定命令中的信息MAILFROMhost在主机上初始化一个邮件会话,指明发送者的地址NOOP除服务器响应确认以外,没有引起任何反应QUIT终止邮件会话RCPTTOuser指明邮件接收者的地址RSET复位当前的邮件连接SAMLFROMhost发送邮件到用户终端和邮箱SENDFROMhost发送邮件到用户终端SOMLFROMhost发送邮件到用户终端或邮箱TURN接收端和发送端交换角色VRFYuser校验用户身份AUTH(扩展命令)允许客户端使用基本验证、Windows集成验证(NTLM和Kerberos)与服务器进行身份认证,进行身份认证也是避免SMTP服务器被relay的重要手段SMTP响应SMTP响应是从服务器发送到客户端的三位十进制数字,后面可以跟着附加的文本信息,第一位数字的意义如下:�2yz:正面完成应答。若第一位数字是2(数字1现在已不使用),表示所请求的命令已经成功完成,新的命令可以开始;�3yz:正面中间应答。若第一位数字是3,表示所请求的命令已被接受,但在完成请求的命令之前,收件人需要更多的一些信息。�4yz:暂时负面完成应答。若第一位数字是4,表示所请求的命令已被拒绝,但差错条件是暂时的,这个命令可以重新发送。�5yz:永久负面完成应答。若第一位数字是5,表示所请求的命令已被拒绝,且这个命令不能重新发送。表5-11SMTP应答码列表应答码描述应答码描述211系统状态或系统帮助响应500语法错误,不能识别的命令214帮助信息501参数格式错误220domain服务就绪502命令不可实现221domain服务关闭503错误的命令序列250要求的邮件操作完成504命令参数不可实现251用户非本地,将转发向forward-path550要求的邮件操作未完成,邮箱不可用354开始邮件输入,以”.”结束551用户非本地,请尝试forward-path421domain服务未就绪552过量的存储分配,要求的操作未执行450要求的邮件操作未完成,邮箱不可用553邮箱名不可用,要求的操作未执行451放弃要求的操作:处理过程中出错554操作失败452系统存储不足,要求的操作未执行实验步骤1、打开邮件工具:OutlookExpress,按照已经申请的邮箱信息进行配置,例如邮箱为,密码为:,配置完成后可看到的邮件帐户属性为:在OutlookExpress中设置邮箱帐户2、在主机上打开Wireshark,点击工具栏上的“过滤器”,设置过滤条件为“tepport25andhostpop.163.com3、在Outlook中创建一封邮件,发送出去。4、进行数据捕获,并分析数据包内容,可以看到SMTP的命令和参数,下图中可以看到MAILFROM命令,并可看到邮箱地址为iewangguanxi@163.comSMTP工作过程分析1.连接建立本地邮件服务器作为SMTP客户,每隔一定时间对邮件缓存扫描一次,若有邮件发送,建立与远地邮件服务器连接的过程如下:1)使用默认端口25与接收方电子邮件服务器(SMTP服务器)建立TCP连接。2)SMTP服务器回答“220Serviceready”,表示服务器就绪,连接建立。3)SMTP客户发送HELO命令给SMTP服务器,附上发送之际名字。4)SMTP服务器回答“250OK”,表示已经准备好接收,否则回答“421Servicenotavailable”,表示服务不可用。发送方邮件服务器与接收方邮件服务器之间是直接通过运输层协议TCP连接的,中间不经过其他电子邮件服务器,尽管这两个邮件服务器的连接途径上可能经过若干个路由器。可以看出,一个电子邮件服务器在作为发送方时,用作SMTP客户,若作为接收方时,用作SMTP服务器。SMTP客户和SMTP服务器是在后台工作的。2.邮件传输邮件传输涉及的命令有MAILFROM、RCPTTO、DATA等。例如,发送人邮件地址为iewangguanxi@163.com,收件人邮件地址为419833759@qq.com,邮件传输过程如下:1)MAILFROM:iewangguanxi@163.com,给出邮件发送者。2)SMTP服务器回答“250OK”,表示准备好接收邮件,否则返回出错状态码,例如,451(处理时出错)、452(缺少存储空间)等。3)RCPTTO:419833759@qq.com,指出邮件收件人。4)SMTP服务器回答“250OK”,表示指出的邮箱在接收邮件服务器系统中,否则回答“550Nosuchuserhere”.5)DATA表示开始发送邮件的内容,若可以接收邮件内容,SMTP服务器回答“354Startmailinput:endwithCRLF.CRLF”,CRLF表示回车换行。若不能接收邮件,SMTP服务器回答421(服务器不可用)、500(无法识别命令)等。6)SMTP客户发送邮件内容,内容发送完毕后,发送CRLF.CRLF表示邮件内容结束,两个CRLF之间用点间隔。7)SMTP服务器正确收到邮件后,回答“250OK”,否则返回出错代码。3.连接释放连接释放过程如下:1)邮件发送完毕后,SMTP客户发送QUIT命令。2)SMTP服务器回答“221服务器关闭”,表示同意释放TCP连接。邮件传输过程结束。思考:SMTP存在的主要问题不能传输可执行文件或其他二进制文件和对象仅限于传输7位ASCII,其他非英语国家的文字均无法传输SMTP服务器对电子邮件的长度有一定限制实验意义:大多数用户都知道必须连接到因特网才能发送和接收邮件,但平常我们使用电子邮件是看不到它内部的工作过程,大家可能不知道网络通信的细节。SMTP是在两个相互通信的SMTP进程之间进行信息的交换,我们通过实验可以了解下内部的工作过程,丰富知识。
本文标题:简单邮件传输协议
链接地址:https://www.777doc.com/doc-2173813 .html