您好,欢迎访问三七文档
SMTPSMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。基本介绍SMTP是一种提供可靠且有效电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。SMTP重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。通常,SMTP一个网络可以由公用互联网上TCP可相互访问的主机、防火墙分隔的TCP/IP网络上TCP可相互访问的主机,及其它LAN/WAN中的主机利用非TCP传输层协议组成。使用SMTP,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳IP地址。在传输文件过程中使用25号端口协议原理SMTP-简单邮件传输协议(SimpleMailTransferProtocol),是定义邮件传输的协议,它是基于TCP服务的应用层协议,由RFC821所定义。SMTP协议规定的命令是以明文方式进行的。为了说明SMTP的工作原理,我们以向163发送邮件为实例进行说明。在linux环境下,使用telnetsmtp.163.com25连接smtp.163.com的25号端口(SMTP的标准服务端口);在windows下使用telnet程序,远程主机指定为smtp.163.com,而端口号指定为25,然后连接smtp.163.com:交互过程如下:SMTP[lix@nslix]$telnetsmtp.163.com25220163.comAnti-spamGTforCoremailSystem(163com[071018])EHLOsmtp.163.com250OKauthlogin334dXNlcm5hbWU6USERbase64加密后的用户名334UGFzc3dvcmQ6PASSbase64加密后的密码235AuthenticationsuccessfulMAILFROM:XXX@163.COM250MailOKRCPTTO:XXX@163.COM250MailOKDATA354Enddatawith.QUITSMTP250MailOKqueuedassmtp5,D9GowLArizfIFTpIxFX8AA==.41385S21211766217HELO是客户向对方邮件服务器发出的标识自己的身份的命令,这里假设发送者为ideal;MAILFROM命令用来表示发送者的邮件地址;RCPTTO:标识接收者的邮件地址,这里表示希望发送邮件给XXX@163.COM,如果邮件接收者不是本地用户,例如RCPTTO:ideal,则说明希望对方邮件服务器为自己转发(Relay)邮件,若该机器允许转发这样的邮件,则表示该邮件服务器是OPENRELAY的,否则说明该服务器不允许RELAY;DATA表示下面是邮件的数据部分,输入完毕以后,以一个.开始的行作为数据部分的结束标识;QUIT表示退出这次会话,结束邮件发送。这就是一个简单的发送邮件的会话过程,其实当使用outlookexpress等客户软件发送时,后台进行的交互也是这样的,当然,SMTP协议为了处理复杂的邮件发送情况如附件等等,定义了很多的命令及规定,具体可以通过阅读RFC821来获得。当你的一个朋友向你发送邮件时,他的邮件服务器和你的邮件服务器通过SSMTPMTP协议通信,将邮件传递给你邮件地址所指示的邮件服务器上(这里假设你的本地邮件服务器是Linux系统),若你通过telnet协议直接登录到邮件服务器上,则可以使用mail等客户软件直接阅读邮件,但是若你希望使用本地的MUA(MailUserAgent,如outlookexpress等客户软件)来阅读邮件,则本地客户端通过POP3或IMAP协议与邮件服务器交互,将邮件信息传递到客户端(如:win98系统)。而如果你向你的朋友回复一封信件时,你所使用的MUA也是通过SMTP协议与邮件服务(一般为发送邮件地址对应的email地址)器通信,指示其希望邮件服务器帮助转发一封邮件到你朋友的邮件地址指定的邮件服务器中。若本地邮件服务器允许你通过它转发邮件,则服务器通过SMTP协议发送邮件到对方的邮件服务器。这就是接受和发送邮件的全部过程。个人SMTP服务器的配置方法安装POP3和SMTP服务组件WindowsServer2003默认情况下是没有安装POP3和SMTP服务组件的,因此我们要手工添加。1.安装POP3服务组件以系统管理员身份登录WindowsServer2003系统。依次进入“控制面板→添加或删除程序→添加/删除Windows组件”,在弹出的“Windows组件向导”对话框中选中“电子邮件服务”选项,点击“详细信息”按钮,可以看到该选项包括两部分内容:POP3服务和POP3服务Web管理。为方便用户远程Web方式管理邮件服务器,建议选中“POP3服务Web管理”。2.安装SMTP服务组件选中“应用程序服务器”选项,点击“详细信息”按钮,接着在“Internet信息服务(IIS)”选项中查看详细信息,选中“SMTPService”选项,最后点击“确定”按钮。此外,如果用户需要对邮件服务器进行远程Web管理,一定要选中“万维网服务”中的“远程管理(HTML)”组件。完成以上设置后,点击“下一步”按钮,系统就开始安装配置POP3和SMTP服务了。配置POP3服务器1.创建邮件域点击“开始→管理工具→POP3服务”,弹出POP3服务控制台窗口。选中左栏中的POP3服务后,点击右栏中的“新域”,弹出“添加域”对话框,接着在“域名”栏中输入邮件服务器的域名,也就是邮件地址“@”后面的部分,2.创建用户邮箱选中刚才新建的,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入邮件用户名,然后设置用户密码,最后点击“确定”按钮,完成邮箱的创建。完成POP3服务器的配置后,就可开始配置SMTP服务器了。点击“开始→程序→管理工具→Internet信息服务(IIS)管理器”,在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项,在弹出的菜单中选中“属性”,进入“默认SMTP虚拟服务器”窗口,切换到“常规”标签页,在“IP地址”下拉列表框中选中邮件服务器的IP地址即可。点击“确定”按钮,此时SMTP服务器默认的是匿名访问,打开切换到“访问”标签页,点击“身份验证”按钮,在对话框中去掉“匿名访问“选项,选中”基本身份验证(Basicauthentication)“。这样一个简单的邮件服务器就架设完成了。工作过程简单邮件传输协议(SMTP)是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。SMTP是应用层的服务,可以适应于各种网络系统。SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。SMTPSMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为:(1)建立TCP连接。(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。(3)服务器端以OK作为响应,表示准备接收。(4)客户端发送RCPT命令。(5)服务器端表示是否愿意为收件人接收邮件。(6)协商结束,发送邮件,用命令DATA发送输入内容。(7)结束此次发送,用QUIT命令退出。SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。X.25上应用1.本备忘录的状态本备忘录讲述了一种基于CCITT的X.25标准提供的虚电路业务的SMTP标准。本备忘录的发布不受任何限制。2.简介在RFC821(SIMPLEMAILTRANSPORTPROTOCOL,SMTP,简单邮件传输协议)的附录D中提到了直接将SMTP置于X.25虚电路(ISO第3层)上的可能性。并建议“利用一种类似于TCP可靠的端到端协议在X.25的连接上”。在1981年时,考虑到PSDNs的总体的可靠性,这毫无疑问是可行的。这一业务现在(1989年)已经非常可靠,它允许直接将其置于虚电路业务上。在包括22个不同的国家的24个PSDN网的许多产品,证明了这种方法是成功的,结果证明,即使使用在一些花费比较昂贵的PSDN中,这种方法还是十分经济的,在X.25专网和X.25局域网中,这种方法也是成功。每一个SMTP会话必须打开一条X.25虚电路(VirtualCircuit,VC),SMTP会话将使用由VC提供的全双工通道。通常,VC是由发起呼叫的一方关闭的。3.协议ID和呼叫用户数据呼叫用户数据区的前4个字节应该是0xC0F7,0000(十六进制),十进制是19224700。这个字段通常用来标识一个协议ID,或者PRID。但是在实际的操作中,应该有能力在基本前缀地址上配置呼叫用户数据,包括协议ID字段。4.数据流在发送端通常把SMTP数据分成许多数据包,相应地,在数据包封装的时候应该置M位(表示有后续数据包)。数据包的总长度可以达到2048个字节。通常我们建议SMTP命令和响应应在一个数据包发送出去,或者只有一个后续数据包。只要对调试协议方便即可。但这并不要求是必须的。5.识别数据Q比特被置位的分组和中断分组是没有用的。如果收到了,应该被忽略掉。6.电路复位如果收到了一个3层的电路复位指示,这条VC应该清除,SMTP连接应该重新建立。重新建立会带来一些时延,也可能是不同的呼叫业务。7.呼叫业务任何被X.25呼叫请求业务选择的协商特征都可以使用。使用时应有能力为每一个被叫地址指定业务。8.字符编码X.25使用的字符编码是完整的8位ASCII码,没有任何遗漏和修改。一行应该以CRLF(十进制:1310)结尾,也可以仅仅以LF(十进制:10)来标识一行的结束。9.关闭连接跟TCP协议不同,在清除请求的过程中,X.25不提供数据的同步传送;当清除虚电路时,就丢弃所有正在传送的数据包。因此,当收到“服务关闭”消息时,主叫的一边关闭SMTP会话层(在X.25上),这种消息要么是QUIT命令的响应,或者是因为服务必须中止。10.超时SMTPSMTP通常不提供超时会话,在X.25,以下几项是有效的:10.1呼叫请求如果在100秒内没有收到“呼叫接受”信息,或者在120秒(另外)内没有收到“服务准备好”信息,那么应该清除这次呼叫,然后重试。10.2已经建立的呼叫当协议会话建立之后,在10分钟内如果没有收到任何响应,那么就应该清除这条虚电路。10.3关闭执行QUIT命令后,超时时间缩短为20秒。这可能会导致不经意地退出,但它不会影响已经完成的SMTP业务。10.4清除当X.25“清除请求”发出时,这条虚电路将在X.25协议指定的时间内超时。11.其他特性X.25的其他特性,如永久虚电路和D比特的选择,都没有用到。垃圾邮件最初的SMTP的局限之一在于它没有对发送方进行身份验证的机制。因此,后来定义了SMTP-AUTH扩展。尽管有了身份认证机制,垃圾邮件仍然是一个主要的问题。但由于庞大的SMTP安装数量带来的网络效应,大刀阔斧地修改或完全替代SMTP被认为是不现实的。InternetMail2000就是一个替代SMTP的
本文标题:SMTP协议
链接地址:https://www.777doc.com/doc-2849739 .html