邮件传输协议52P

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第13章邮件传输协议•简单邮件传送协议SMTP(SimpleMailTransferProtocol)[RFC821]和电子邮件报文格式MAIL[RFC822]最早出现在1982年,是ARPANET上的电子邮件标准,现在它们都已成为因特网的正式标准。•问题:SMTP只能传送可打印的ASCII码邮件。•解决:1993年又制定了新的电子邮件标准[RFC1521,1522],即“通用因特网邮件扩充”MIME(MultipurposeInternetMailExtensions)。MIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视频等)。MIME邮件可同时传送多种类型的数据。13.1概述13.2电子邮件地址13.3邮件转发与网关13.4电子邮件信息格式13.5简单邮件传输协议(SMTP)13.6邮件获取协议13.7通用因特网邮件扩充(MIME)第13章邮件传输协议13.1概述•通常,一封电子邮件的发送需要经过用户代理、客户邮件服务器和服务器端邮件服务器等三个程序的参与,并使用邮件传输和获取协议(如SMTP和POP3,或IMAP)。•图14-1表示电子邮件的工作过程。客户端服务器端用户代理邮件服务器邮件服务器用户代理SMTPSMTPPOP3/IMAP协议图14-1电子邮件的工作过程•当用户发送一封电子邮件时,首先寻找自己的客户邮件服务器。•客户邮件服务器得到了邮件后,将它保存在自身的缓冲队列中,然后,根据邮件的地址,查询到服务器端邮件服务器,并且通过电子邮件协议传送。根据目标地址确定信件需要投递的服务器时,通过DNS服务实现。例如,有一封邮件的目标地址是yourmail@yourserver.com,那么,邮件服务器首先要解析“yourserver.com”,然后,通过TCP连接将信件投递给该服务器。•服务器端邮件服务器接收到邮件之后,将其存储在本地缓冲区,直到电子邮件的接收者察看自己的电子信箱。每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件。1.用户代理•用户代理UA(UserAgent)是用户与电子邮件系统的接口,一般它是一个在用户PC机中运行的程序。•用户代理接受用户输入的各种指令,将用户的邮件传送至其邮件服务器或者通过POP、IMAP将信件从其邮件服务器获取到本机上。(foxmail,outlookexpress)用户代理至少应当具有以下三个功能:1)撰写2)显示3)处理2.邮件服务器•邮件服务器是电子邮件系统的核心构件,因特网上所有的ISP都有邮件服务器。•邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。•邮件服务器默认监听25号端口接受请求。3.协议SMTP;POP3;IMAP返回13.2电子邮件地址•电子邮件地址是一个字符串,用@分为两部分。第一部分是邮箱标识,第二部分给出了邮箱所在的计算机名字。电子邮件地址中的计算机名字是一个域名。•电子邮件地址E-mail地址通常为:收信人邮箱名@邮箱所在主机的域名例如:me@mail.njust.edu.cn表明这台计算机在中国(cn),隶属于教育机构(edu)下的南京理工大学(njust),机器名是mail。在@符号的左边是用户的邮箱名:me。注意:标识收信人邮箱名的字符串在邮箱所在计算机中必须是惟一的。由于一个主机的域名在因特网上是惟一的,而每一个邮箱名在该主机中也是惟一的,因此在因特网上的每一个人的电子邮件地址都是惟一的。这一点对保证电子邮件能够在整个因特网范围内的准确交付是十分重要的。在发送电子邮件时,邮件服务器只使用电子邮件地址中的后一部分,即目的主机的域名。只有在邮件到达目的主机后,目的主机的邮件服务器才根据电子邮件地址中的前一部分(即收信人邮箱名),将邮件存放在收件人的邮箱中。返回13.3邮件转发与邮件网关1.邮件转发•许多邮件系统包含一个邮件分发器或邮件转发器,这是一个能转发信息副本的程序软件。邮件转发软件在本地网点中将邮件中使用的邮件地址映射为一个或多个新的邮件地址即别名。•使用别名增加了邮件系统的功能并为用户带来了方便,别名映射可以是多对一或一对多。1)多对一映射:映射一组标识符到单个人,允许单个用户拥有多个邮件标识符,包括昵称和职务。2)一对多映射:将多个收信人与一个标识符相关联。可建立一个邮件分发器,即接收到一个邮件就将其发送给一大批的收信人。与这样一批收信人集合相关联的是一个标识符,称为邮件发送清单(mailinglist)。邮件列表通常放在数据库中,每一项是一组电子邮件地址。•在邮件发送清单中的收信人不一定都必须在本地,一个邮件发送清单中的收信人即使都在其他网点也是可以的。邮件分发器使得一大批人能够通过电子邮件进行通信而发信人不需要在发信时清楚地指明所有的收信人。因特网上有许多邮件发送清单是开放的,任何人可自由地将其电子邮件地址通过电子邮件加入到某个邮件发送清单中,以便今后在自己的邮箱中自动收到所需信息的邮件。•当电子邮件信息到达时,邮件分发器检查目标地址。如果目标地址列表在数据库中出现,分发器就将信息转发给表中的每个地址。表13.3显示了一个邮件分发器数据库的实例。(P209)列表内容friendsJoe@foobar.com,Jlll@bar.gov,Tim@StateU.edu,Mary@acollege.edu,Hank@nonexist.comcustomersgeorge@xyz.com,VP_Marketing@news.c2.邮件网关•若邮件发送清单很大,那么向每一个收信人转发邮件仍需很长的处理时间。因此人们往往采用电子邮件网关(e-mailgateway)或电子邮件中继(e-mailrelay)专门处理邮件发送清单。电子邮件网关在没有人工干预的情况下利用计算机程序自动处理邮件。这种程序叫做清单管理程序。图14-2用户向网关机器上的邮件列表发送信息时程序的工作过程邮箱邮件服务器传递界面分发邮件传递数据库Internet接收方电子邮件网关发送方•开始时,用户利用发送方计算机,将单个副本从发送方的计算机传到电子邮件网关。•电子邮件网关在查询邮件列表的数据库后,邮件分发器生成一个发送信息副本的请求。•网关计算机上的邮件传输程序将生成的每个副本通过因特网发送给接收方的计算机。•最后,接收方计算机利用服务器将副本存进接收方的邮箱。返回13.4电子邮件信息格式电子邮件:信封+内容内容:首部+信体(body)–首部:发送方、接收方、发送日期和内容格式等。–信体:可以包含任意文本。[RFC822]规定了邮件内容中的首部格式,邮件的信体部分由用户自由撰写。用户写好首部后,邮件系统将自动地将信封所需的信息提取出来并写在信封上,用户不需要填写电子邮件信封上的信息。首部由多行构成,首部行:关键字+冒号+信息下表是一个电子邮件信息的实例From:John_O_Public@foobar.comTo:912743.253843@nonexist.comDate:Fri,1Jan9910:21:32ESTSubject:lunchwithme?Bob,Canwegettogetherforlunchwhenyouvisitnextweek?I’mfreeonTuesdayorWednesday——justletmeknowwhichdayyouwouldprefer.John首部中的关键字是From、To、Date、Subject。•From:表示发信人的电子邮件地址。一般由邮件系统自动填入。•To:后面填入一个或多个收信人的电子邮件地址。在电子邮件软件中,用户将经常通信的对象姓名和电子邮件地址写到地址簿中。当撰写邮件时,只需打开地址簿,点击收信人名字,收信人的电子邮件地址就会自动地填入到合适的位置上。•Date:发信日期。一般由邮件系统自动填入。•Subject:是邮件的主题。它反映了邮件的主要内容。主题便于用户查找邮件。表14-3列出了一些在因特网电子邮件中可以找到的普通关键字,以及使用它们的目的。关键字含义关键字含义From发送方地址Reply-To回复地址To接收方地址X-Charset使用的字符集Cc复制副本地X-Mailer工具软件Date发送日期X-Sender发送方地址的副本Subject主题X-Face发送方面部图象表14-3常见关键字及其含义返回13.5简单邮件传输协议(SMTP)1.概述•简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件。•SMTP命令定义了邮件传输或由用户定义的系统功能,规定了14条命令和21种响应信息。•每条命令用4个字母组成•每一种响应信息一般只有一行信息:3位数字代码[+简单的文字说明]下表给出了SMTP的最小命令集及其功能。命令含义HELO发送SMTP向接受SMTP所做的提示MAIL启动邮递(mail)处理RECP识别邮件接收者DATADATA后面内容表示邮件数据,以CRLF结尾REST退出(或复位)当前的邮递处理,返回OK应答表示过程有效NOOP用于用户测试,仅返回OKQUIT接收端返回OK应答并关闭传输连接SMTP的应答码及其含义。应答码含义应答码含义211系统状态或帮助应答500语法错误,不能识别命令214帮助报文501参量有语法错误220域服务准备好502命令失败221域服务关闭传输连接503命令中有坏串250请求邮递活动已完成504命令参量没有实现251用户不在本地;寻前向路径550请求活动失败;邮箱不能得到354邮件输入,以CRLF结束551用户不在本地,请试前向路径421域服务失败,关闭传输连接552请求邮递活动失败450请求邮递活动失败;邮箱失败553请求活动失败;邮箱名没激活451请求失败;本地错误554处理失败表14-5SMTP的应答码及其含义2.SMTP模型•当用户发出邮件请求时,SMTP发送者建立与SMTP接收者之间的一个双向传送通信通道。SMTP命令由SMTP发送者发出,由SMTP接收者接收,而应答则反方面传送。用户文件系统发送SMTP接收SMTPSMTP协议发送SMTP接收SMTP图14-3SMTP模型文件系统3.SMTP的使用SMTP通信过程中的连接建立、邮件传送、连接释放三个阶段。(1)连接建立•SMTP连接是在发送主机即客户服务器的SMTP客户和接收主机的SMTP服务器之间建立的。•SMTP客户每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用SMTP的熟知端口号25与目的主机的SMTP服务器建立TCP连接。不管发送端和接收端的邮件服务器相隔有多远,不管在邮件的传送过程中要经过多少个路由器,TCP连接总是在发送端和接收端这两个邮件服务器之间直接建立,而不会使用中间的邮件服务器。•连接建立后,SMTP服务器发出“220Serviceready”。然后,SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。•SMTP服务器若有能力接收邮件,则回答:“250OK”,表示已准备好接收。若SMTP服务器不可用,则回答“421Servicenotavailable”。•如在一定时间内发送不了邮件,则将邮件退还发信人。2.邮件传送•SMTP客户服务器获得接收服务器的肯定回复后,发出MAIL命令。MAIL命令后面有发信人的地址。如:MAILFROM:abc@mail.njust.edu.cn•若SMTP服务器已准备好接收邮件,则回答“250OK”。否则,返回一个代码,指出原因。如:451(处理时出错),452(存储空间不够),500(命令无法识别)等。•SMTP的RCPT命令判断接收端系统是否已做好接收邮件的准备,并将同一个邮件发送给一个或多个收信人,格式为:RCPTTO:收信人地址每发送一个命令,都有相应的信息从SMTP服务器返回,如:“250OK”,表示指明的邮箱在接收端的系统中。或“550Nosuchuserhere”,即不存在此邮箱。•SMTP的DATA命令,表示开始传送邮件内容。SMTP服务器返回的信息是:“354Startmailinput;

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功