Email客户端的分析与实现.docx
- 文档编号:18550725
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:37
- 大小:927.49KB
Email客户端的分析与实现.docx
《Email客户端的分析与实现.docx》由会员分享,可在线阅读,更多相关《Email客户端的分析与实现.docx(37页珍藏版)》请在冰点文库上搜索。
Email客户端的分析与实现
毕业设计
Email客户端的分析与实现
学生姓名:
学号:
华中科技软件学院
学院:
软件工程
专业:
指导教师:
Email客户端的分析与实现
摘要
随着人们生活水平的提高和信息技术的高速发展,人们再也不能满足现实世界中效率低、费用高、时间长的寄信方式了。
然而在高速发展的信息世界中,人们找到一种不受时间和区域限制的既方便又快捷的寄信方式--电子邮件。
与传统的寄信方式相比电子邮件具有不受时间、地点和费用的限制。
只需要使用能上网的计算机就能随时随地免费的收发自己的电子邮件。
与传统的寄信内容相比电子邮件能够表达更丰富的内容不在局限于文字表达,同时也可以通过声音、图片、视频等多种方式表达更丰富的信息内容。
在当今信息技术高速发展的情况下,电子邮件也随之应运而生。
而本系统是使用当今流行的计算机语言java语言开发而成的。
本系统主要采用B/S模式,用户只要有浏览器就能够使用该系统,该系统采用了当今流行的SSH(Struts+Spring+Hibernate)框架。
数据库采用了开源免费跨平台的Oracle数据库。
邮件服务器是采用开源免费的支持IMAP方式接收电子邮件的ApacheJames邮件服务器,采用以上软件既可以降低系统开发成本又能够提高开发效率。
本系统界面设计简单、大方、易与操作用户很容易上手,基本不需要指导就能快速上手,本系统是一款不错的电子邮件收发系统。
关键词:
电子邮件,信箱系统,Oracle,Java
Java-basedMailSystemDesignandImplementation
Abstract
Aspeople'slivingstandardsandrapiddevelopmentofinformationtechnology,peoplecannolongermeettherealworld,lowefficiency,highcost,sendalettermeansalongtime.Sopeopleareturningtohigh-speedworldofinformationdevelopment,strivetofindaworldofinformationwithouttimeandarearestrictionsconvenientandfastwaytosendaletter,theattendante-mail.Comparedwiththetraditionalwayofe-mailershavenottime,placeandcostrestrictions.AslongaspeoplecanaccesstheInternetanytime,anywhereonthecomputercansendandreceivetheirfreee-mail.Comparedwithtraditionale-mailersarenotlimitedtothetextcontentofexpression,itcansound,pictures,videoandothermeanstoexpressaricherinformationcontent.
Therapiddevelopmentofinformationtechnologyintoday'scase,e-mailalsocameintobeing.Theapplicationofthissystemistoday'spopularcomputerlanguagejavalanguagedevelop.ThesystemmainlyusestheB/Smode,theuseraslongasthebrowserwillbeabletousethesystem,thesystemusedintoday'spopularSSH(Struts+Spring+Hibernate)frameworkdevelopedwith.Databaseisfreecross-platformusingopensourceMySQLdatabase.Opensourcemailserverisusedtoreceivefreee-mailsupportIMAPApacheJamesmailserver,usingtheabovesoftwarecanreducesystemdevelopmentcostsandtoimprovedevelopmentefficiency.
Thesysteminterfaceisdesignedtobesimple,elegant,easytooperateuserwitheasytouse,thebasicneedtoguideyoucanquicklygetstarted,thesystemisagoodemaildeliverysystem.
Keywords:
E-mail,Jamesmailserver,ORACLE,Java
1引言
1.1课题研发背景
电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。
它是全球多种网络上使用最普遍的一项服务。
这种非交互式的通信,加速了信息的交流及数据传送。
通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。
到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。
与传统的信件相比电子邮件更具有传统信件没有的优势,传统的邮件受到时间、地点等各种限制,而电子邮件却不受这些限制。
电子邮件可以在任意时间、任意地点使用,可以说是只要能上网的就能收发电子邮件。
现在随着互联网和计算机的普及[1],电子邮件将会成为人们越来越受欢迎的交流方式。
1.2选题的意义
当今流行的邮件系统如LotusNotes[2]和Exchange是非常强大的商业软件。
但这些系统包含的协作功能和每客户端得许可证费用使它们的整体成本急剧上升。
而事实上,很多使用这些系统的公司仅仅需要其中的邮件服务器基本功能。
因此开发一种简单易用的,使用户容易上手的电子邮件系统是势在必得。
对于大型的企业来说开发一种简单易用的具有电子邮件基本功能的电子邮件系统,不仅能够提高企业的生产效率而且能够降低人与人之间的沟通成本,使企业能够更好的发展。
对于我个人来说,开发该系统既可以使我四年所学的东西学有所用,又可以提高自己的项目开发水平,同时还能够为自己以后的发展积累丰富的项目经验。
虽然开发该系统可能会发费很多时间,但是就该系统来说就算花费再多的时间也是物有所值的。
1.3电子邮件的现状分析
自从1987年9月,CANET在北京计算机应用技术研究所内正式建成中国第一个国际互联网电子邮件节点,并于9月14日发出了中国第一封电子邮件:
"AcrosstheGreatWallwecanreacheverycornerintheworld.(越过长城,走向世界)"以来,电子邮件服务在我国得到了飞速的发展。
随着电子商务近几年的飞速发展,现在使用电子邮件已经成为了主流,用户可以随时随地方便的使用它来传送信息,并且电子邮件作为一种新兴的商务手段,也得到了广泛的应用。
虽然在电子商务不断发展的同时,还逐渐出现了许多应用技术,如:
IP电话、网络会议、留言版、论坛等等。
然而电子邮件以其普及适用性、稳定性、易用性、传输内容多样性、相对保密性成为了众多电子商务应用技术中最为普遍和重要的一种应用方式,并受到越来越多的人的青睐。
可是,电子邮件作为一种计算机的数字化技术,其方便性和快捷性则非常重要,对设计和开发的邮件收发程序的要求也越来越高,我们都向着这个方向努力着。
1.4电子邮件的发展前景
电子邮件系统经过几十年的发展,已经形成了完善的技术体系。
邮件服务器系统在保留了电子邮件系统最初的收发邮件、邮件存储等基本功能的同时,融入了最新的计算机与网络技术,使电子邮件系统有了全新的改观。
随着我国经济发展和网络的普及,网络技术也越来越多地被应用于日常工作之中。
人们越来越希望寻找一种更加方便、低廉的交流信息的工具以代替古老的纸张发信形式,而随着网络信息时代的来临,网络应用越来越广泛,人们越来越习惯于在网上获取和交流信息,因此网上邮件便成为人们的首选。
为了能够使邮件的处理能力可以无限扩展,就需要引入集群和负载均衡技术,使应用平台可以在需要的时候无限扩充,满足长期或临时的业务需要。
为了便于邮件存储,需要高性能的邮件存储解决方案。
现在,电子邮件已成为许多商家和组织机构的生命血脉。
它是一项系统工程,需要网络、数据存储、数据库等技术的支持。
它现在已经演变成为一个更加复杂并丰富的系统,可以传送声音、图片、图像、文档等多媒体信息,以至于如数据库或账目报告等更加专业化的文件都可以通过附件的形式在网上分发。
用户可以通过电子邮件的讨论会进行项目管理,并且有时要根据快速,或洲际的电子邮件信息交换进行重要的决策行动。
电子邮件系统已成为人们生活中不可缺少的重要工具,也是许多商家和组织机构的生命血脉。
客户端结合移动邮箱服务将是未来发展核心应用之四。
移动邮箱在具备常规互联网邮件功能的同时,充分利用手机的功能优势,让用户可以通过手机短信、彩信或手机WAP上网方式,随时随地获取邮件信息、对邮件进行操作,实现真正的移动畅快沟通。
只要手机有信号,不用在乎有没有带宽接入,随时随地都可以查收邮件。
当前往3G时代的路上,移动邮箱的成熟定会成为历史,会有越来越多的用户在享受传统邮箱的互联网邮件功能同时,加入体验移动邮箱的短信、彩信、邮件到达通知等移动特色服务的行列。
邮件桌面客户端是未来发展核心应用之三。
电子邮箱未来的发展,更多的应用扩展和体验,像DreamMail、FoxMail、Outlook等这类的桌面客户端将无疑扮演着最重要的角色。
电子邮箱客户端将使人们脱离频繁登陆Web页面的烦恼。
凭借着飞快的网速,在上传附件方面将与Web页面的速度一样,甚至更快速。
2实现技术及开发工具
本部分主要介绍开发系统所采用的一些技术支持,包括采用的现在比较流行的J2EE框架技术Struts2、Spring、Hibernate、James邮件服务器、jQuery等的简单介绍。
2.1Struts2简介
Struts2[3]是Struts的下一代产品。
是在Struts和WebWork的技术基础上进行了合并,全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。
Struts2框架的处理流程如图2.1所示:
图2.1Struts2框架处理流程
通过上面对Struts2体系结构[4]的了解,我们发现Struts2对Struts1进行了巨大的改进。
主要表现在如下几个方面:
(1)在Action的实现方面:
Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。
(2)线程模型方面:
Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。
Struts2的Action是一个请求对应一个实例。
没有线程安全方面的问题。
(3)Servlet依赖方面:
Struts1的Action依赖于ServletAPI,比如Action的execute方法的参数就包括request和response对象。
这使程序难于测试。
Struts2中的Action不再依赖于ServletAPI,有利于测试,并且实现TDD。
(4)封装请求参数:
Struts1中强制使用ActionForm对象封装请求的参数。
Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
(5)表达式语言方面:
Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(ObjectGraphNavigationLanguage)。
(6)绑定值到视图技术:
Struts1使用标准的JSP,Struts2使用“ValueStack”技术。
(7)类型转换:
Struts1中的ActionForm基本使用String类型的属性。
Struts2中使用OGNL进行转换,可以更方便的使用。
(8)数据校验:
Struts1中支持覆盖validate方法或者使用Validator框架。
Struts2支持重写validate方法或者使用XWork的验证框架。
(9)Action执行控制的对比:
Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。
Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。
2.2Spring简介
Spring框架技术[5]实际上是RodJohnson在ExpertOne-on-OneJ2EEDesignandDevelopment[6]一书中所阐述的设计思想的具体实现。
Spring框架为J2EE平台的开发者提供的是一种“对象管理”技术,也就是为开发者解决包括对象的生命周期、对象之间的依赖关系建立、对象的缓存实现等方面问题的管理技术。
Spring框架是一个轻量级的控制反转(IoC)技术和面向切面编程(AOP)技术的容器框架,利用Spring框架中的IoC技术可以实现J2EE平台中所倡导的由容器实现对象的生命周期管理,而利用Spring框架中的AOP技术可以实现J2EE平台中所倡导的分离应用系统中业务逻辑组件和通用技术服务组件。
应用系统的开发者在应用系统中应用Spring框架后能够达到“解耦”和“脱离容器”的设计和实现的目的。
Spring框架主要由7个定义良好的、相互独立的模块组件构成。
Spring系统框架如图2.2所示:
图2.2Spring系统框架
2.3Hibernate简介
Hibernate[7]是Java应用和数据库之间的桥梁,通过对JDBC的简单封装,使Java程序员可以使用面向对象的思想操作数据表,不用再考虑数据访问细节,可以专注于业务逻辑的开发,它对软件分层做了进一步细化,使数据的持久化与业务逻辑和数据库分开,便于软件的后期维护。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate体系结构如图2.3所示:
图2.3Hibernate体系结构
2.4Eclipse开发工具简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP, CSS, Javascript,SQL,Hibernate。
2.5ORACLE数据库简介
ORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。
是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。
它有如下特点:
(1)ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。
这减少了ORACLE 的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源 就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。
(2)提供了基于角色(ROLE)分工的安全保密管理。
在数据库管理功能、完整性 检查、安全性、一致性方面都有良好的表现。
(3)支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。
(4)提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入 SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。
加上它有许多优 秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开 发生成基于客户端PC平台的应用程序,并具有良好的移植性。
(5)提供了新的分布式数据库能力。
可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。
2.6Tomcat服务器简介
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
Tomcat是稳固的独立的Web服务器与ServletContainer,不过,其Web服务器的功能则不如许多更健全的Web服务器完整,如ApacheWeb服务器(举例来说,Tomcat没有大量的选择性模块)。
不过,Tomcat是自由的开源软件,而且有许多高手致力于其发展。
Tomcat是一个小型的轻量级应用服务器[9],在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
2.7系统所需协议介绍
SMTP(简单邮件传输协议)负责邮件的发送和传输,使用TCP25端口,首先用户写好邮件之后发送给SMTP服务器,SMTP将邮件转换为ASCII码并添加报头,发送出去,邮件在INTERNET中路由交换到达目的地的邮件服务器,对方的SMTP将邮件的ASCII码解码。
SMTP的一个重要特点是它能够在传送中进行接力传送邮件,即邮件可以通过不同网络上的主机接力式传送。
它工作在两种情况下:
一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。
SMTP协议非常的简单和直观,在RFC821中,SMTP由一些通过ASCII码表示的命令字组成,通过这些命令字,两个节点之间(客户机和服务器)可以建立SMTP连接,并进行信息传递。
POP协议(电子邮局协议)是一种允许用户从邮件服务器收发邮件的协议。
它有两种版本,即POP2和POP3,都具有简单的电子邮件存储转发功能。
POP2与POP3本质上类似,都属于离线式工作协议,但是由于使用了不同的协议端口,两者并不兼容。
与SMTP协议相结合,POP3是目前最常用的电子邮件服务协议。
POP3除了支持离线工作方式外,还支持在线工作方式。
在离线工作方式下,用户收发邮件时,首先通过POP3客户程序登录到支持POP3协议的邮件服务器,然后发送邮件及附件;接着,邮件服务器将为该用户收存的邮件传送给POP3客户程序,并将这些邮件从服务器上删除;最后,邮件服务器将用户提交的发送邮件,转发到运行SMTP协议的计算机中,通过它实现邮件的最终发送。
在为用户从邮件服务器收取邮件时,POP3是以该用户当前存储在服务器上全部邮件为对象进行操作的,并一次性将它们下载到用户端计算机中。
一旦客户的邮件下载完毕,邮件服务器对这些邮件的暂存托管即告完成。
使用POP3,用户不能对他们贮存在邮件服务器上的邮件进行部分传输。
离线工作方式适合那些从固定计算机上收发邮件的用户使用。
当使用POP3在线工作方式收发邮件时,用户在所用的计算机与邮件服务器保持连接的状态下读取邮件。
用户的邮件保留在邮件服务器上。
3系统需求分析
用户需求分析是整个设计制作的起点,它是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。
在确定系统的总体结构方案过程中,需要确定应用程序的结构、系统开发环境、系统测试环境和运行环境以及系统的功能模块。
在用户需求调研结束之后,应立即进行用户需求分析。
需求分析的结果反映了用户的时间需求,它将影响到设计的合理性和实用性。
开发软件计划的提出与软件消亡之间的过程中我们称之为软件的生存周期。
软件生存周期是根据软件所处的状态、特征以及软件开发活动的目的、任务可以划分若干阶段,从这一思想出发,软件生存周期包括软件定义,软件开发、软件使用与维护三个部分,具体则可以得到软件生存周期的六个步骤,即制定计划、需求分析,软件设计、程序编码、测试及运行维护。
软件需求分析[13]工作是软件生存期中具有决定性意义的一步,只有通过需求分析才能把软件的功能和性能的总体要领描述为具体的软件规程说明,从而奠定软件开发基础。
本系统在开发的过程也应严格遵循这一过程,进行详细的需求分析设计,从而设计出一个优秀的电子邮件系统软件。
3.1可行性分析
可行性分析也称可行性研究,是决策部门在采取一项重大改革或投资行动之前,对该项目的必要性和可能性进行分析与论证的活动。
可行性分析已被广泛应用于新产品开发、基建、工业企业、交通运输、商业设施等项目投资的多个领域。
在展开一项开发行动之前,必须对用户提出的目标的必要性和可能性进行必要的论证。
可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。
信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。
通过长时间的观察与实践,我认为电子邮件系统的可行性分析如下。
3.1.1经济可行性分析
本系统是基于Java的而Java是开源免费的,另外本系统所采用的Tomcat服务器、James邮件服务器以及MySQL数据库服务器都是开源免费的。
这样在成本上势必会降低很多。
现行的公司大型的邮件系统所提供
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Email 客户端 分析 实现