- 43.00 KB
- 6页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'《程序设计实训》课程项目报告IMAP4及MIME协议剖析班级:01五专2班学号:01661430姓名:徐莉指导教师:袁梅冷聂哲2005年12月
一、IMAP4协议剖析IMAP是InternetMessageAccessProtocol的缩写,顾名思义,它是通过Internet获取信息的一种协议。IMAP4是IMAP协议的第4个版本,正如POP3是POP协议的第3个版本一样。IMAP用于访问存储在邮件服务器系统内的电子邮件和电子公告板信息。IMAP允许用户邮件程序如同操作本机系统一样访问远程消息存储器。可通过台式电脑远程操作保存在IMAP服务系统内的邮件,而不需要在计算机之间来回传输消息或文档。和POP3的区别很多朋友都对POP3非常熟悉,我们就从POP3说起。POP3提供了快捷的邮件下载服务,用户可以利用POP3把邮箱里的信下载到PC上进行离线阅读。一旦邮件进入PC的本地硬盘,就可以选择把邮件从服务器上删除,然后脱离与Internet的链接并可在任何时候阅读已经下载的邮件。IMAP同样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP能完成的却远远不止这些。首先,IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才做出是否下载的决定。如果根据摘要信息就可以决定某些邮件对你毫无用处,你可以直接在服务器上把这些邮件删除掉。如果你的IMAP客户端软件完整支持IMAP4rev1(如Netscape4.5),那么你还可以享受选择性下载附件的服务。假如一封邮件里含有5个附件,而其中只有两个附件是你需要的,你就可以只下载那两个附件,节省了下载其余3个的时间。IMAP包括了一系列操作:邮箱的建立、删除及重命名、检查新邮件、永久删除邮件、设置和清除标志、基于服务器和MIME的分析和搜索、有效并有选择的取回邮件属性、文本和部分内容。IMAP允许用户从多台计算机上访问邮件(新邮件或保存过的邮件)。对于保证电子邮件的可靠性和同时使用多台计算机的环境来说,这一特性尤其重要。IMAP与POP3不同的地方关键是在支持离线阅读的同时也鼓励用户把邮件存储和组织在服务器上。在线方式下,IMAP用户不用一次性地从共享服务器上收取邮件然后删除。IMAP采用的是交互式客户机—服务器方式,用户可以向服务器请求特定邮件的信头或主体,或者请求服务器搜索满足一定条件的邮信。收件箱中的信件标有各种状态标志(如“删除”或“已回复”),它们一直保留直到用户真正删除。在IMAP系统中,用户可以像在本地一样远程操作管理邮箱。根据IMAP客户端实现方式及系统管理员设计的邮件系统结构,用户可以在本地机器上保存邮件,或在服务器上保存邮件,也可以两者选一。IMAP4是IMAP的最新版本,其主要特征如下: 1与因特网消息标准完全兼容,如:MIME; 2允许多台计算机同时访问和管理邮件; 3允许通过低效率的文件访问协议进行访问; 4提供对“在线”、“离线”和“无连接”三种访问方式的支持;5支持共享邮箱的并发访问;
6客户端软件不需要了解服务器上的文件存储格式。怎样使用IMAP支持IMAP的客户端软件不多,建议使用OE和NetscapeMessenger。这两个软件各有特点,Netscape功能多,但OE显得更简单和快捷,而且有中文版本。很遗憾,国内用户喜爱的FoxMail目前还不支持IMAP。其他的E-mail客户端软件,目前版本对IMAP4的支持都不完整,不推荐使用。在OE里设置21cn的IMAP账号:1、点击“工具/账号”菜单。2、在弹出对话框中单击“添加/邮件”按钮。3、填写你的名称,该名称将出现在发件人域,单击“下一步”。4、填写你在21cn上的电子邮件地址,单击“下一步”。5、选择“IMAP”作为邮件接收服务器类型,在邮件接收服务器栏内填写“imap-ent.21cn.com”,在邮件发送服务器栏内填写“smtp-ent.21cn.com”,单击下一步。6、输入显示在OE文件夹列表内的名称,单击“下一步”并按照向导最终完成设置。常见问题:1、我可以混合使用POP3、IMAP4、WebMail来访问我的邮箱吗?可以,但POP3只下能下载除Trash和Sent文件夹外那些没有打删除标记的邮件,IMAP4和WebMail则可以阅读所有的邮件。2、为什么我用OE5.0建立IMAP账号后却在WebMail中发现了两个奇怪的文件夹?缺省情况下IE5会自动为你建立两个名为“已发送邮件”和“草稿”的文件夹。由于中文名称在WebMail里得不到正确的编码解释,所以未能正确显示。可以通过OE里的关于该账号的“高级设置”功能删除这两个文件夹。二、MIME协议剖析MIME(MultimediaInternetMailExtensions)表示多用途Internet邮件扩允协议。MIME扩允了基本的面向文本的Internet邮件系统,以便可以在消息中包含二进制附件。MIME是一种技术规范,它原来是用于电子邮件的,现在也可以用于浏览器上,传送可以供浏览器识别的信息,关于MIME的知识并是十分难懂的,有一些基本的计算机概念就可以理解了,但如果要进一步使用,就必须注意内容。实际上,我们在上网的时候就已经接触到了MIME,只是浏览器和服务器在底层实现了。MIME有时候被错误地理解为多媒体Internet邮件扩展(MultimediaInternetMail
Extensions),这是一个错误,但是MIME在网上经常用于多媒体应用程序,所以人们以为这是它是多媒体邮件扩展,而实际上它应该被称为多用途Internet邮件扩展(MultipurposeInternetMailExtensions),因为有时候内容里根本没有非文本成份。MIME对于邮件系统的扩展是巨大的,因为在MIME出现以前,信件内容如果要包括声音和动画,就必须把它变为ASCII码或把二进制的信息变成可以传送的编码标准,而接收方必须经过解码才可以获得声音和图画信息。MIME提供了一种可以在邮件中附加多种不同编码文件的方法。这与原来的邮件是大大不同的。而现在MIME已经成为了HTTP协议标准的一个部分。 MIME信息包含 一个普通的文本邮件的信息包含一个头部分(To:From:Subject:等等)和一个体部分(HelloMr.,等等)。在一个符合MIME的信息中,邮件的各个部分叫做MIME段,每段前也缀以一个特别的头。MIME邮件只是基于RFC822邮件的一个扩展。然而它有着自已的RFC规范集。 头字段 MIME头根据在邮件包中的位置,大体上分为MIME信息头和MIME段头,MIME信息头指整个邮件的头,而MIME段头只每个MIME段的头。 MIME信息头有: MIME-Version: 这个头提供了所用MIME的版本号。这个值习惯上为1.0。 Content-Type: 它定义了数据的类型,以便数据能被适当的处理。有效的类型有:text,image,audio,video,applications,multipart和message。注意任何一个二进制附件都应该被叫做application/octet-stream。这个头的一些用例为:image/jpg,application/mswork,multipart/mixed。 Content-Transfer-Encoding: 它说明了对数据所执行的编码方式,客户/MUA将用它对附件进行解码。对于每个附件,可以使用7bit,8bit,binary,quoted-printable,base64和custom中的一种编码方式。7bit编码是用在USASCII字符集上的常用的一种编码方式。8bit和binary编码一般不用。对可读的标准文本,如果传输要经过对格式有影响的网关时对其进行保护,可以使用quotedprintable。Base64是一种通用方法,在需要决定使用哪一种编码方法时,它提供了一个不用费脑子的选择;它通常用在二进制,非文本数据上。注意,任何非7bit数据必须用一种模式编码,这样它就可以通过Internet邮件网关。
Content-ID: 如果Content-Type是message/external-body或multipart/alternative时,这个头就有用了。 Content-Description: 这是一个可选的头。它是任何信息段内容的自由文本描述。描述必须使用us-ascii码。 Content-Disposition: 这是一个试验性的头,它用于给客户程序/MUA提供提示,来决定是否在行内显示附件或作为单独的附件。MIME段头(出现在实际的MIME附件部分的头),除了MIME-Version头,可以拥有以上任何头字段。如果一个MIME头是信息块的一部分,它将作用于整个信息体。例如,如果Content-Transfer-Encoding显示在信息(整个信息)头中,它应用于整个信息体,但是如果它显示在一个MIME段里,它"只能"用于那个段中。MIME是服务器通知客户机传送文件是什么类型的主要方法,客户机浏览器也通过MIME告诉服务器它的参数。在网上,如果接收到的文件没有MIME头,就默认它为HTML格式。但这样也不好,因为当MIME的包头是text/plain时,浏览器将直接显示而不关心它的什么字体,颜色之类的参数,这样显示出来的内容就会与原来的设置不一样了。MIME头是什么样子要看它是用在电子邮件中还是用在浏览器上,两者内容可能有所不同。对于邮件头来说,版本号,内容类型声明,编码方式,内容描述是必不可少的。这是用于邮件头中的格式,在下面,我们将重点说到在HTTP中传送MIME头,这时MIME头要简单一些。下例是一个邮件的标准MIME头:Mime-Version:1.0//版本号:1.0Content-Type:multipart/mixed;boundary="IMA.Boundary.750407228"//内容类型是多种的--IMA.Boundary.750407228Content-Type:text/plain;charset=US-ASCII//内容类型:文本,字符是ASCII的Content-Transfer-Encoding:7bit//编码方式:7位Content-Description:cc:Mailnotepart在用于浏览器时,用户不需要知道那么多的信息,所以MIME头就比较简单了。在访问一个网页时,浏览器和服务器之间产生一个会话,作为请求内容的一部分,浏览器发送它能够理解的MIME类型的描述,这就告诉服务器,浏览器除了网页外还可以支持什么,服务器对这个信息一般不作为什么修改。
服务器通过发向客户机的MIME头通知客户浏览器内容是什么,我们看看下面这个头:Content-type:text/html在实现的时候,一定要注意MIME头后要跟一个空行,不然这个头会被浏览器忽略,这个头会被当作文本显示出来。当服务器传送GIF图象时,头会如下:Content-type:image/gifContent-transfer-encoding:BINARY通常的MIME内容类型并不起什么作用,浏览器可以自己识别内容的类型,但是如果您使用一些另外的类型,这个问题可就大了,如果你使用了text/postscript,那浏览器会显示下载窗口,或就把这个东西显示出来,那可就不好办了。下面我们介绍一下标准MIME类型。Text.文本,它用于描述不同类型的文本,包括通常的文本,PostScript和HTML,虽然HTML不是一个可能的子类型。Multipart.多类型,指出此信息包括多种信息,不止一种类型。Message.用于标记不同类型的消息。Application.应用类型。Image.图像,用于标明图形文件。Audio.声音,用于标明声音文件。Video.影像,用于标明动画文件。安全由于MIME定义了多种不同的内容类型,因此在邮件客户端可以识别这些标准的内容说明,从而调用不同的程序插件来进行处理,如为应用,则提示下载,如为图像,则自动打开(如OE),但由于BASE64编码的内容看起来是一样的,所以我们就可以把一个自己编写的执行程序或木马通过BASE64编码后,附加在邮件后,并强制定义其为图形或声音等能被自动处理的内容说明,这样,在邮件被打开时,这些编码就会被自动的处理,也就是相当于运行了这些编码解码后的程序。这就是MIME缺陷漏洞,在MS的网站已经就此问题做出了补救方法,或使用非MS的产品来接收邮件,如FOXMAIL。'