1、 本科 毕业 设计 (论文 ) (二零 届) 基于 java 的电子邮件收发系统的设计与实现 所在学院 专业班级 计算机科学与技术 学生姓名 学号 指导教师 职称 完成日期 年 月 摘要: 电子邮件发展的初期,人们只能通过 outlook、 foxmail 等客户端软件来完成邮件的收发。随着移动办公的出 现,人们发现普通的 C/S 模式结构的电子邮件系统已不能满足需要,基于 B/S 结构的电子邮件系统在遵循邮件协议的前提下,以其快捷、方便的优点吸引了大量的用户。在这种模式下,用户只需要安装 web 浏览器这一最常用的软件,通过登陆到邮箱的网页,即可完成邮件的收发及其他功能。 关键词: 电子邮件
2、;邮件协议; B/S Design and Implementation of Email System based on Java Abstract: At the beginning of the emails developing,people send and receive emails by using client software, such as outlook、 foxmail and so on。 With the appearance of mobile office, people find common email system couldt satisfied t
3、heir requirements,on the premise of following the mail protocols,the email system which is based on the Brower/Server structure attracts many users by its advantages such as fast and convenient. In this kind of struct,users only need to install brower,a very common software,by login in the webpage o
4、f mail system,then he can finish reciving or sending mails and other functions. Keywords: email; mail protocol; brower/server 目 录 1 绪论 . 1 1.1 课题的研究背景 . 1 1.1.1 电子邮件的历史背景 . 1 1.1.2 邮件系统的工作原理 . 1 1.2 课题的研究内容 . 1 1.3 论文的内容组织 . 2 2 基础知识简介 . 3 2.1 HTML 简介 . 3 2.2 JSP . 3 2.3 Servlet . 4 2.4 JavaMail . 4
5、 3 服务器环境搭建 . 5 3.1 java 环境搭建 . 5 3.2 apache 服务器 . 5 3.2.1 Apache 简介 . 5 3.2.2 Apache 的安装与调试 . 6 3.3 tomcat 服务器 . 7 3.3.1 Tomcat 简介 . 7 3.3.2 Tomcat 的安装与调试 . 7 3.4 整合 apache 与 tomcat . 8 3.4.1 为什么要将两者进行整合 . 8 3.4.2 整合的步骤与测试 . 8 3.5 sendmail(SMTP 服务器 ) . 10 3.5.1 Sendmail 简介 . 10 3.5.2 Sendmail 服务器的安装
6、与调试 . 11 3.6 dovecot(POP3 服务器 ) . 12 3.7 DNS 服务器 . 13 3.8 服务器搭建部分总结 . 14 4 系统分析 . 15 4.1 需求分析 . 15 4.2 可行性分析 . 15 4.2.1 平台可行性 . 15 4.2.2 技术可行性 . 16 4.2.3 实用性 . 16 5 数据库设计 . 17 5.1 E-R 图设计 . 17 5.2 数据表的逻辑结构设计 . 18 5.3 表间的关系 . 19 6 系统设计与实现 . 21 6.1 服务器上用户家目录设计 . 21 6.2 登录模块设计 . 21 6.2.1 新用户注册 . 21 6.2
7、.2 已有账号的用户的登录 . 21 6.3 发信模块设计 . 22 6.4 收信模块设计 . 23 6.4.1 邮件分类 . 23 6.4.2 读取收件箱和垃圾箱中的邮件 . 24 6.4.3 读取已发送和草稿箱内的邮件 . 25 6.5 普通邮件的处理 . 25 6.6 含附件的邮件的处理 . 25 6.7 联系人模块 . 26 6.8 中文乱码问题的总结 . 27 6.8.1 页面中文乱码 . 28 6.8.2 数据库中文乱码 . 28 6.8.3 URL 中含有中文参数值时乱码 . 28 6.8.4 附件名为中文时乱码 . 28 7 系统测试与 评价 . 30 7.1 系统测试的原则及
8、方法 . 30 7.2 测试与评价 . 30 7.2.1 单元测试 . 30 7.2.2 集成测试 . 32 7.2.3 系统测试与评价 . 32 8 总结及展望 . 34 致 谢 . 错误 !未定义书签。 参考文献 . 35 1 1 绪论 1.1 课题的研究背景 1.1.1 电子邮件的历史背景 1 电子邮件( E-mail)又称电子信箱、电子邮政,它是 种用现代网络技术提供信息交换的通信方式 ,不只局限于信件的传递,还可用来传递文件、声音及图片等不同类型的信息,是因特网 上使用最普遍的一项服务。通过连接全世界的 Internet,实现各类信息的传送、接收、存储等处理,将邮件送到世界各地的各个
9、角落,这种非交互式的通信方式,加速了信息的交流和数据的传送。 1.1.2 邮件系统的工作原理 电子邮件是一种存储转发式的服务,这正是电子信箱系统的核心。利用存储转发可以实现非实时通信,属异步通信方式。即邮件发送者可以随时随地发送邮件,不需要接收者同时在场。即使对方现在不在,仍可将邮件立刻送到对方的信箱内,存储在对方的电子邮箱中。收信人可以在他认为方便的时候收取信件,不受时间、地点的限制。 在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则是收信人从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的 个实体。电子邮件是通过邮件服务器来完成发送和接收的,通常邮件服务器是安装有
10、 linux系统或者 windows 系统的计算机,它们提供 24 小时的电子邮件服务,用户只要向邮件服务器的管理人员申请 个信箱帐号,就可使用这项快速的邮件服务。 1.2 课题的研究内容 随着网络的日益普及,互联网大大改变了人们的工作和生活方式,作为互联网上应用最为广泛的服务之一,电子邮件系统给予了人们别样 的感受。本系统使用 Java 语言来设计电子邮件系统,将 E-mail 系统和 web 技术相结合,生成一种界面友好、操作方便、易扩充的邮件收发系统。用户通过浏览器直接访问电子邮件系统,无须进行任何配置。该系统开发完成后,主要实现以下功能: 1) 用户注册 新用户根据自己的喜好申请一个邮
11、箱名,在注册成功后将会自动获得 100MB 的邮箱空间。 2) 发信和收信 用户既可以向单个收信人发送邮件,也可以向多个收信人同时发送邮件,实现邮件的群发功能。邮件不仅可以包含文本内容,也可以包含图片、音频、视频等多媒体信息。在邮件成功发送 到收件人的邮箱后,系统将告知用户邮件已成功发送的信息。若由于网络拥堵或者其它原因致使邮件不能发送到收件人的邮箱,系统将提示邮件发送失败,并将邮件的副本放入草稿箱,以备用户下次发送时使用。 2 3) 即时保存 在用户编写邮件的过程中,可能会遇到计算机断电、浏览器窗口意外关闭等突发状况。为了使这些状况对于用户的损失降到最低程度,系统将对用户的页面数据每隔三十秒
12、进行自动保存。在发生上述突发状况后,用户可以到草稿箱中寻找最近一次保存的文档,并再次进行编辑。 4) 联系人的编辑与查找 用户可以对联系人的信息进行编辑并分类 。在联系人过多时,可以使用查找功能快速方便的找到所需要的用户。 5) 界面自定义功能 用户可以根据自己的喜好选择一款适合自己的邮箱界面,并且可以随时更换。 6) 邮箱扩容 当用户认为邮箱的大小不足以满足自己的需要时,可以向系统管理员申请扩容。 1.3 论文的内容组织 论文共由七章组成。第 1 章绪论,主要介绍系统的研究背景、研究目的和意义、研究内容以及研究方法;第 2 章基础知识简介,主要介绍系统开发过程中会用到的相关技术,主要有系统的
13、开发平台 J2EE,邮件服务器的介绍包括用于发信的 smtp 服务器 sendmail 和用于收信的 POP3 服务器dovecot,还介绍了相关的 数据库技术;第 3 章系统分析,对系统总体功能进行阐述,说明系统要实现的各个基本功能模块,并对系统的可行性进行分析;第 4 章概要设计,介绍系统的总体框架及相关数据结构;第 5 章系统设计与实现,主要介绍系统的硬、软件环境、界面设计、功能实现、主要技术难点;第 6 章系统测试与评价,主要涉及系统的测试方法、数据,结论以及对系统的性能进行评价;第 7 章总结与展望,主要阐述了本系统所完成的研究工作和存在的不足,以及希望在今后可以完善的地方。 3 2
14、 基础知识简介 2.1 HTML 简介 HTML(Hyper Text Markup Language)是一种超文本标记语言,这种语言是由很多 HTML 标签组成的,用最简单的记事本工具即可编写 HTML 网页。而以 HTML 编写的这种超文本文档就称为 HTML文档。 HTML 是互联网上各种浏览器所识别的语言,这种语言所编写的文档一般以 html 或 htm 为扩展名。 HTML 采用超集方式进行版本升级,因此更加灵活方便。此外,可扩展性也是 HTML 的一大特点, HTML 采取子类元素的方式,为系统扩展带来保证。 HTML 具有平台无关性,即不仅可以在台式计算机 上上网,而且可以在掌上
15、电脑、手机等终端上上网,这更加证明了 HTML 是无处不在的。 HTML 的主要结构可划分为 3 个部分: 1) HTML 标签:代表整篇文档是一个网页文件。 2) HEAD 标签:用于描述网页的头部信息。 3) BODY 标签:用于描述要显示的内容信息。 2.2 JSP JSP (java Server Pages)是服务器端的脚本语言,以 Java 和 Servlet 为基础,是一种通过在HTML 页面中加入 Java 语言生成动态页面的技术 2。 JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成,服 务器在页面被客户端所请求后对这些 Java 代码进行处理,然后将生成的
16、HTML 页面返回给客户端的浏览器。 JSP 的执行过程是:客户端请求 JSP 页面 JSP Parser 解析 *.jsp,编译为 *.java javac 命令编译成 *.class 执行 class 文件 响应 返回结果给客户端。 JSP 代码中包含 JSP 和 Template data 两类元素。 Template data 是 JSP 引擎不处理的部分,即 JSP 引擎会把标记在 以外的部分直接传递出去而不进行任何处理。 JSP 在第一次被访问或修改后都会调用 JSP Parser 将 *.jsp 文件编译成 servlet 程序,所以速度比较慢。 JSP 有如下优点: 1) 代码
17、的执行效率高,即一次编译,多次、多处运行。 当 JSP 第一次被请求时, JSP 页面转换成 servlet,然后被编译成 .calss 文件,在这以后,除非页面有改动或 Web 服务器被重新启动,否则当再有客户请求该 JSP 页面时, JSP 页面不被重新编译,而是直接执行已编译好的 .class 文件,因此代码执行效率高。 2) 组件的重用性 4 可重用的、跨平台的 JavaBeans 和 EJB( Enterprise JavaBeans)组件,为 JSP 程序的开发提供方便,我们可以将复杂的处理程序(如页面中需要显示的动态内容及对数据库的操作)放到组件中。 3) 内容的生成和显示分离
18、由于使用了 JSP 标识或者脚本来生成页面上的动态内容,因此,生成动态内容的语句一般被封装在 JavaBean 组件、 EJB 组件或 JSP 脚本段中。这样,页面的设计人员和页面的编程人员可以同步进行。同时在客户端通过查看源文件,看不到 JSP 标识的语句,更看不到 JavaBean 和 EJB 组件,也可以保护源程序的代码。 2.3 Servlet Servlet 是作用于服务器端的 java 应用程序,它的主要功能是交互式地浏览和修改数据生成动态 Web 内容 3。其工作过程如下: 1) 客户端发送请求至服务器端 2) 服务器将请求信息送至 servlet 3) Servlet 生成相应
19、内容并将其传给服务器 4) 服务器将相应动态 Web 内容返回给客户端 2.4 JavaMail JavaMail 是由 Sun 公司发布用来处理 Email 的 API。它可以方便地执行一些常用的邮件传输。JavaMail 中 用 于 处 理 电 子 邮 件 的 核 心 类 是 : Session,Authenticator,Folder,Message, Address,Transport,Store 等 4。 Session 类的主要作用是定义一个与邮件服务器的会话,其中的属性值,例如服务器地址、所采用的通信协议等均可在 Properties 类中设置。 Folder 类是对服务器上的文
20、件进行操作,例如打开文件的操作和以何种方式 (只读、读写 )打开文件。 Message 类的作用是对邮件的内容进行操作,包括设置发送邮件和读取邮件的内容。 Tranport 类的主要作用是发送邮件。 5 3 服务器环境搭建 3.1 java 环境搭建 由于本系统采用 java 语言设计,所以需要在服务器端安装 java 的运行环境,从 http:/ 网站上下载 jdk6.0 版本,由于是在 linux 环境上安装,所以选择 .bin 文件,下载后更改文件权限,通过命令将其更改为可执行文件,如图 3-1 所示,在文件存放目录执行“ ./jdk.bin”命令,安装 jdk。 图 3-1:更改 j
21、dk.bin 文件的权限,使其 成为可执行文件 安装好后还需配置环境变量,在 linux 环境中,通过编辑“ /etc/profie”文件来设置环境变量的值。在命令行中输入“ vi /etc/profile”,将光标移到最后一行,按 i 键进入编辑模式,如图3-2 所示,完成后按 ESC 键回到命令模式,保存退出。 图 3-2:配置 java 环境变量 此时环境变量的值还未得到应用,应执行图 3-3 命令将刚设置的参数添加到环境变量中。 图 3-3:使配置的环境变量生效 完成后执行“ java version”命令,若出现如图 3-5 所示页面,则表明 java 环境 搭建成功。 图 3-4: java 的运行环境搭建成功 3.2 apache 服务器 3.2.1 Apache 简介