您好,欢迎访问三七文档
实验三:邮件服务实验内容:1.SMTP2.POP3&IMAP3.搭建邮件服务器内容一:SMTPSMTP是应用层的服务,可以适应于各种网络系统。简单邮件传输协议(SimpleMailTransferProtocol,SMTP)是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。在传输文件过程中使用端口:25。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。SMTP重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。通常,一个网络可以由公用互联网上TCP可相互访问的主机、防火墙分隔的TCP/IP网络上TCP可相互访问的主机,及其它LAN/WAN中的主机利用非TCP传输层协议组成。使用SMTP,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一条IP地址。工作过程SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。SMTP要经过建立连接、传送邮件和释放连接3个阶段,具体为:(1)建立TCP连接。(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。(3)服务器端以OK作为响应,表示准备接收。(4)客户端发送RCPT命令。(5)服务器端表示是否愿意为收件人接收邮件。(6)协商结束,发送邮件,用命令DATA发送输入内容。(7)结束此次发送,用QUIT命令退出。SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。SMTP命令说明HELOdomainCRLF;识别发送方到接收SMTP的一个HELLO命令MAILFROM:reverse-pathCRLF;为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。RCPTTO:forward-pathCRLF;标识各个邮件接收者的地址DATACRLF接收SMTP将把其后的行为看作邮件数据去处理,以CRLF.CRLF;标识数据的结尾。RESTCRLF;退出/复位当前的邮件传输NOOPCRLF;要求接收SMTP仅做OK应答。(用于测试)QUITCRLF;要求接收SMTP返回一个OK应答并关闭传输。VRFYstringCRLF;验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。EXPNstringCRLF;验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。HELPCRLF;查询服务器支持什么命令为了说明SMTP的工作原理,以向163发送邮件为实例。在linux环境下,使用telnetsmtp.163.com25连接smtp.163.com的25号端口(SMTP的标准服务端口);在windows下使用telnet程序,远程主机指定为smtp.163.com,而端口号指定为25,然后连接smtp.163.com:交互过程如下:[root@newsclubeast]#telnetsmtp.163.com25//登陆smtp.163.com端口号为25Trying202.108.44.205...Connectedtosmtp.163.com(202.108.44.205).Escapecharacteris'^]'.220163.comCoremailSMTP(AntiSpam)SystemHELOlocalhost//与服务器打招呼,并告知客户端使用的机器名字,可以随便填写250OKAUTHLOGIN//使用身份认证登陆指令334dXNlcm5hbWU6cmVkc29zMw==//输入已经base64_encode()过的用户名.334UGFzc3dvcmQ6MbM2MDQ3NQ==//输入已经base64_encode()过的密码235AuthenticationsuccessfulMAILFROM://告诉服务器发信人的地址250MailOKRCPTTO://告诉服务器收信人的地址250MailOKDATA//正面开始传输信件的内容,且最后要以只含有.的特殊行结束。354Enddatawith.To:yourframe@21cn.comFrom:redsos3@163.comSubject:testmailFrom:redsos3@163.comtestbody.//结束传输信件250MailOKqueuedassmtp14,F0CPBFsuzUOvoDwE.41582S2QUIT//断开连接221ByeConnectionclosedbyforeignhost.其中,HELO是客户向对方邮件服务器发出的标识自己的身份的命令,这里假设发送者为ideal;MAILFROM命令用来表示发送者的邮件地址;RCPTTO:标识接收者的邮件地址,这里表示希望发送邮件给XXX@163.COM,如果邮件接收者不是本地用户,例如RCPTTO:ideal,则说明希望对方邮件服务器为自己转发(Relay)邮件,若该机器允许转发这样的邮件,则表示该邮件服务器是OPENRELAY的,否则说明该服务器不允许RELAY;DATA表示下面是邮件的数据部分,输入完毕以后,以一个.开始的行作为数据部分的结束标识;QUIT表示退出这次会话,结束邮件发送。状态码说明:220:服务就绪;250:请求邮件动作正确,完成(HELO,MAILFROM,RCPTTO,QUIT指令执行成功会返回此信息);235:认证通过;221:正在处理;354:开始发送数据,结束以.(DATA指令执行成功会返回此信息);500:语法错误,命令不能识别;550:命令不能执行,邮箱无效;552:中断处理:见文件JAVA邮件发送.doc尝试使用telnet连接SMTP,发送邮件使用JAVA程序发送邮件[crazywill@localhostcrazywill]$perl-MMIME::Base64-e'printencode_base64(crazywill);'Y3Jhenl3aWxs[crazywill@localhostcrazywill]$perl-MMIME::Base64-e'printencode_base64(mypassword);'bXlwYXNzd29yZA==内容二:POP3&IMAP邮局协议(PostOfficeProtocol3,POP3)当前是第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,,由RFC1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。POP3协议默认端口:110。网络邮件访问协议(InternetMailAccessProtocol,IMAP或interactivemailaccessprotocol)IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如MSOutlookExpress)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。POP3三种状态POP3有三种状态,分别是:认证状态,处理状态和更新状态。当客户机与服务器建立连接时,客户机向服务器发送自己身份(这里指的是账户和密码)并由服务器成功确认,即客户端由认可状态转入处理状态,在完成列出未读邮件等相应的操作后客户端发出quit命令,退出处理状态进入更新状态,开始下载未阅读过的邮件到计算机本地之后最后重返认证状态确认身份后断开与服务器的连接。具体原理如下图等待连接身份确认quit命令C——|认证|—————|处理|——————|更新|----S|__________________________________|重返认证状态。POP3命令码USERusername认可此命令与下面的pass命令若成功,将导致状态转换PASSpassword认可APOPName,Digest认可Digest是MD5消息摘要STATNone处理请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数UIDL[Msg#]处理返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的LIST[Msg#]处理返回邮件数量和每个邮件的大小RETR[Msg#]处理返回由参数标识的邮件的全部文本DELE[Msg#]处理服务器将由参数标识的邮件标记为删除,由quit命令执行RSETNone处理服务器将重置所有标记为删除的邮件,用于撤消DELE命令TOP[Msg#n]处理服务器将返回由参数标识的邮件前n行内容,n必须是正整数NOOPNone处理服务器返回一个肯定的响应QUITNone更新a.客户机希望结束这次会话b.如果服务器处于‘处理’状态,那么将进入‘更新’状态以删除任何标记为删除的邮件c.导致由处理状态到更新状态,又重返认可状态的转变d.如果这个命令发出时服务器处于‘认可’状态,则结束会话,不进行‘更新’状态。使用telnet连接POP3打开命令提示符,用telnet登录邮件服务器,格式:telnet邮件服务器名或ip端口(pop3为110),如:telnetpop3.163.com110或telnet202.108.5.100110远程登录163邮件服务器telnetpop3.sina.com.cn110或telnet202.108.3.231110远程登录sina邮件服务器以sina为例,输入上述命令,稍等一会儿,会出现以Telnetpop3.sina.com.cn为标题的新窗口,显示+OKpop3proxyserverready,这表示已成功登录.。1.登录邮箱,接下来输入用户名和密码,命令格式:1.1userusername提供用户名1.2passpassword提供用户密码如:usertest_pop3_2007回车后显示+OK,再输入密码pass123456789若用户名正确,回车后显示“+OK”2.获取邮件信息2.1Stat请求服务器发回关于邮箱的统计资料,显示邮件数量和全部邮件大小(单位是字节)命令格式:stat2.2List返回邮件数量和每个邮件的大小命令格式:list3.检查邮件3.1Top命令格式:topn服务器将返回由参数标识的邮件前n行内容,n必须是正整数3.2Retr返回由参数标识的邮件的全部文本命令格式:retrn3.3Dele服务器将由参数标识的邮件标记为删除,由quit命令执行命令格式:dele邮件编号3.4Rset恢复标记为删除的邮件,用于撤消DELE命令命令格式:rset4.quit退出(更新)命令格
本文标题:实验三邮件服务
链接地址:https://www.777doc.com/doc-2458401 .html