基于WEB的电子邮件系统邮件协议功能实现.docx
- 文档编号:6271012
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:9
- 大小:37.61KB
基于WEB的电子邮件系统邮件协议功能实现.docx
《基于WEB的电子邮件系统邮件协议功能实现.docx》由会员分享,可在线阅读,更多相关《基于WEB的电子邮件系统邮件协议功能实现.docx(9页珍藏版)》请在冰豆网上搜索。
基于WEB的电子邮件系统邮件协议功能实现
中国地质大学(北京)
成人高等教育
专科实习报告
题目基于WEB的电子邮件系统
邮件协议功能实现
学生姓名武江学号不知道自己不用写
专业计算机科学与技术指导教师
实习(论文)报告写作要求2015年4月10日前必须写好传给中心老师!
实习报告写作要求语言通顺简练、文字书写工整,图表清晰准确,全文篇幅恰当,要求3000字以上。
题目要求:
写计算机科学与技术专业相关题目(可参照题目列表)
实习报告应按统一格式写作,论文包含:
题目→目录→正文→结论→参考文献等.
年月
中文摘要
通过分析JavaMail的实现原理,采用开源框架Struts,Spring,Hibernate和面向对象的方法实现基于WEB的电子邮件系统功能。
论文研究了接收邮件的和解析邮件的工作原理,并阐述了如何实现。
本系统中我主要负责用户注册、登陆、退出、接收站内信、读取站内信、移动站内信、删除站内信、设置其他邮箱、收取其他邮箱邮件、解析其他邮箱邮件、删除其他邮箱邮件、系统管理等功能的实现。
关键词:
JavaMail;Struts;Spring;Hibernate
目录
第1章引言2
1.1基于WEB的电子邮件选题目的和意义3
1.2基于WEB的电子邮件国内外研究现状4
1.3基于WEB的电子邮件系统开发研究方法与策略4
第2章系统开发相关技术4
2.1Struts简介4
2.1.1优点:
4
2.1.2缺点:
4
2.2Spring简介4
2.3Hibernate简介5
2.4MVC简介5
第3章概要设计6
第4章详细设计与编码实现6
4.1程序包的结构6
4.2系统的功能模块的详细设计与实现6
4.2.1用户注册登录模块7
第5章结论8
第6章参考文献9
第7章致谢10
第1章引言
1.1基于WEB的电子邮件选题目的和意义
电子邮件是80年代初新起的一种基于计算机网络技术,采用存储和转发方式传递交换信息的快捷,高效,廉价的电子信息业务,是计算机互联网系统中提供的一项基本服务。
电子邮件作为一种现代化通信工具可以传递文字,图表,声音,电影等各类信息,其传递速度也是传统邮件所无法比拟的。
其主要应用领域是电子邮件服务。
用户将要发送的信息以规定的格式通过通信网络发送到收信人的信箱中,信箱实际上与通信网络相连的计算机存储器,收信人可以通过通信网络随时打开自己的信箱,看到别人发来的信件,同时可以利用自己的信箱写回信或发送信件。
电子邮件服务在信息的交流,传播,检索,管理等领域的应用越来越广泛,随着电子邮件数量的增加,需求多样化,电子邮件技术的发展趋势也越趋于更细致化,更复杂化。
作为电子邮件的信息服务平台的邮件系统使整个电子邮件世界的核心,也是个性化增值信息服务的关键技术。
电子邮件系统是在模拟邮政系统基础上,汲取电报,电传,传真技术和计算机信息技术的精华,利于处处转发的通信方式,在开放系统互联国际标准中形成为网络用于传送消息和文件提供一个可靠,异步,垮平台的机制,可以实现点到点和点到多结点上的网络用户间的通信。
电子邮件系统经过几十年的发展,已经形成了完善的技术体系。
电子邮件系统的发展经历了远程登陆模式,专用客服端模式,基于WEB的模式,目前正向WAP模式迁移。
随着互联网的飞速发展,电子邮件的用户数量也业务量的急增,种类繁多的商业增值服务需求以及用户对服务种类的智能化需求,向负载它们的电子邮件系统服务的种类,容量,技术支持,付费方式等方面提出了挑战。
邮件服务系统在保留了电子邮件系统最初的收发邮件,邮件存储等基本功能的同时,融入了最新的计算机与网络技术,是电子邮件系统有了全新的改观。
电子邮件已经成为人们喜爱的通信方式之一,是信息交流的重要手段之一,也是单位加强信息交流的重要手段。
在我国信息化的过程中,邮件系统已经成为信息系统中必不可少的一部分。
传统的邮件系统分为邮件服务器和客服端,即Client/Server(C/S)结构。
用户通过邮件客户端来接受和发送邮件。
近年来随着web技术的不断成熟,采用浏览器和服务器Browser/Server形式的软件层出不穷,并在实际应用中得到了良好的效果。
B/S结构同传统的C/S结构相比具有对客户机的低要求,较低的开发成本,方便的维护,软件的高复用性等优点。
因此,系统采用B/S结构,即用户以web方式进行接收和发送邮件。
1.2基于WEB的电子邮件国内外研究现状
国内很多企事业单位都有自己的邮件服务系统,免费邮箱有163,新浪等,用户对电子邮件安全性、可靠性及功能上的要求也在不断提高。
因此,电子邮件服务供应商必须提供更安全、更可靠、功能更丰富的服务,才能发展业务,吸引用户,从众多竞争者中脱颖而出。
如何构建高效、稳定、安全、易用、可扩展、功能丰富的电子邮件系统是众多电信运营商、ISP(InternetServiceProvider)、ICP(InternetContentProvider)共同面临的问题。
邮件服务器供应商致力于以下几个方面提高邮件服务功能:
(1)增加多用户模板的功能,以满足不同用户对界面的不同喜好,如提供多种邮件webmail页面风格,提供个性化模板和多风格信纸,用户可以定义邮件系统界面等。
(2)增加防病毒模块,以增加E-mail系统整体的安全性,利用邮件加密和邮件签名等方法进行邮件传送。
在服务器端使用防病毒模块。
将电子邮件系统向统一信息系统发展,加入最新资讯,多媒体等功能。
反垃圾邮件为用户提供反垃圾邮件的多种过滤器,充分保证用户收到最低限度的垃圾邮件骚扰。
1.3基于WEB的电子邮件系统开发研究方法与策略
(1)查看163邮箱、qq邮箱等,研究它们的实现方式,结合自己要实现的系统找到合适的切入点。
(2)本课题要求对MVC有一定的掌握,熟悉Struts、Spring、Hibernate、MySQL、Tomcat的使用,以及有较强的自学能力和熟练使用MyElipse开发环境的能力。
(3)对于技术难题先查资料,找不到答案询问同学和老师,请求帮助。
第2章系统开发相关技术
2.1Struts简介
Struts只是一个MVC框架(Framework),用于快速开发JavaWeb应用。
Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(CustomTag)。
但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。
2.1.1优点:
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。
使开发者能更深入的了解其内部实现机制。
Taglib和页面导航。
Taglib是Struts的标记库,灵活动用,能大大提高开发效率。
另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。
通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。
尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
2.1.2缺点:
Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。
Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。
虽然它现在还有不少缺点,但它是一种非常优秀的J2EEMVC实现方式。
2.2Spring简介
Spring是一个轻型容器(light-weightcontainer),其核心是Bean工厂(BeanFactory),用以构造我们所需要的M(Model)。
在此基础之上,Spring提供了AOP(Aspect-OrientedProgramming,面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;WebMVC和SpringWeb提供了JavaWeb应用的框架或与其他流行的Web框架进行集成。
2.3Hibernate简介
Hibernate顾名思义冬眠的意思,相信它的创造者的用意在于用这个工具将数据库连接持久化层冬眠,关于Hibernate网上争论很多,有人说其为工具,有人说其为框架,我相信一个人有一个人理解问题的角度,只要处理问题的方法正确就可以了。
Hibernate是采用ORM映射机制的持久层开发工具,它是JAVA应用和关系数据库之前的桥梁,负责JAVA对象和关系数据之间的映射。
内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API,在JAVA应用中使用到Hibernate包含如下步骤。
(1)创建Hibernate配置文件
(2)创建持久类
(3)创建对象-关系-映射文件
(4)通过HibernateAPI编写访问数据库的代码
如果想了解Hibernate或者是要学习它的人必须要首先了解两个比较重要的概念:
(1)POJO:
在Hibernate中理解为数据库表所对应的DomainObject,如果从子面上理解就是无格式普通JAVA对象,简单的理解就是一个不包含逻辑代码的值对象。
从数据层面上看,POJO作为数据实体的对象化表现形式,也成为实体。
(2)ORM:
ORM可以理解成一种机制也可以理解成一种模式,对象-关系-映射,我个人觉得如果想理解它可以和MVC比较,模型-视图-控制。
ORM是把对象和关系数据库映射到一起,而MVC是把视图和模型控制在一起。
创建Hibernate的配置文件Hibernate从中读取和数据库连接的相关信息,这个配置文件应该位于应用的classpath中,主要有两种形式XML格式和.Properteis信息文件。
创建持久化类就是指需要被Hibernate持久化到数据库中的类,持久化类通常都是模型中的实体类,符合JavaBean的规范,包含一些属性,以及与之对应的get、set方法。
2.4MVC简介
MVC是三个单词的缩写,分别为:
模型(Model),视图(View)和控制Controller)。
MVC模式的目的就是实现Web系统的职能分工。
Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。
View层用于与用户的交互,通常用JSP来实现。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
第3章概要设计
基于Web的电子邮件系统概要设计由我的搭档实现。
第4章详细设计与编码实现
4.1程序包的结构
com.mail.dao中是所有接口
com.mail.filter中是过滤器
com.mail.impl中是所有接口的实现
com.mail.othermail中是管理其他邮箱
com.mail.page中是分页的处理类
com.mail.struts.action中是业务逻辑
com.mail.struts.form中是form表单
com.mail.util中是工具类
com.mail.vo中是实体类
4.2系统的功能模块的详细设计与实现
4.2.1用户注册登录模块
(1)用户注册登陆模块详细设计
公共Action如下图所示,所有的Action都继承自BaseAction,在Action中使用super.getCurrentUser()可以从session中获取用户的实例。
图4-1公共Action
Fig.4-1PublicAction
用户实体类User如下图所示
图4-2用户实体类
Fig.4-2theentityofUser
用户首先注册然后登陆,登陆后可以修改密码,用户注册登陆模块的UserAction如下图所示
图4-3用户Action
Fig.4-3theactionofUserAction
用户注册登陆模块Action中的方法实现调用接口IUserDAO中的方法,IUserDAO接口中的方法由IUserDAOImpl具体实现,IUserDAO如下图所示
图4-4用户模块接口
Fig.4-4theinterfaceofusermodule
(2)用户注册登陆模块的实现方式
A.用户注册
用户打开网站即进入用户登陆页面,如果用户没有注册那么注册调用UserAction中的register(),将注册信息封装到实体User的一个对象中,通过IUserDAO的register()保存这个对象,持久化到数据库中。
B.用户登陆
用户成功注册后输入正确的用户名和密码就可以登陆系统,调用UserAction中的login()方法,将登陆的用户名和密码传递给IUserDAO中login(),判断用户是否存在,如果用户存在并且密码正确那就向session中写入user这个实例,跳转到邮箱主页,如果用户不存在或密码不正确提示用户,让用户重新输入。
C.用户退出
调用UserAction中的logout()方法,从session中删除当前用户实例,返回到用户登陆页面。
D.找回密码
当用户忘记密码的时候点击找回密码调用UserAction中的findPassword()将你的用户名传递进去,然后调用IUserDAO中的findUser(StringuserName)查询数据库这个用户是否存在,如果存在查询出密码保护问题和答案,将密码保护问题显示给用户,让用户输入答案,如果用户的答案和数据库中的答案一致那么调用IUserDAO中的findPassword()方法更新用户密码。
E.修改密码
用户登陆成功后可以修改用户密码,调用UserAction中的updatePasswordInput转向到更新密码页面,更新密码调用UserAction中的updatePassword()。
第5章结论
本文详细阐述了基于WEB的电子邮件系统的收件原理和系统功能的如何实现,本系统采用的当前流行的SSH框架来搭建站内信的实现,本文重点讨论了邮件的收取和解析的理论以及系统中用到的技术,详细描述了用户注册登陆模块、站内接收邮件模块、其他邮箱模块、系统管理模块的详细设计和实现方式。
本文研究在B/S模式下的邮件接收机制,研究了邮件协议和其他邮箱邮件接收算法以及功能的实现方式等,采用了两种机制接收邮件,第一种是将自己邮件地址对应的邮件服务器上的邮件下载到本系统服务器,然后解析邮件,第二种是直接读取服务器上的邮件,两种方法各有优缺点,第一种方法缺点有安全问题,如何保证用户的邮件在服务器上安全存贮不被泄露;如何保证本系统所运行的环境不被病毒侵蚀;还有并发用户访问系统负载和性能的问题;多用户大容量存贮问题等,这些都有解决的方法,需要硬件软件和资金的投入。
第二种方法的缺点有速度的问题,虽然解决了前面第一种方式的缺点,但是读取邮件列表和邮件都要登陆其他邮件服务器去请求资源,然后传输过来,我测试了这个速度,如果读取10封邮件列表,只读取发件人、主题、发件时间,需要12秒钟。
用户打开一个网页等待3秒就会产生抵触情绪,12秒的时间太长,显然不是拥有很好的用户体验度。
这种方式不可取。
我研究了QQ邮箱的实现方式,它会自动接收你的邮件到它的服务器,你也可以手动接收,在QQ邮箱中对于你刚刚添加了其他邮箱,QQ邮箱是不能立即将该邮箱下的全部邮件下载到它的服务器,它有自己的算法下载邮件,我每隔一段时间登陆QQ邮箱,邮箱中的邮件数量都有增长。
本系统未完善之处是其他邮件自动接收算法,在以后的研究中将针对这块进行研究和探讨,使系统更加完善。
系统未来新功能:
考虑用户邮件数过多,用户搜索邮件速度慢的问题,现在实现邮件搜索还只能搜索标题,也需要系统开销去解析邮件标题和查找邮件,如果多用户搜索邮件会造成系统性能下降,系统突破不了瓶颈。
所以考虑采用开源的全文检索工具Lucene,当系统负载不是很大的时候自动解析邮件为每个用户建立邮件索引,存放邮件为静态页面文件,可以设置索引有效期,对于用户不经常搜索访问的邮件删除索引,节省存贮空间。
这样用户就可以全文检索邮件,查找邮件非常方便。
通过毕业设计学会了很多软件设计的方法,并对以前学过的东西有了新的认识;但同时由于时间的有限,本软件还有很多功能没有完全实现,而且还可以对软件进行扩展。
希望在以后继续努力对本系统进行完善。
第6章参考文献
[1]牛尧,章文毅.基JavaMail的邮件管理系统的设计.科学技术与工程,2008.8:
4191-4193.
[2]钟珞,刘玲,夏红霞.基于JavaMailAPI的Web邮件系统开发.武汉理工大学学报,2006,(6):
84-86.
[3]周红静.基于JaVaMail的Web邮件客户端的设计与实现.计算机系统应用,2008,(6):
89-91
[4]陈明建,刘宝旭,许榕生.电子邮件协议还原及分析系统的设计与实现.
[5]KevinJohnson.IntemetE—mail协议开发指南[M].科欣翻译组.北京:
机械工业出版社,2000.124.128.
[6]程锦章.电子邮件系统的应用及其在我国的发展.江西通信科技2004.94-102.
[7]师雪霖,赵英.用Java实现SMTP服务器通信发送电子邮件.计算机应用.2000.(9).58-60.
[8]邱哲,马斗.Struts设计开发大全[M].北京:
清华大学出版社,2006.2.
[9]郭锋.Spring从入门到精通清华大学出版社[M].2006.
[10]RODJOHNSON[等].ProfessionalJavadevelopmentwiththeSpringframework[D].机械工业出版社2006.
[11]陈天河等.Struts,Hibernate,Spring集成开发宝典[M].电子工业出版社2007.
[12]王珊,萨师煊.数据库系统概论[M].高等教育出版社2006.9:
199~230
[13]百忠建,彭德忠,吴磊.软件工程-方法与实践[M].电子工业出版社2008.6:
92~100.
[14]蔡剑,景楠.JavaWeb应用开发[M].北京:
高等教育出版社,2005.1.
[15]Hibernate3Documentation,http:
//www.hibernate.org/
[16] CraigWalls,RyanBreidenbach.SpringinAction.人民邮电出版社,2006.3.
[17]Struts1.3.10Documentation,http:
//struts.apache.org/1.3.10/index.html
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 WEB 电子邮件 系统 邮件 协议 功能 实现