电子邮件客户端软件设计毕业设计_第1页
电子邮件客户端软件设计毕业设计_第2页
电子邮件客户端软件设计毕业设计_第3页
电子邮件客户端软件设计毕业设计_第4页
电子邮件客户端软件设计毕业设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、装订线电子邮件客户端软件设计 电 子 邮 件 客 户 端 软 件 设 计学 院:信息工程学院专 业:电子信息工程姓 名:xxx学 号:xx指导教师: xxx完成时间:2012年6月18日二一二年六月共 页 第 页摘 要随着计算机网络技术的发展,电子邮件被大量使用,由于web电子邮箱需要浏览器支持,不能存贮本地附件等缺点,开发本地邮件收发系统成为一种趋势。 论文首先从电子邮件的传输、邮件服务器、邮件的存储转发分析了电子邮件系统,然后详细研究了smtp/pop3协议的工作原理和会话过程,在此基础上,最终实现了一个基于smtp/pop3的邮件收发系统。邮件的发送和文件的上传采用了smtp协议;邮件的

2、接收和文件的下载则采用了pop3协议。另外,邮件的收发和文件的上下载都使用了mime编解码技术。整个系统是在delphi7开发环境下主要利用idsmtp、idpop3和idmessage等组件实现的。系统具有响应快、容易管理、可扩展、低成本等特点,经测试表明,系统各部分能够正常工作,满足邮件收发、文件上下载的需要。关键词:电子邮箱,收发邮件,smtp/pop3,delphi7abstractwith the development of computer network technology and the widely uses of e-mails, to exploit a local

3、system of sending/receiving e-mails has become a trend because of the disadvantages of web e-mail box which is slow to respond.this thesis firstly analyses the e-mail system from the perspectives of transmitting e-mails, e-mail server, e-mail storage and forwarding. after that, studies the working p

4、rinciples and conversational process of smtp/pop3 protocol in detailed, on the basis of which, finally realizes the network storage system. the smtp protocol to send e-mails and upload documents; and the pop3 protocol to receive e-mails and download documents. in addition, it uses the codes and deco

5、des of mime both to send/receive e-mails and upload/download documents. in a word, the whole system is realized under the exploitation environment of delphi7 by using the idsmtp, idpop3 and idmessage components. the system has the advantages of quick response, easily management, expansibility and lo

6、w cost, and it has been proved that each part of the system works normally and it meets the needs of sending/receiving e-mails and documentary storage.key words: mail box, e-mail, smtp/pop3, delphi7装订线电子邮件客户端软件设计目 录第一章 绪论.1 1.1 设计的目的和意义.1 1.2 电子邮件简介.1 1.3 开发环境及运行环境.3 1.3.1 开发环境.3 1.3.2 运行环境.3第二章 相关理

7、论基础.4 2.1 网络通信.4 2.2 delphi简介 .42.3 delphi的控件安装方法 .62.4 数据库系统简介.7第三章 系统分析及传输协议.83.1 系统分析.83.1.1 系统功能需求分析.83.1.2 软件的总体架构.93.1.3 程序功能总框图.93.1.4 数据流程设计.103.2 传输协议.103.2.1 smtp协议.103.2.2 pop3协议.123.2.3 mime协议.13第四章 系统设计.15 4.1 系统模块划分.15 4.2 子模块功能定义.15 4.3 系统设计方案.15第五章 系统实现及测试.185.1 系统实现.185.2 系统测试.185.2

8、.1 测试环境.185.2.2 主程序界面.195.2.3 发送界面.195.2.4 接收界面.215.2.5 关于.235.2.6测试总结.23结束语.24致谢.25参考文献.26附录a.27附录b.33附录c.34第一章 绪论1.1 设计的目的和意义电子邮件(electronic mail、e-mai1)又称电子信箱,它是种用电子手段提供信息交换的通信方式,是应用于网络上的使用最广泛的网络功能之一。e-mail不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件是“存贮转发式”的服务,属于异步通信方式。电子邮件的发送几乎是即时的并且可以一次发送给多个人,发送和

9、接收主要通过smtp协议和pop3协议来实现。电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。它采用“存储转发”的机制来完成电子邮件的收发。邮件服务器处理发送和接收消息的事项,并在处理电子邮件的过程中与其他机器进行通信。客户端电子邮件软件一般都比web mail服务器提供更为全面的功能。使用客户端软件收发邮件,登录时不用下载网站页面内容,速度更快;使用客户端软件收到的和曾经发送过的邮件都保存在自己的电脑中,不用上网就可以对旧邮件进行阅读和管理。同时实现多用户,多邮箱帐户,多pop3支持,对邮件管理更加快捷方便。正是由于电子邮件客户端软件的种种优点,它将越来越会成为了人们工作

10、和生活上进行交流必不可少的工具。1.2 电子邮件简介电子邮件(简称e-mai1)又称电子信箱、电子邮政,它是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是internet资源使用最多的一种服务,e-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,

11、利用存贮转发可进行非实时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的个实体。因为电子邮件是通过邮件服务器(mai1 server)来传递档的。通常mail server是执行多任务操作系统unix的计算机,它提供24小时的电子邮件服务,用户只要向 mail server管理人员申请个信箱账号,就可使用这项快速的

12、邮件服务。电子邮件的工作原理:1) 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。 电子邮件的传输是通过电子邮件简单传输协议(simple mail transfer protocol,简称smtp)这一系统软件来完成的,它是internet下的一种电子邮件通信协议。 2) 电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的个电子信箱。并确定个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑

13、信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。3) 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取。电子邮件的工作过程:电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(smtp服务器)发送

14、。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(pop3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。通常internet上的个人用户不能直接接收电子邮件,而是通过申请isp主机的一个电子信箱,由isp主机负责电子邮件的接收。一旦有用户的电子邮件到来,isp主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。因此,当发送一条电子邮件给一另一个客户时,电子邮件首先从用户计算机发送到isp主机,再到internet,再到收件人的isp主机,最后到收件人

15、的个人计算机。isp主机起着“邮局”的作用,管理着众多用户的电子信箱。每个用户的电子信箱实际上就是用户所申请的帐号名。每个用户的电子邮件信箱都要占用isp主机一定容量的硬盘空间,由于这一空间是有限的,因此用户要定期查收和阅读电子信箱中的邮件,以便腾出空间来接收新的邮件。1.3 开发环境及运行环境1.3.1开发环境intel(r) core(tm)2 duo t6600 2g内存 320g硬盘microsoft windows7旗舰版visio 20101.3.2 运行环境intel pentium 2及以上处理器,32m以上内存,4g以上硬盘microsoft windows操作系统borla

16、nd delphi7800*600或以上的屏幕分辨率第二章 相关理论基础2.1 网络通信通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺网络通信利地进行交流。从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。2.2 delphi简介delphi,是windows平台下著名的快速应用程序开发工具(rapid application development,

17、简称rad)。它的前身,即是dos时代盛行一时的“borlandturbo pascal”,最早的版本由美国borland(宝兰)公司于1995年开发。主创者为anders hejlsberg。经过数年的发展,此产品也转移至embarcadero公司旗下。delphi是一个集成开发环境(ide),使用的核心是由传统pascal语言发展而来的object pascal,以图形用户界面为开发环境,透过ide、vcl工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。在古希腊神话里,delphi是智慧女神,米开朗基罗在意大利有著名的delphi雕像。delphi也

18、是一个希腊地名,那里的阿波罗神庙神谕非常灵验,所以古希腊各个城邦都信奉delphi那里阿波罗神庙预言。由borland公司推出的delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的windows应用程序开发工具。它使用了microsoftwindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(object-oriented language)、当今世界上最快的编译器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作delphi的每

19、一个设计细节,都将带给您一份欣喜。 delphi是borland公司研制的新一代可视化开发工具,可在windows3.x、windows95、windowsnt、windowsxp、windows vista、windows7等环境下使用。当前,delphi 也可以在linux平台上开发应用,其在linux上的对应产品kylix。 delphi 拥有一个可视化的集成开发环境(ide),采用面向对象的编程语言objectpascal和基于部件的开发结构框架。delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用del

20、phi本身编写自己的部件。 “真正的程序员用c,聪明的程序员用delphi”,这句话是对delphi最经典、最实在的描述。delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和vc相比,delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和vb相比,delphi则功能更强大、更实用。可以说delphi同时兼备了vc功能强大和vb简单易学的特点。它一直是程序员至爱的编程工具。 delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与windows编程紧密结合,强大而成熟的组件技术。但最重要的还是object pascal语言,它才是一切的根本。

21、object pascal语言是在pascal语言的基础上发展起来的,简单易学。 delphi提供了各种开发工具,包括集成环境、图像编辑(image editor),以及各种开发数据库的应用程序,如desktopdatabase expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如borland公司的资源编辑器(resourse workshop)。 在delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。 delphi发

22、展至今,从delphi1、delphi2到现在的delphi2011,不断添加和改进各种特性,功能越来越强大。delphi5开始添加了对ide(集成开发环境)的很多改进新特性,扩展了数据库支持(ado和interbase数据库),带有internet支持的midas改进版,teamsouse版本控制工具,转换功能,框架概念以及很多的新组件与新特性。 delphi 6.0是borland公司推出的一套无论是界面还是功能都近乎完美的应用程序开发工具。与以前的delphi版本相比,delphi 6.0使用更简便,效率也更高。 delphi 7.0是borland公司最新推出的一套无论是界面还是功能都

23、近乎完美的应用程序开发工具。与以前的delphi版本相比,delphi 7.0使用更简便,效率更高,最稳定的一个版本,被称为开发人员的工具之最,也是borland产品最顶峰时期,更是风靡全球。 delphi2010内置的direct 2d模块及开发库,其新加的功能:拥有一个能同时运作于x86和x64的ide,在此ide下将会有跨平台编译器,能够编译用于linux和mac的应用程序;将会支持windows7下的触摸式编程;强化的datasnap;将支持云计算;将支持函数式编程,这需要很多时间,据david估计是2011会实现。2.3 delphi的控件安装方法1、对于单个控件,componet-

24、install component.-pas或dcu文件-install;2、对于带*.dpk文件的控件包,file-open(下拉列表框中选*.dpk)-install即可;3、对于带*.bpl文件的控件包,install packages-add-bpl文件名即可;4、如果以上install按钮为失效的话,试试compile按钮;5、是run time lib则在option下的packages下的runtimepackes加之。 如果编译时提示文件找不到的话,一般是控件的安装目录不在delphi的lib目录中,有两种方法可以解决:反安装的源文件拷入到delphi的lib目录下。或者too

25、ls-environment options中把控件源代码路径加入到delphi的lib目录中即可。注意:所安装的控件是否与你所用的delphi版本相适应。rxlib的安装: 首先在delphi 5 的 ide 中将以前版本的 rxlib 反安装,删除 rxctl5.bpl、rxdb5.bpl、 rxbde5.bpl、dclrx5.bpl、 dclrxdb5.bpl 和dclrxbd5.bpl。打开 rx 的运行包 rxctl5.dpk,在 package 窗口中按 compile 按钮编译 rxctl5.dpk ,然后用同样方法编译另两个运行包rxdb5.dpk 和 rxbde5.dpk ,

26、将编译后的三个 bpl 文件放到搜索路径中,如 windowssystem等。在编译完运行包后你必须将 rx 的设计期包安装到 ide 环境中。打开 rx 的设计期包 dclrx5.dpk,在 package 窗口中按 compile 按钮编译,然后按 install按钮将设计期包注册到组件面板中。用同样的方法安装 dclrxdb5.dpk 和 dclrxbd5.dpk。注意:不要在 delphi ide 中保存包资源(package sources)!帮助文件的安装: 单击 delphi 中的 help 菜单下的 customize 菜单项,这时会弹出 openhelp 对话框,选择在 in

27、dex 页下,打开 edit 菜单下的 add files 菜单,添加你要加入的帮助菜单,这样你就可以在 delphi 的 ide 下使用该帮助文件了。控件删除: 在component/install packages中删除。选component/configure palette有pages和components两个区域双击components区域,选中要删除得控件,下面有delete按钮。但系统提供的控件只能hide,不能delete。打开控件所在的包文件(*.dpk),从中删除控件那个文件,再重新编译该包即可如果是整个控件包都要删除的话,project-option-packages,删

28、掉那个packages就可以了。2.4 数据库系统简介 数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言,实用程序以及数据库管理系统。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这些数据为多个应用服务,独立于具体的应用程序。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。对数据库的维护包括保持数据的完整性、一致性和安全性。数

29、据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。 数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库;它的学科含义是指研究、开发、建立、维护和应用数据库系统所涉及的理论、方法、技术所构成的学科。在这一含义下,数据库系统是软件研究领域的一个重要分支,常称为数据库领域。 数据库研究跨越于计算机应用、系统软件和理论三个领域,其中应用促进新系统的研制开发,新系统带来新的理论研究,而理论研究又对前两个领域起着指导作用。数据库系统的出现是计算机应用的一个里程碑,它使得计算机应用从以科学计算为主转向以数

30、据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用。在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术往往很复杂,是普通用户难以实现的,所以就由系统软件(数据库管理系统)来完成,而提供给用户的是简单易用的数据库语言。由于对数据库的操作都由数据库管理系统完成,所以数据库就可以独立于具体的应用程序而存在,从而数据库又可以为多个用户所共享。因此,数据的独立性和共享性是数据库系统的重要特征。数据共享节省了大量人力物力,为数据库系统的广泛应用奠定了基础。

31、数据库系统的出现使得普通用户能够方便地将日常数据存入计算机并在需要的时候快速访问它们,从而使的计算机走出科研机构进入各行业、进入家庭。第3章 系统分析和传输协议3.1系统分析3.1.1 系统功能需求分析:作为一个电子邮件客户端,其核心功能是能够发送和接收邮件,其他附加功能如通讯录的管理也是不可少的。邮件发送需求:要求能实现邮件的发送,不仅能发送纯文本文件,而且能发送附件。邮件接收需求:要求能实现邮件的接收,不仅能接收纯文本文件,而且能接收附件。附加功能需求:附加功能主要有通讯录管理,主要是对联系人增加,删除。根据需求,邮件的收发系统按照如下几个模块设计:用户注册,邮件发送,邮件接收,通讯录管理

32、几个模块。 图软件的总体架构如图:图程序功能框图图数据流程设计用户操作邮件服务器pop3协议smtp协议e-mailuser选择邮件邮件信息用户登录用户信息接收邮件发送邮件图3.43.2传输协议3.2.1 smtp 协议简介smtp(simple mail transfer protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。smtp协议属于tcpip协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过smtp协议所指定的服务器,我们就可以把email寄到收信人的服务器上了,整

33、个过程只要几分钟。smtp服务器则是遵循smtp协议的发送邮件服务器,用来发送或中转你发出的电子邮件。smtp 是一种提供可靠且有效电子邮件传输的协议。 smtp 是建模在 ftp 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。smtp 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。 smtp 重要特性之一是其能跨越网络传输邮件,即“ smtp 邮件中继”。通常,一个网络可以由公用互联网上 tcp 可相互访问的主机、防火墙分隔的 tcp/ip 网络上 tcp 可相互访问的主机,及其它 lan/wan 中的主机利用非 tcp 传输层协议组成。使用

34、smtp ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(dns)的邮件交换服务器可以用来识别出传输邮件的下一跳 ip 地址。 在传输文件过程中使用25号端口。smtp协议原理smtp-简单邮件传输协议(simplemailtransferprotocol),是定义邮件传输的协议,它是基于tcp服务的应用层协议,由rfc0821所定义。smtp协议规定的命令是以明文方式进行的。为了说明smtp的工作原理,我们以向发送邮件为实例进行说明。在linux环

35、境下,使用telnet 25连接的25号端口(smtp的标准服务端口);在windows下使用telnet程序,远程主机指定为,而端口号指定为25,然后连接:交互过程如下:lixnslix$25trying20.c.escapecharacteris.heloidealesmtpsendmail8.10.2/8.10.2;mon,18sep200013:40:44+0800hello30,pleasedtomeetyoumailfrom:ideal2502.1.0ideal.senderokrcptto:ideal2502.1.5ideal.rec

36、ipientokdata354entermail,endwith.onalinebyitselfhello,plstogettomeetu:)goodluck2502.0.0e8i5j1m11204messageacceptedfordeliveryquitclosingconnectionconnectionclosedbyforeignhost.这里,helo是客户向对方邮件服务器发出的标识自己的身份的命令,这里假设发送者为ideal;mailfrom命令用来表示发送者的邮件地址;rcptto:标识接收者的邮件地址,这里表示希望发送邮件给ideal,如果邮件接收者不是本地用户,例如rcpt

37、to:ideal,则说明希望对方邮件服务器为自己转发(relay)邮件,若该机器允许转发这样的邮件,则表示该邮件服务器是openrelay的,否则说明该服务器不允许relay;data表示下面是邮件的数据部分,输入完毕以后,以一个.开始的行作为数据部分的结束标识;quit表示退出这次会话,结束邮件发送。这就是一个简单的发送邮件的会话过程,其实当使用outlookexpress等客户软件发送时,后台进行的交互也是这样的,当然,smtp协议为了处理复杂的邮件发送情况如附件等等,定义了很多的命令及规定,具体可以通过阅读rfc821来获得。当你的一个朋友向你发送邮件时,他的邮件服务器和你的邮件服务器通

38、过smtp协议通信,将邮件传递给你邮件地址所指示的邮件服务器上(这里假设你的本地邮件服务器是linux系统),若你通过telnet协议直接登录到邮件服务器上,则可以使用mail等客户软件直接阅读邮件,但是若你希望使用本地的mua(mailuseragent,如outlookexpress等客户软件)来阅读邮件,则本地客户端通过pop3或imap协议与邮件服务器交互,将邮件信息传递到客户端(如:win98系统)。而如果你向你的朋友回复一封信件时,你所使用的mua也是通过smtp协议与邮件服务(一般为发送邮件地址对应的email地址)器通信,指示其希望邮件服务器帮助转发一封邮件到你朋友的邮件地址指

39、定的邮件服务器中。若本地邮件服务器允许你通过它转发邮件,则服务器通过smtp协议发送邮件到对方的邮件服务器。这就是接受和发送邮件的全部过程。3.2.2 pop3 协议简介pop3(post office protocol 3)协议是邮局协议版本3的缩写。最初是在1984年发表的rfc918中定义的,1985年的rfc937发表了第二版1988年的rfc1081又发表了第三个版本,简称pop3,当前使用的标准是rfc1939。它规定怎样将个人计算机连接到internet的邮件服务器和下载电子邮件的电子协议 。它是因特网电子邮件的第一个离线协议标准,pop3允许用户从服务器上把邮件存储到本地主机(

40、即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而pop3服务器则是遵循pop3协议的接收邮件服务器,用来接收电子邮件的。pop3适用c/s工作模式,在接收邮件的pc中,运行pop3客户机程序,在用户连接的isp的邮件服务器中运行pop3服务器程序,两者之间按照pop3相互发送信息,pop3客户机发送给pop3服务器的消息成为pop3命令,pop3服务器返回的消息成为pop3响应。pop3服务的tcp默认端口为110,当客户主机需要从服务器上的邮件时,它向服务器发出建立一条tcp连接的请求。在连接成功后客户与服务器之间使用pop3协议会话的过程分为3个阶段:1)认证阶段:每一个用户只有提

41、供了正确的用户名和口令之后才有权访问自己的邮箱,在这个阶段里,可以使用user、pass和quit这3个pop3命令。2)邮件操作阶段:用户通过了认证就相当于打开了服务器上的用户邮箱,客户就有权进行检查、下载或者删除邮件等操作了。这是会话过程进入事物状态,此时可以使用的pop3命令有:noop、stat、quit、list、retr、top、dele、rset和uidl。3)更新阶段:当客户发送了quit命令后,系统就进入了更新阶段,pop3服务器释放在操作阶段中取得的资源,并将逻辑删除的邮件进行物理删除,然后发送消息,关闭客户与服务器之间的tcp连接,邮件处理的会话层结束。 3.2.3 mi

42、me 协议mime是一种internet协议,全称为“multipurpose internet mail extensions” ,中文名称为“多用途互联网邮件扩展”。其实,它的应用并不局限于收发internet邮件它已经成为internet上传输多媒体信息的基本协议之一。本文仅关心mime的编码算法。 mime编码的原理就是把 8 bit 的内容转换成 7 bit 的形式以能正确传输,在接收方收到之后,再将其还原成 8 bit 的内容。对邮件进行编码最初的原因是因为 internet 上的很多网关不能正确传输8 bit 内码的字符,比如汉字等。mime编码共有base64、quoted-p

43、rintable、7bit、8bit和binary等几种。 base64算法将输入的字符串或一段数据编码成只含有“a”-“z”, “a”-“z”, “0”-“9”, “ +”, “ /这64个字符的串,=用于填充。其编码的方法是,将输入数据流每次取6 bit,用此6 bit的值(0-63)作为索引去查表,输出相应字符。这样,每3个字节将编码为4个字符(38 46);不满4个字符的以=填充。 quoted-printable算法根据输入的字符串或字节范围进行编码,若是不需编码的字符,直接输出;若需要编码,则先输出=,后面跟着以2个字符表示的十六进制字节值。 mime是一种技术规范,它原来是用于电

44、子邮件的,现在也可以用于浏览器上,传送可以供浏览器识别的信息,关于mime的知识并是十分难懂的,有一些基本的计算机概念就可以理解了,但如果要进一步使用,就必须注意内容。实际上,我们在上网的时候就已经接触到了mime,只是浏览器和服务器在底层实现了。 mime有时候被错误地理解为多媒体internet邮件扩展(multimedia internet mail extensions),这是一个错误,但是mime在网上经常用于多媒体应用程序,所以人们以为这是它是多媒体邮件扩展,而实际上它应该被称为多用途internet邮件扩展(multipurpose internet mail extension

45、s),这一点一定要注意,因为有时候内容里根本没有非文本成份。 mime对于邮件系统的扩展是巨大的,因为在mime出现以前,信件内容如果要包括声音和动画,就必须把它变为ascii码或把二进制的信息变成可以传送的编码标准,而接收方必须经过解码才可以获得声音和图画信息。mime提供了一种可以在邮件中附加多种不同编码文件的方法。这与原来的邮件是大大不同的。而现在mime已经成为了http协议标准的一个部分。 mime是服务器通知客户机传送文件是什么类型的主要方法,客户机浏览器也通过mime告诉服务器它的参数。在网上,如果接收到的文件没有mime头,就默认它为html格式。但这样也不好,因为当mime的

46、包头是text/plain时,浏览器将直接显示而不关心它的什么字体,颜色之类的参数,这样显示出来的内容可不是很好看呀。 mime头是什么样子要看它是用在电子邮件中还是用在浏览器上,两者内容可能有所不同。对于邮件头来说,版本号,内容类型声明,编码方式,内容描述是必不可少的。这是用于邮件头中的格式,在下面,我们将重点说到在http中传送mime头,这时mime头要简单一些。第4章 系统设计4.1 系统模块划分邮件收发系统是利用现有邮箱协议实现的一个电子邮件系统。根据系统需求与用户需求,该邮件收发系统可以分为用户管理模块、邮件收发模块、文件管理模块三个部分。其中具体应该实现的功能有发送邮件、接收邮件

47、。4.2 子模块功能定义邮件收发模块:发送邮件:系统可以选择不同的邮件服务器做为发送邮件的接收者,允许发送文本、图片等。功能:发送文本邮件及附件。接收邮件:系统可以选择不同邮件服务器的帐号,接收邮件。功能:查看、删除、接收邮件及附件。4.3 系统设计方案 indy clients中的tidsmtp 和tidpop3这两个组件和indy misc中的tidmessage完全能够对大部份邮件服务器进行邮件收发操作。indy简介:internet direct(indy)是一组开放源代码的internet组件,涵盖了几乎所有流行的internet协议。是由chad z. hower领导的一群开发者构

48、建的,可以从indy的站点 7中所带的是indy 9。在其的组件面板上,一共安装有100多个indy组件。使用这些组件你可以开发基于各种协议的tcp客户和服务器应用程序,并处理相关的编码和安全问题。可以通过前缀id来识别indy组件。indy是阻塞式(blocking)的。当你使用winsock开发网络应用程序时,从socket中读取数据或者向socket写入数据都是异步发生的,这样就不会阻断程序中其它代码的执行。在收到数据时,winsock会向应用程序发送相应的消息。这种访问方式被称作非阻塞式连接,它要求你对事件作出响应,设置状态机,并通常还需要一个等待循环。与通常的winsock编程方法不同的是,indy使用了阻塞式socket调用方式。阻塞式访问更像是文件存取。当你读取数据,或是写入数据时,读取和写入函数将一直等到相应的操作完成后才返回。比如说,发起网络连接只需调用connect方法并等待它返回,如果该方法执行成功,在结束时就直接返回,如果未能成功执行,则会抛出相应的异常。同文件访问不同的是,socket调用可能会需要更长的时间,因为要读写的数据可能不会立即就能准备好(在很大程度上依赖于网络带宽)。windows上使用阻塞式socket

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论