简单邮件系统的设计与实现初稿李婷婷1142.docx
《简单邮件系统的设计与实现初稿李婷婷1142.docx》由会员分享,可在线阅读,更多相关《简单邮件系统的设计与实现初稿李婷婷1142.docx(53页珍藏版)》请在冰点文库上搜索。
![简单邮件系统的设计与实现初稿李婷婷1142.docx](https://file1.bingdoc.com/fileroot1/2023-4/28/a13a2d0a-6c5f-48f9-af3f-bf433a0826f1/a13a2d0a-6c5f-48f9-af3f-bf433a0826f11.gif)
简单邮件系统的设计与实现初稿李婷婷1142
武汉学院
学生毕业论文
题目:
简易电子邮箱系统的开发
指导教师:
甘霞职称:
讲师
学生姓名:
李婷婷学号:
12071142
专业班级:
信息与计算科学(网络工程)1204
年级:
12级
二〇XX年X月XX日
基于java的邮件系统的设计与实现
摘要
对于本次的毕业论文简易邮箱系统的设计,是基于B/S架构,采用了最近流行的java语言编译完成的开发。
B/S模式最大的优点之一是部署和维护方便,易于扩展。
该系统采用了当今流行的SSH(Struts+Spring+Hibernate)框架。
数据库采用了开源免费跨平台的MySQL数据库。
邮件服务器是采用开源免费的支持IMAP方式接收电子邮件的ApacheJames邮件服务器,采用以上软件既可以降低系统开发成本又能够提高开发效率。
在这种结构下,该系统实现了邮箱的基本功能,包括:
发送邮件,接收邮件,删除邮件等,有能对邮件列表进行管理的联系人地址簿,具有舒适的用户界面,具有登录与注册的MySQL数据库连接。
论文从客户端和用户界面的开发方面详细阐述了整个电子邮件接收实现的全过程,对开发过程中的难点进行了分析和研究,并通过系统结构图,功能模块图,UML等方式形象地描述出来。
随着当今世界信息技术的发展,邮件已经逐渐成为人们传递信息不可分割的一部分。
再加上网络环境的普及,人们对电子邮件的了解也愈益加深,尤其是它的可靠性强,快速方便更成为人们接纳邮件的一个重要因素。
本系统界面设计简单、大方、易操作,不需要指导就能快速上手,让用户体验到免费的电子邮件系统的优质服务。
关键词:
javaJames邮件服务器MySQLB/S架构
Java-basedMailSystemDesignandImplementation
Abstract
Simpleemailsystemdesignforthegraduationthesis,isbasedonB/Sstructure,usingtherecentlypopularJAVAlanguagecompilertocompletedevelopment.OneofthebiggestadvantagesofB/Sisdeploy,maintainconvenient,andeasyextensible.Java-basede-mailsystemistousetoday'spopularSSH(Struts+Spring+Hibernate)frameworkdevelopedwith. Databaseisfreecross-platformusingopensourceMySQLdatabase.Opensourcemailserverisusedtoreceivefreee-mailsupportIMAPApacheJamesmailserver,usingtheabovesoftwarecanreducesystemdevelopmentcostsandtoimprovedevelopmentefficiency.beforethisstructure,thebasicfunctionofthissystemhasrealizedtheemail,includingsendingemail,receivingemail,deletingemail,havingacontactaddressbookmanagethemailinglist,withacomfortableuserinterfaceandtheloginandregisterthemysqldatabaseconnection.ThearticledescribescompleteimplementationprocessofE-mailsystem,analyzestheinterfaceofclientsandusers.Itstudiesthedifficultiesofdevelopmentwhichisdescribedvividlybysystemstructureimage,functionmodel,UMLandsoon.
Asthedevelopmentofinformationtechnologyintoday’sworld,emailhasbecomeanintegralpartofpeopletopassinformation.Coupledwiththepopularityofthenetworkenvironment,peopleunderstandingofemailisincreasinglydeepened,especiallyitsreliability,convenientandfasttobecomemorepeopletoacceptmailoneoftheimportantfactors.
Keywords:
E-mailJamesmailserverMySQLJavaSSH
目录朗读显示对应的拉丁字符的拼音
1绪论
1.1课题研发背景
电子邮件是一种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。
随着电子邮件的普及,大部分公司和组织都有自己的邮件系统,然后在企业内部的人员会分布系统邮箱,作为统一联系的标志。
因此必须要求邮箱具有良好的安全性,高效率性和高性能性。
其提出了以下要求:
邮箱系统不受网络垃圾广告,病毒的影响,且便于管理者(管理员)对邮箱系统的管理,同时又要遵守行内法规。
通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,只需负担网费),非常快速的方式,与世界上任何一个角落的用户取得联络。
电子邮件的使用方式一般与信件大同小异,送件者一般要写明收件者的邮箱地址,收件人,主旨以及信件内容。
1.2选题的意义
对于一个系统的设计者来说,该系统的设计必须符合用户的使用规范,易上手易操作,得到大部分用户的肯定才是我们追求的目标。
因此,通过本次毕业设计,我希望能制作出一个能满足客户各种需求,简单的用户接收,发送,并且邮件具有上传附件且完成附件的传输功能,同时实现用户对邮件的删除管理功能。
本次选题我希望能系统的了解邮箱系统开发的设计理念及原理,掌握系统开发的流程,以及发现自己的不足,包括理论和语言编译,从而为今后的设计打下坚实的基础。
近年来,电子邮箱的迅猛发展,在比较专业,完整的设计网站上,都有自己的免费电子邮箱服务,电子邮箱已经是很普通的一个东西。
对于网站上的邮箱系统,大部分是通过软件来实现的,比如用java语言编译,就可以利用类和接口来实现邮箱系统的编写。
本次毕业设计,就是采用java语言编译,来实现一个简单电子邮箱的编译与实现。
2实现技术及开发工具
本部分主要介绍开发系统所采用的一些技术支持,包括采用的现在比较流行的J2EE框架技术Struts2、Spring、Hibernate、James邮件服务器等的简单介绍。
2.1Struts2简介
Struts2是Struts的下一代产品。
是在Struts和WebWork的技术基础上进行了合并的全新的MVC框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大,不能理解为Struts1的升级版。
Struts2以XWork为核心,可以理解为WebWork的升级版。
WebWork是由OpenSymphony组织开发的,是建立在称为XWork的Command模式框架之上的强大的MVC框架。
采用拦截器的机制来处理用户的请求使得业务逻辑控制器能够与ServletAPI完全脱离开,大大提升项目的开发效率,降低了业务代码的耦合度,所以Struts2是一个成熟稳定的框架。
Struts2对业务代码依赖性很低,基本不需要import它的包。
Struts2框架的处理流程如图2-1所示:
图2-1Struts2框架处理流程
2.2Spring简介
Spring框架技术[5]实际上是RodJohnson在ExpertOne-on-OneJ2EEDesignandDevelopment[6]一书中所阐述的设计思想的具体实现。
Spring框架为J2EE平台的开发者提供的是一种“对象管理”技术,也就是为开发者解决包括对象的生命周期、对象之间的依赖关系建立、对象的缓存实现等方面问题的管理技术。
Spring框架是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,降低侵入性。
Spring提供的控制反转(IOC)技术和面向切面编程(AOP)技术的容器框架功能,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级。
Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发。
Spring的本质是管理软件中的对象,即创建对象和维护对象之间的关系。
Spring框架主要由7个定义良好的、相互独立的模块组件构成。
Spring主要功能如图2-2所示:
图2-2Spring系统框架
2.3Hibernate简介
Hibernate[7]是数据访问层的框架,对JDBC进行了封装,是针对数据库访问提出的面向对象的解决方案。
使用Hibernate可以直接访问对象,Hibernate自动将此访问转换成SQL执行,从而达到间接访问数据库的目的,简化了数据访问层的代码开发。
其设计原理是:
Hibernate采用了ORM思想对JDBC进行了封装。
Hibernate框架是ORM思想的一种实现,解决了对象和数据库数据映射问题。
Hibernate提供一系列API,允许我们直接访问实体对象,然后其根据ORM映射关系,转换成SQL并且去执行,从而达到访问数据库的目的。
它对软件分层做了进一步细化,使数据的持久化与业务逻辑和数据库分开,便于软件的后期维护。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate体系结构如图2-2所示:
图2-3Hibernate体系结构
2.4MyEclipse开发工具简介
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.5MySQL简介
MySQL是一个真正的多用户、多线程SQL数据库服务器[8]。
SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。
MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysql和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。
例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL主要目标是快速、健壮和易用。
最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。
MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置的软件中去。
2.6Tomcat服务器简介
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
Tomcat支持最新的Servlet和JSP规范,技术先进,性能稳定,而且免费,因而受到java爱好者和部分运营商的喜爱。
Tomcat是一个小型的轻量级应用服务器[9],在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
Tomcat处理静态HTML的能力不如Apache服务器。
2.7James邮件服务器简介
JavaApache邮件服务器一般是指Apache组织开发的James[10],它是一个轻便的、安全的100%纯Java实现的邮件服务器构造,它可以让我们利用Web服务器的servlets处理邮件。
James是一个邮件应用平台。
Apache组织提供了一套JavaAPI-mailetAPI,利用MailetAPI,可以根据自己的需要用Java语言编写代码来对邮件进行个性化的处理。
Mailet可以生成一个自动回复,更新数据库,阻止垃圾邮件,建立消息档案,或者任何我们能想像的到的功能。
与Mailet密切相关的是消息适配器(Matcher),一个消息适配器可以判断Mailet是否要对服务器中的一个邮件进行处理。
James被设计为实现几个确定的目标。
比如它完全使用Java开发以便适应最大的轻便行;它提供了很多安全特性用于保护服务器的运行环境安全还提供了安全服务。
James是多线程的,它使用了很多Avalon架构提供的功能。
James提供了完善的服务,包括一个完全可以运行的Email服务器。
这些服务主要是有Macther和MailetAPI实现的,这两个API提供了Email检查和处理功能。
James支持标准的email协议(SMTP,POP3,IMAP),另外还提供了一些附加功能,它使用了松散耦合的插件设计方式使消息框架从协议中抽象出来。
这种设计方式非常有用,使我们可以把James当作一个通常的消息服务器或者为即时消息传输提供支持。
2.8电子邮件简介
电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。
电子邮件的应用范围较广,现在一般大型网站的注册等都会使用邮件的方式,它不仅可以传递文字等信息,功能强大的邮箱系统甚至有能传递图片的功能。
当我们发送电子邮件时,这封邮件是由邮件发送服务器发出,并根据收件人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收件人要收取邮件也只能访问这个服务器才能完成。
邮件服务器按通讯协议可以划分为两种类型:
SMTP服务器:
用于替用户发送邮件和接收外面发送给本地用户的邮件,它相当于现实生活中邮件的邮件接收部门(可以接收普通用户投递的邮件,也可以接收其它邮局投递过来的邮件)
POP3/IMAP服务器:
用于帮助用户读取SMTP服务器接收进来的该用户的邮件。
电子邮件的工作原理[12]如图2-5所示:
图2-4电子邮件工作原理
3系统需求分析
需求分析是电子邮箱开发的重要阶段,它是在确定用户需求之下,确定系统的大致方向,完成相应的需求分析报告。
在确定系统的总体结构设计过程中,需要确定应用程序的结构、系统开发环境、系统测试环境和运行环境以及系统的功能模块。
在用户需求调研结束之后,应立即进行用户需求分析。
需求分析的结果反映了用户的时间需求,它将影响到设计的合理性和实用性。
软件需求分析[13]工作是软件生存期中具有决定性意义的一步,只有通过需求分析才能把软件的功能和性能的总体要领描述为具体的软件规程说明,从而奠定软件开发基础。
本系统在开发的过程也应严格遵循这一过程,进行详细的需求分析设计,从而设计出一个优秀的电子邮件系统软件。
3.1可行性分析
可行性研究的目的是使用最小的代价,在尽可能短的时间内确定问题是否能够解决,它的目的不是解决问题,而是确定问题是否值得解决,可行性分析从技术可行性、经济可行性、操作可行性、法律可行性四个方面来考虑。
通过网上资料的搜集,各大网站的市场调查,我发现基于本课题的理论及设计思路是完全有效可行的。
3.1.1经济可行性分析
本系统是基于Java的而Java是开源免费的,另外本系统所采用的Tomcat服务器、James邮件服务器以及MySQL数据库服务器都是开源免费的。
所有用于开发系统的软件都是开源免费的,这就为本系统的开发省去了一笔不小的费用。
在者,虽然后期需要个别人员进行维护管理,但是本系统所带来的经济效益远远低于维护的成本。
因此,本系统很具有开发价值和实际价值,利用现有的计算机设备即可完成本系统开发的正常运行。
3.1.2技术可行性分析
技术可行性分析主要包括硬件、软件和开发人员等几个方面,下面分别对这几方面进行简单的分析:
(1)硬件:
对本次毕业设计的电子邮箱系统,本人是利用自己的笔记本开发制作的,所以我们只需要一款简单的个热电脑都能运行,更不用说在大型的服务器上,显然硬件开发不是主要的问题。
(2)技术:
本系统主要采用的是java的面向对象的编程语言,另外当今流行框架Struts、Spring、Hibernate都是采用Java语言开发的,本系统采用这些框架开发可以明显的提高系统的开发效率同时有效的降低系统开发过程中的错误率。
(3)开发人员:
本款软件的开发人员主要是本人,本人有足够多的时间用在开发本款软件上,同时我也相信通过这几年的学习我可以胜任电子邮件系统的开发任务。
3.1.3操作可行性分析
社会因素可行性主要包括法律因素可行性和用户使用可行性,下面就这两个方面进行简单的分析:
(1)法律因素可行性:
本系统完全是自主开发,开发完成以后也将免费开源,因此任何企业或个人都可以使用该系统而不需要额外支付任何费用。
另外本系统主要是进行电子邮件的收发,并不会违反相关的法律。
(2)用户使用可行性:
本系统主要是针对普通用户开发的,普通计算机用户只要会使用鼠标就能完成简单的电子邮件的收发。
因此用户在使用本系统时不需要专门的培训。
3.1.4法律的可行性分析
本系统不会侵犯他人、集体或国家利益,不存在侵权问题,不违反国家法律,因此,具有法律可行性。
3.2功能需求分析
电子邮件系统是一个免费的普通邮箱系统,适用于所有用户,它主要是通过注册邮箱等一系列的注册功能的实现登录邮箱系统。
用户一旦丢失密码,还可以通过注册时填写的邮箱来进行密码的找回。
(1)用户对联系人的要求。
用户登录系统之后能够查看所有的联系人,并且能够增加、删除、修改联系人信息。
为了管理联系人方便,还可以对联系人进行分组,同时分组后也可以能够进行添加、删除、修改等基本的操作。
以便快速的查找联系人。
(2)用户对自己信息管理的要求。
登录后,用户可以对自己的个人信息进行更改。
(3)用户对发送电子邮件的要求。
用户可以发送邮件,也可以添加附件的发送,还可以从联系人里自行选择联系人。
(4)用户对收取电子邮件的基本要求。
用户可以查看收件箱列表下的任何一条邮件,可以看到该邮件的关键内容。
通过对以上信息分析得出用户能够通过该系统进行的活动,如图3-1所示。
图3-1用户简单用例图
(1)找回密码:
当用户忘记登录密码的时候可以通过该功能找回登录密码。
(2)注册新用户:
用户可以使用该系统注册一个新的系统用户。
(3)管理邮件信息:
用户可以通过该系统查看和发送电子邮件。
(4)管理联系人信息:
通过该功能用户可以方便的管理自己的联系人信息。
(5)管理个人信息:
该功能可以使用户方便的修改自己的个人信息。
通过对于用户功能需求进一步分析可以得出用户详细的用例图如图3-2
所示。
图3-2用户详细用例图
(1)管理个人信息:
可以分为查找个人信息和修改个人信息,查找个人信息使得用户可以方便的查看个人信息。
修改个人信息使用户可以修改自己的个人信息。
(2)管理邮件信息:
可以分为删除电子邮件、发送新邮件和查看电子邮件。
用户在删除邮件时,就执行了删除邮件功能,且删除的邮件不可恢复,查看邮件即从邮件列表下查看,执行查看功能。
(3)管理联系人信息:
联系人的信息管理包含删除、修改、添加和查询具体的联系人信息。
删除联系人可以使用户对于不用的联系人信息进行删除,添加联系人则是当用户需要添加联系人的时候可以执行添加联系人功能。
对于需要修改的联系人则可使用修改联系人信息的功能。
3.3性能需求分析
电子邮件系统主要的用户群是普通用户,所以在设计上必须遵循以下几点准则:
(1)易用性:
电子邮件应该可以传输图片、文字、文档等各种需求,易操作,不需要用户经过专门的培训,就能自己独立使用。
(2)快捷性:
当用户发送完一封电子邮件的时候收件人可以快速的收取到用户发送的电子邮件。
而且当电子邮件发送失败的时候系统也应该给出相应的提示信息。
以确保电子邮件能够快速的发送到收件人的邮箱中。
(3)安全性:
设计电子邮箱时应考虑到邮箱的安全性问题,即用户异地登录时,邮箱应该要记录登陆地以及登录时间,方便用户知晓邮箱的安全性问题。
(4)实时性:
电子邮件系统服务器必须在时间上满足全天候的启动服务,因为不知道接受者是否实时在线。
以确保电子邮件系统用户实时的发送电子邮件。
3.4数据库需求分析
本系统用于存入数据库的信息只有用户的基本信息和联系人的基本信息。
至于邮件的具体存储信息则是由James邮件系统负责完成邮件信息的存储。
对于用户来说用户需要登录系统登录系统时用户需要输入用户账号和用户密码。
密码存储到数据库中是经过加密过后的密码。
存取密码的时候要存取相应的密码加密算法。
(1)用户在填写基本信息的时候要求填入用户别名、性别、安全邮箱地址、安全问题、安全问题答案、家庭住址、电话号码、备注等基本的与用户有关的信息。
当用户忘记登录密码的时候用户可以通过密码找回邮箱或者安全问题重新找回或设置登录密码。
(2)用户的联系人分组要有分组的名称。
同时在填写联系人的时候要填写联系人的姓名、电话、电子邮件地址、家庭住址、生日、性别、备注等基本信息。
(3)一个用户可以拥有多个联系人分组一个联系人分组同时