毕业设计开题报告计算机科学与技术基于Java的电子邮件的收发系统的设计与实现一、选题的背景、意义1、电子邮件的历史背景电子邮件(E-mai1)又称电子信箱、电子邮政,它是—种用现代网络技术提供信息交换的通信方式。
它是因特网上使用最普遍的一项服务。
这种非交互式的通信方式,加速了信息的交流及数据传送,它是—个简易、快速的方法。
通过连接全世界的Internet,实现各类信息的传送、接收、存贮等处理,将邮件送到世界的各个角落。
电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图片等不同类型的信息。
2、电子邮件的工作原理电子邮件是一种存储转发式的服务,这正是电子信箱系统的核心。
利用存储转发可以实现非实时通信,属异步通信方式。
即邮件发送者可以随时随地发送邮件,不需要接收者同时在场。
即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。
收信人可以在他认为方便的时候收取信件,不受时间、地点的限制。
在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则是收信人从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的—个实体。
因为电子邮件是通过邮件服务器(mai1 server)来完成发送和接收的。
通常邮件服务器是安装有linux系统或者windows系统的计算机,它们提供24小时的电子邮件服务,用户只要向邮件服务器的管理人员申请—个信箱帐号,就可使用这项快速的邮件服务。
3、电子邮件系统的发展趋势电子邮件系统经过若干年的发展,已经形成了较为完善的技术体系。
邮件服务器系统在保留了最初的收发邮件、存储邮件等基本功能的同时,结合了最新的计算机与网络技术,使电子邮件系统得到了全新的改观。
邮件技术的发展趋势如下:(1)Web邮件技术随着中国Internet应用的日益普及和逐渐深入,互联网用户数量仍在不断增长。
但是对于电子邮件系统来说,单纯使用邮件客户端程序进行电子邮件的收发已经远远不能满足用户移动办公的需要。
此时,Web邮件技术的出现,彻底解决了用户办公的需要,使得用户可以在任何地方使用浏览器直接登录邮件服务器完成邮件的收发工作,而不需要配置邮件客户端程序。
(2)Linux邮件服务器Linux操作系统作为目前应用最为广泛的开源操作系统,具有性能稳定、安全性较高和价格低廉等特点。
使用Linux作为邮件服务器的架设平台,主要是可以与Sendmail(邮件服务器软件)、MySQL(数据库软件)等开源软件共同使用,在满足用户需求的同时降低了系统的成本。
(3)安全防护现在的邮件服务器在安全技术上有了较大的提高,包括数据传输加密、身份认证、邮件病毒过滤、垃圾邮件过滤、安全审计等的多项安全防护技术在邮件服务器中都得到了比较广泛的应用。
(4)按需定制[1]针对客户的独特环境,邮件产品设计方可提供系统结构搭建和系统迁移等多项定制化服务,满足不同客户的复杂应用需求。
这种解决方案往往具备强大的升级能力,在满足客户当前具体需求的同时,能够随客户的业务增长而扩展各种新型服务。
(5)远程监控和性能调整由于目前许多邮件服务器处于电信托管等方式,即服务器放置于电信的公共机房中,不太可能经常进行本地操作,因此目前邮件服务器均提供了远程邮件监控的功能。
我们可以通过登陆Web 管理端来监控邮件服务器的工作状态,包括在线用户数、邮件处理速度和数量、硬盘空间使用率等,并且可以随时对出现的流量高峰和网络入侵等突发状况进行远程处理。
(6)无限的可扩展能力电子邮件系统应该具备无限的扩展能力。
因特网的一个特性是变化无常,我们需要应对随时而来的信息高峰。
因此,我们需要电子邮件系统具有无限的可扩展能力,这个能力主要体现在邮件的存储能力和邮件的处理速度上。
为了使邮件的处理能力可以无限扩展,我们需要引入集群和负载均衡技术,使应用平台可以在需要的时候无限扩充。
当遇到高峰时段时多个邮件服务器同时工作,减轻单个邮件服务器的处理压力,满足长期或临时的业务需要。
为了便于邮件存储,需要设计一个高性能的邮件存储解决方案,最为理想的应该是将SAN(storage area network存储区域网络)技术引入到邮件服务器领域,在扩大邮件存储容量的同时SAN技术同时对数据进行了Raid保护,使用户的信息不易丢失。
总之,电子邮件是一项系统工程,需要网络、数据库、数据存储、操作系统等技术的支持;因此电子邮件系统的每一次技术革新都是在其他技术发展的基础之上完成的。
二、研究的基本内容与拟解决的主要问题随着网络的日益普及,互联网大大改变了人们的工作和生活方式,作为互联网上应用最为广泛的服务之一,电子邮件系统给予了人们别样的感受。
本系统使用Java语言来设计电子邮件系统,将E-mail系统和web技术相结合,生成一种界面友好、操作方便、易扩充的邮件收发系统。
用户通过浏览器直接访问电子邮件系统,无须进行任何的配置,非常方便。
该系统开发完成后,可实现以下主要功能:1、用户注册新用户根据自己的喜好申请一个邮箱名,在注册成功后将会自动获得100MB的邮箱空间。
2、发信和收信用户既可以向单个收信人发送邮件,也可以向多个收信人同时发送邮件,实现邮件的群发功能。
邮件不仅可以包含文本内容,也可以包含图片、音频、视频等多媒体信息。
在邮件成功发送到收件人的邮箱后,系统将告知用户邮件已成功发送的信息。
若由于网络拥堵或者其它原因致使邮件不能发送到收件人的邮箱,系统将提示邮件发送失败并将邮件的副本放入草稿箱,以备用户下次发送时使用。
3、即时保存在用户编写邮件的过程中,可能会遇到计算机断电、浏览器窗口意外关闭等突发状况。
为了使这些状况对于用户的损失降到最低程度,本系统将对用户的页面数据每隔三十秒进行自动保存。
在发生上述突发状况后,用户可以到草稿箱中寻找最近一次保存的文档,并再次进行编辑。
4、联系人的编辑与查找用户可以对联系人的信息进行编辑并分类。
在联系人过多时,可以使用查找功能快速方便的找到所需要的用户。
5、界面自定义功能用户可以根据自己的喜好选择一款适合自己的邮箱界面,并且可以随时更换。
6、邮箱扩容当用户认为邮箱的大小不足以满足自己的需要时,可以向系统管理员申请扩容。
三、研究的方法与技术路线、研究难点,预期达到的目标1、技术路线在开发本系统的过程中,将使用html、jsp、css、jdbc、servlet等一系列的web编程技术,在开发过程中遵循一般web应用程序的开发步骤[2],具体步骤如下:(1)需求分析[3]针对邮件系统的特点,制定出一个周全的功能清单。
比如有上面所讲到的用户注册、用户登录、收信发信等若干功能。
(2)数据库设计在本系统中,我将采用mysql数据库[4]。
目前我考虑到的将要用到的表有用户个人信息表、用户联系人表以及用户登录信息表。
(3)开发框架选择在本系统设计中,我将采用MVC开发模式[5]来完成邮箱系统的设计,该模式的工作流程如图1所示。
(4)静态页面设计首先我将画出页面流程图如图2所示,根据流程图我将使用html设计页面原型,用css完成页面的渲染,做出完整的页面布局。
这一步骤将反复进行多次,每次都把设计更加细化,最终各个页面间能正确跳转,颜色、字体等各部分都比较美观,提供一个良好的用户界面。
(5)动态页面设计在静态页面的基础上,对于某些需要动态改变的部分,将能完成该功能的jsp代码嵌入其中。
测试无错误后开始下一步(6)后台代码设计这是本系统最核心的部分,在这个过程中我将使用servlet处理客户请求并且生成动态Web 网页[6]。
这部分代码的优化有助于邮件的快速转发,需要付出较大的努力。
(7)JavaScript代码设计[7]编写JavaScript代码来完成对数据的验证,输入不合法等错误提示,在数据被提交到服务器前完成基本的校验,减轻服务器的压力。
(8)总体测试运行系统,对于系统中存在的不足逐步改进,最终完善整个系统。
2、关键技术介绍(1)ServletServlet是作用于服务器端的java应用程序,它的主要功能在于交互式地浏览和修改数据,生成动态Web内容。
其工作过程如下:a)客户端发送请求至服务器端b)服务器将请求信息送至servletc)Servlet生成相应内容并将其传给服务器d)服务器将相应返回给客户端(2)JspJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它允许用户按照常规方法编写正常的HTML代码,也可以嵌入java代码生成动态内容。
Jsp技术可以把界面的开发与程序逻辑的开发分离开,使得开发人员的分工更加明确,页面设计者可以修改内容的现实而不影响逻辑,应用程序的开发者修改逻辑而不影响内容显示。
Jsp生成的组件是可重用的,开发人员可以共享和交换组件,有效的提高了应用程序的开发效率,加速项目的总体开发进程[8]。
3、研究难点(1)Javamail[9]的使用这个api对我而言是个全新的技术,其中的许多方法以前都没有接触过。
对于利用javamail 来实现邮件发送的步骤上还需要认真学习。
(2)数据加密的方法在以往的课程设计中,我们只需要设计出单机上的应用程序,不必考虑复杂的网络环境对于用户信息保密性的影响。
本次系统设计中,将尝试对用户数据进行加密之后再发送,以达到安全性的目的,这也是需要认真学习的一方面。
(3)MVC模型的理解对于设计中采用的mvc模型,我需要一定的时间去考虑如何将其运用到我的应用程序中,并且对于其中的模型和视图要严格的分离,这样同时也会给调试带来一定的困难。
这点必须十分小心。
(4)Linux系统磁盘配额[10]由于需要对用户的空间进行管理并支持用户空间扩容,因此linux系统的磁盘配额操作是非常必要的。
它的难点在于对于linux系统分区的理解并且需要熟悉如何操作。
四、论文详细工作进度和安排第七学期第10周至第18周(2011年01月06日前):文献检索和资料收集,完成毕业论文(设计)文献综述、开题报告和外文翻译;第八学期第1周至第3周(2011年03月11日前):撰写论文提纲,完成毕业论文(设计)初稿、需求分析和概要设计;第八学期第4周至第12周(2011年05月13日前):详细设计、系统调试、和毕业论文(设计)完成定稿;第八学期第13周(2011年05月20日前):完成应用软件系统的设计和毕业论文(设计)送指导老师和评阅老师评阅,准备答辩;第八学期第14周:参加毕业论文(设计)答辩五、主要参考文献[1] 宋文著.按需定制成为电子邮件发展趋势[J].国际商报.2003.[2] 李芝兴,杨瑞龙著.Java EE Web编程[M].北京:机械工业出版社.2010.[3] Stephen R.Schach著.Object-oriented software engineer[M].北京:China Machine Press.2009.[4] Rick F. van der Lans著许杰星,李强等译.mysql开发者[M].北京:机械工业出版社.2009.[5] 孟宗强,宗平.J2EE与三层Web应用开发[J].计算机与现代化.2004.[6] Bryan Basham,Kathy Sierra,Bert Bates著.Head First Servlet & JSP[M].北京:中国电力出版社.2006.[7] Tom Negrino,Dori Smith著;陈剑瓯等译.JavaScript基础教程[M].北京:人民邮电出版社.2009.[8] 郑阿奇著;JSP实用教程[M].北京:电子工业出版社.2008.[9] 张孝祥著.java邮件开发详解[M].北京:电子工业出版社.2007.[10] Evi Nemeth,Garth Snyder,Trent R.Hein著张辉译.Linux系统管理技术手册[M].人民邮电出版社.2003.[11] 中国互联网信息中心.中国互联网络发展状况统计报告. /html /Dir/2010/01/15/5767.htm .2010.1.[12] 邱宏茂,许朝阳,盖磊.基于Javamail的Webmail系统的实现[J].计算机应用与软件.2005.[13] Maydene Fisher,Jon Ellis,Jonathan Bruce著.JDBC API Tutorial and Reference[M].北京:清华大学出版社.2004.[14] 曹麒麟,张千里著.垃圾邮件与反垃圾邮件技术[M].北京:人民邮电出版社.2003.[15] 任泰明著.基于B/S结构的软件开发技术[M].西安:西安电子科技大学出版社.2006.[16] John Hunt著.JavaMail API:The Mail is in.[17] California State University.Cascading Style Sheet:An Introduction.[18] W.Richard Stevens著范建华,张涛等译.TCP/IP详解卷1:协议[M].北京:机械工业出版社.2009.[19] Sun Microsystems,Inc.JavaMail API Design Specification Version 1.4. http://java.sun. com/pmduets/javamail/.。