资源描述
摘要
电子邮件是Internet应用服务之一,也是使用最多的互联网服务。电子邮件系统通过Internet,实现各类信息的传送、接受贮存等处理,将邮件传送到世界的各个角落。电子邮件系统经过几十年的发展,已经形成了完善的技术体系。用户最初只能通过Outlook,Foxmail等客户端软件来收发自己的邮件,但单纯的客户端程序进行邮件的收发已经不能满足用户移动办公的需要。Web邮件技术的出现,彻底解决了用户办公的需要,其快捷、方便的优点吸引了众多的网络用户。用户无须安装任何Email客户端软件,只需使用浏览器打开放在服务器上的特定网页即可进行Email收发及相关操作。
J2EE、AJAX技术等新的Web技术的层出为邮件系统的更新带来了巨大的突破。本文着重阐述了实现基于J2EE的Hibernate技术和AJAX技术的Web邮件系统的理论基础、设计思想、系统架构、开发过程以及对以上内容的总结与展望。论文前半部分着重论述了Hibernate、AJAX和JavaMail 邮件技术,阐释了电子邮件系统的工作原理及邮件传送过程,探寻如何开发邮件服务。简单介绍了与邮件系统相关的几个重要协议。熟悉按照这些协议、规范进行的电子邮件的传送过程。论文后半部分是对系统的各个模块进行分析、设计和编码。包括系统整体设计思想,模块设计思想以及各功能模块实现的流程图等。最后对该邮件系统进行了总结和展望。
关键词:电子邮件,邮件系统,邮件协议
ABSTRACT
Email is one of Internet applications and also the service users use most. Electronic Mail System fulfills transmission, receiving, storing management of all kinds of signals through Internet which connects the whole world, sending mails to every corner of the world. With many years' development, Email System has formed consummate technology architecture. Users can only use client softwares such as Outlook, Foxmail to receive and send their own mails at first, but this can't satisfy the requirement of users' moving office. With the appearance of Web Mail technique, the problem has been completely solved. Many network users are attracted by its advantages of speediness and convenience. Users can implement Email receiving, Email sending and so on by opening certain Web pages on Servers through Browsers without installing any Email Client softwares.
The layer of the new Web technique of the J2EE, AJAX technique ..etc. for mail system of renewal bring huge of break. This paper emphasizes expatiating on the implementation of Web Mail system based on the Hibernate of J2EE platform and AJAX , including their theory foundation, design idea, system structure, development process, sum-up and expectation of all above. The first half part of the paper discusses the Hibernate and the AJAX architecture and JavaMail mail technique, explaining the work principia of Email system and the transmission process of Email, exploring how these technologies use JavaMail API to provide standard mail service. Then the paper simply introduces several important protocols correlative with mail system and comprehends the transmission process of Email according to these protocols and criterions. The other half part of this paper sets forth analyse, design and coding of each module in the mail system, including system's whole design idea, modules' design idea, implementation flow chart of each module, etc. In the end, the summarization of the Web Mail system is simply discussed in this paper.
Keywords: Email, Mail System ,Mail Protocols
目录
摘要 I
ABSTRACT II
第1章 引言 1
1.1 背景 1
1.2 研究内容 2
第2章 邮件系统开发方法 3
2.1 AJAX客户端开发 3
2.1.1 AJAX的异步能力 3
2.1.2 AJAX丰富页面操作 3
2.2 数据库访问技术分析 4
2.2.1 JDBC数据库访问技术 4
2.2.2 Hibernate中间件 4
2.3 J2EE邮件开发 5
2.4 开发环境介绍 6
2.4.1 DREAMWEAVER 6
2.4.2 MyEclipse 6.0 6
2.4.3 Microsoft SQLServer 2000 7
2.4.4 Tomcat 6.0 8
2.5 本章小结 9
第3章 系统需求分析 10
3.1系统设计原理 10
3.2 系统主要功能要求 11
3.3 本章小结 13
第4章 数据库设计 14
4.1 数据库结构分析 14
4.2 概念结构设计 15
4.3 逻辑结构设计 17
4.4 数据库安全性和完整性 19
4.4.1 数据库的安全性 19
4.4.2 数据完整性 19
4.5 本章小结 20
第5章 系统详细设计与实现 21
5.1 邮件管理设计 21
5.1.1 异步发送电子邮件 21
5.1.2 利用POP3协议接收电子邮件 25
5.2 邮件标签管理设计 28
5.2.1 添加标签 28
5.2.2 修改标签 28
5.2.3 删除标签 28
5.2.4 使用标签 29
5.3 通讯录设计 31
5.3.1 组信息的管理 31
5.3.2 联系人管理 32
5.4 软件测试与完善 33
5.5 本章小结 34
第6章 结束语 .......................35
致谢 36
参考文献 37
- 37 -
第1章 引言
1.1 背景
电子邮件是Internet应用服务之一,通过网络,可以以非常低廉的价格、非常快速度的方式,与世界上任何一个网络用户联络,这些电子邮件可以包含文字、图像、声音或其他多媒体信息。根据中国互联网络信息中心2008年1月发布的最新《中国互联网络发展状况统计报告》,目前我国上网用户已达到2.1亿人,其中电子邮件使用率是56.5%,这意味着有过亿的网民在使用电子邮件[1]。随着中国Internet应用的日益普及和逐步深入,这些数字仍在不断增长。在全球范围来看,每天有数十亿封电子邮件在全球传递。电子邮件已成为用户不可或缺的需要。
如何提高电子邮件系统的性能成为各大电子邮件服务商竞争的焦点。新的Web技术的出现为Web系统的更新带来了巨大的突破。如Gmail运用JavaScript,建立了一个良好的使用者介面;同时应用AJAX技术也使速度相当快[2]。163新版邮箱在“极速风格”升级中创新使用了AJAX技术,令系统响应和页面加载更加流畅,使得Web系统的工作性能接近基于桌面的客户端软件[3]。
通过将AJAX技术用于Web邮箱开发主要有两方面的优点:
一是加载动态化[4]。当用户登录邮箱时,可感受到超快速的系统响应和流畅的页面加载,甚至不用打断交互流程进行重新加载,就可以动态更新。因为AJAX技术的应用已将很多必要的信息缓存在终端用户的电脑里,不需要再浪费带宽访问服务器[5]。也就是说,当用户要阅读一封邮件时,AJAX技术立即重新配置页面,用户无须等待就可以看到结果[6]。
二是操作客户端化。AJAX技术的应用还进一步提高了Web系统的易用性和界面友好度[7]。如:用户可在不同的窗口中浏览多个邮件,收信的同时可以写信,发邮件的同时可以读信,无需太多操作就可以重排顺序。用户还可以直接使用键盘操作——打开写信页面、阅读新邮件或删除邮件,并且在Web页面中可以用鼠标将邮件拖动至任意文件夹。
基于AJAX技术的Web开发定能为客户带来更多、更新的浏览体验[8]。
本系统就是在这个背景下提出来的,希望通过本系统能够进一步掌握新的学习Web技术,了解网络邮件原理和实现过程,体验AJAX异步通信在Web邮件系统应用中带来的好处,以及Hibernate等J2EE框架在Web开发过程中的运用。
1.2 研究内容
本系统采用J2EE和AJAX技术,利用JavaMail开发包提供的邮件功能,完成邮件系统的设计。其中,AJAX技术主要是应用在表现层上,这是因为AJAX在表现层上错提供了强大的功能,除了能给用户在使用上带来给多的美观外,AJAX最主要的特点就是使用XMLHttpRequest对象异步发送请求,将AJAX的异步能力与邮件的发送相结合,实现发送邮件异步化,这将会使用户从长久的等待邮件发送过程中解脱出来,无需等待邮件发送结束即可转向其他操作。利用AJAX技术将使页面操作更加丰富[9]。采用Hibernate处理持久化。通过Hibernate提供的在Java对象与关系数据库之间的桥梁作用,实现两者之间的自动转换。数据的存储无需通过繁琐的SQL操作,只需对持久化类操作,并结合Hibernate提供的功能,就可实现复杂的数据存储过程。Hibernate的使用,简化了系统的设计,同时也为系统的设计和维护带来更多的方便[10]。Sun公司为方便Java开发人员在应用程序中能够实现邮件发送和接受功能而提高了一套标准的开发包,这套开发包包括面向普通开发人员调用的JavaMail API和实现了SMTP、POP3、IMAP等底层协议的服务提供程序。只要调用JavaMail开发包中的相应的API类,就可以完成邮件的发送和接受功能[11]。
第2章 邮件系统开发方法
2.1 AJAX客户端开发
AJAX在浏览器和服务器之间添加AJAX中间层,允许浏览器异步发送请求,同时允许动态加载服务器响应。用户的请求不再直接向服务器提交,从而避免丢弃当前页面,而是使用XMLHttpRequest异步地向服务器发送请求。
2.1.1 AJAX的异步能力
AJAX技术的核心是对象XMLHttpRequest。通过使用XMLHttpRequest对象,浏览器通过客户端脚本与服务器交换数据,Web页面无须频繁的重新加载,其内容也由客户端脚本动态更新。
异步是指基于AJAX的应用于服务器通信的方式。对于传统的Web应用,每次用户发送请求或向服务器请求获得数据时,浏览器都会完全丢失当前页面,而等待重新加载新的页面。在服务器完全响应之前,用户的浏览器将会是一片空白,用户的动作必须中断。异步是指用户发送请求后,完全无须等待,请求在后台发送,不会阻塞用户的当前活动。用户无须等待第一次请求得到完全响应,可以立即发送第二次请求。
使用AJAX的异步模式,浏览器就不必等待用户请求操作,无须重新下载整个页面,一样可以显示服务器的响应数据。
2.1.2 AJAX丰富页面操作
AJAX并不是一门全新的技术,它所基于的技术大都是成熟的技术,如JavaScript,DOM,CSS和XML等。
JavaScript是一种跨平台的脚步语言,虽然很多地方也称JavaScript为面向对象的语言,但JavaScript并不是一种纯粹的面向对象的语言。JavaScript简单、易用,而且在绝大部分浏览器中都运行良好。JavaScript脚本是AJAX技术中另一个重要的部分,是AJAX技术的编程脚本。JavaScript主要完成如下事件:创建XMLHttpRequest对象,通过XMLHttpRequest向服务器发送请求,创建回调函数,监视服务器响应状态,当服务器响应完成后回调函数启动,回调函数通过DOM动态更新HTML页面。JavaScript技术是AJAX技术的黏合剂,通过JavaScript将其他几个技术有机地结合在一起,从而形成AJAX技术。
DOM是操作HTML和XML文件的一组API,它提供了文件的结构表示。通过使用DOM,可以采用编程方式操作文档结构,还可以改变文档的内容。通过使用DOM,HTML页面以一种结构化方式组织在一起,HTML页面的内容以节点方式组织。Web程序开发者可增加文件的节点、属性及事件,从而提供对HTML页面的动态更新,例如,document就代表HTML文件本身,table对象则代表HTML的表格对象等。DOM为JavaScript或程序语言提供操作网页内容的方式。
在Web页面上采用CSS技术,可以有效的对页面的布局、字体、颜色、背景和其他效果实现更加精确的控制。通过CSS技术,只要对相应的代码做一些修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。
XML文档是一种结构化文档,用于简单数据的表示和交换,用于面向消息的计算,以及与用户相关,表示相关的上下文。
2.2 数据库访问技术分析
2.2.1 JDBC数据库访问技术
JDBC是一种用于执行SQL语言的JavaTM API。它由一组用Java编程语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。有了JDBC,向各种数据库发送SQL语句就是一件很容易的事。而且使用Java编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将Java和JDBC结合起来将是程序员只须写一遍程序就可以让它在任何平台上运行。Java具有坚固、安全、易于理解和可以从网络上自动下载等特性是编写数据库应用的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了Java的功能。JDBC使信息传播变得容易经济。Java和JDBC可为外部客户提供获取信息更新的更好方法。
2.2.2 Hibernate中间件
Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像数据库中包含普通Java对象一样。Hibernate是采用ORM映射机制的持久层开发工具,它是Java应用和关系数据库之前的桥梁,负责Java对象和关系数据之间的映射。内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API,在JAVA应用中使用到Hibernate包含如下步骤:
① 创建Hibernate配置文件;
② 创建持久类;
③ 创建对象、关系、映射文件;
④ 通过Hibernate API编写访问数据库的代码。
创建Hibernate的配置文件Hibernate从中读取和数据库连接的相关信息,这个配置文件应该位于应用的classpath中,主要有两种形式:XML格式和.Properteis信息文件。创建持久化类就是指需要被Hibernate持久化到数据库中的类,持久化类通常都是模型中的实体类,符合JavaBean的规范,包含一些属性,以及与之对应的get、set方法。Hibernate技术本质上是一个提供数据库服务的中间件。利用数据库以及其他一些配置文件如hibernate.properties,XML Mapping等来为应用程序提供数据持久服务的。
2.3 J2EE邮件开发
J2EE平台通过JavaMail API提供标准的邮件服务。JavaMail API允许在应用程序中以独立于平台、独立于协议的方式收发电子邮件。JavaMail API的设计是,为收发信息提供与协议无关的访问。它提供平台无关的和协议无关的框架来构建基于Java技术的邮件和消息传递应用。
JavaMail是J2EE规范的核心组成部分,它为Web应用提供电子邮件服务,把客户端(包含发送方和接收方)分为三层:应用层,JavaMail API层和协议实现层。
(1) JavaMail应用层
应用层可以存在于J2EE体系架构中的Web层和业务层。典型的应用如:企业应用中利用JavaMail向客户发送注册确认通知,向客户发送购物订单信息,以及宣传企业产品信息等等。企业用户也可以利用JavaMail收取企业邮箱中的邮件,并进行自动处理。所以应用层有三种典型的应用:发送邮件,接收邮件和处理邮件。
(2) JavaMail API层
JavaMail API提供基本的邮件系统的对象,它主要包括javax.mail包及其子包。JavaMail包含的主要的类中,构成API的核心类包括:会话(Session )、消息(Message )、地址(Address )、认证(Authenticator )、传输(Transport )、存储(Store)和文件夹(Folder )。所有这些类都可以在JavaMail API即javax.mail的顶层包中找到,使用的子类可在 javax.mail.internet包中找到,由它们可以组成典型的邮件系统。
(3) JavaMail协议实现层
在邮件服务中,一般来说有2种不同类型的协议需要实现。传输(Transport)是Sun用于服务的原语,该服务能够把消息发送到它的目的地。最常使用的传输类型是普遍采用的SMTP传输。而另一个类型是存储(Store),它也是服务,可以连接到这个服务来取得己经传输到用户邮箱中的消息。POP3就是个存储转发的信息交换系统,而IMAP被设计成POP的超集。协议实现层主要实现API层中的Transport和Store服务。
2.4 开发环境介绍
2.4.1 DREAMWEAVER 8
DREAMWEAVER是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。其特点有以下几方面:
① 制作效率高:DREAMWEAVER可以用最快速方式Fireworks,FreeHand,或Photoshop等档案移至网页上。
② 网站管理方便:使用网站地图可以快速制作网站雏形,设计,更新和重组网页。改变网页位置或档案名称,DREAMWEAVER会自动更新所有连结。
③ 控制能力强:DREAMWEAVER是唯一提供Roundtrip HTML、视觉化编辑与原始码编辑同步的设计工具。
④ 全方位的呈现:利用DREAMWEAVER设计的网页,可以全方位的呈现在任何平台的热门浏览器上。
本系统采用DREAMWEAVER 8进行页面设计与CSS样式的编写。
2.4.2 MyEclipse 6.0
MyEclipse企业级工作平台是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, JavaScript, SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类:J2EE模型、 WEB开发工具、 EJB开发工具、 应用程序服务器的连接器、J2EE项目部署服务、 数据库服务、 MyEclipse整合帮助。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。MyEclipse是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
MyEclipse 6.0的发布极大的增强了Eclipse 3.3/Europa集成开发环境的功能,增加了Java 6支持的组件和加快了AJAX的开发率,革命性的提高了开发者的开发效率。MyEclipse 6.0现在提供了一些高级特性,已经和Spring、Java持久化结构开发集成在一起。这项非同寻常的整合,允许用户们创建实体管理器和事务beans,生成实体和DOA。在以前版本的基础上,MyEclipse 6.0增强了一些功能,如平台和安装的更多支持,改进了Java EE 5和Spring的功能部件,支持AJAX开发和测试,支持RAD Web开发,具备Matisse4MyEclipse可视化Swing设计器,快速Java EE部署和测试。
2.4.3 Microsoft SQLServer 2000
(1) 非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
(2) 统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:
● 查询数据
● 在表中插入、修改和删除记录
● 建立、修改和删除数据对象
● 控制对数据和数据对象的存取
● 保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
(3) 是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。
SQL Server 2000是一种关系数据库,它除了支持传统关系数据库组件(如数据库、表)和特性(如表的JOIN)外,另外也支持当今关系数据库的常用组件,如存储过程、视图等。另外,它还支持目前关系数据库都支持的标准查询语句—SQL ( Structured Query Language)。SQL另外一项重要的特点是它支持数据库复制功能。也就是当在一个数据库执行操作时,可以将其操作结果传至远程的SQL相同的数据库上,让两边的数据库的数据保持同步。
2.4.4 Tomcat 6.0
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。
与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和JSP文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和JSP或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。
2.5 本章小结
良好的开发环境和开发工具是开发系统的重要条件。本系统利用JSP语言的动态性和Microsoft SQLServer2000数据库的强大功能以及AJAX得异步能力来编译程序,并采用Hibernate中间件技术连接数据库,来完成对数据库的添加、修改、删除和查询等操作。本章主要对系统的开发环境和开发技术做了一个简要的介绍。通过AJAX技术异步通信的特点来分析系统的异步能力设计。通过对数据库访问技术的介绍和比较选择系统采用的Hibernate中间件数据库访问技术。通过对Microsoft SQLServer2000数据库面向对象、集成环境、处理多种数据信息等特点的分析,系统最终采用了Microsoft SQLServer2000数据库进行开发。通过对JavaMail的介绍,来了解JavaMail的邮件处理能力。通过对DREAMWEAVER 和MyEclipse编程环境的功能介绍来分析选择系统编译的环境。最后,通过对Tomcat的介绍,分析选择Tomcat作为系统的Web服务器的优越性。
第3章 系统需求分析
3.1系统设计原理
一个电子邮件系统一般应具有两个子系统:邮件用户代理MUA(Mail User Agent),又称用户接口,它允许人们读取和发送电子邮件;邮件传输代理MTA(Mail Transport Agent),它将消息从出发地传到目的地。邮件用户代理是一个本地程序,它提供命令行方式、菜单方式或图形方式的界面来与邮件服务器交互。邮件传输代理是在后台运行的系统程序,在系统间传输电子邮件。
邮件用户代理部分至少应该具有以下功能:①撰写:给用户提供很方便的编辑信件的环境;②显示:能方便地在计算机屏幕上显示出来信(包括信件附上的声音和图像);③处理:收信人应能根据情况按不同方式对信件进行处理。邮件传输代理应具有以下功能:①传送和代理:电子邮件按照客户服务器方式工作。当用户编辑好要发送的邮件后,就通过用户接口交给邮件传输程序。发送信件时,邮件传输程序作为远程目的计算机邮件服务器的客户,与目的主机建立TCP连接,并将邮件传送到目的主机。一接收方计算机的邮件传输程序在收到邮件后,将邮件存放在接收方的邮箱中,等待着用户来读取。由于用户代理的屏蔽作用,用户在发送和接收邮件时看不见邮件传输程序的工作情况;②报告:将邮件传送的情况(已交付、被拒绝、丢失等)向发信人报告。目前使用最多的MUA应该要算是Mirosoft的Outlook和Outlook Express这类的邮件客户端程序虽然方便,但常碰到的一个问题就是在默认情况下一旦邮件被收进某台电脑中,从其他电脑就读不到这个邮件了,因此必须设置在邮件服务器上保存副本,才能从其他电脑读取邮件。同时,此类客户端程序必须在用户电脑上进行安装配置,这对于需要移动办公的人员来说又显得极为不便,这时候WebMail就显出它的方便之处了。WebMail就是使用者通过浏览器连到Web服务器,而由Web服务器上的程序负责作收信/发信的动作。使用者直接通过浏览器进行读信/写信等操作,信件其实并不存在于使用者的电脑上。因此无论使用者用的是哪一部电脑,只要可以连上网络,都可以读到以前的和新收到 的信件。另外一个好处是WebMail不容易因为读取含有病毒的文档而导致中毒,更不会发生个人邮件系统中毒后,寄送大量病毒信件给其他亲朋好友。如图3-1所示,在发信方面,WebMail程序以SMTP协议和邮件服务器上的MTA勾通,将信件经由MTA送往Internet。而在信件的处理上,则是通过POP3或是IMAP4进行存取。
图3-1 WebMail收/发信件
3.2 系统主要功能要求
根据Web邮件系统的目标和特性,系统所需功能可用下图3-2表示
(1) 系统登入
用户输入用户名和密码,系统查询数据库中的信息对密码进行验证。如密码不正确将不能进入系统;如密码正确,系统会自动根据该用户的信息进入系统配置界面。
邮件系统
用户管理
邮件管理
通讯录管理
邮件标签管理
注册新用户
用户信息管理
写新邮件
收件箱
阅读邮件
转发邮件
删除邮件
添加组
编辑组属性
添加联系人
联系人管理
添加新标签
编辑标签属性
给邮件贴标签
图3-2邮件系统功能
(2) 用户管理
l 注册新用户:系统的开始是用户注册,只有注册成功的用户才可以登录进入系统。
l 用户信息管理:为用户提供用户个人信息的修改和查阅,修改用户信息功能还包括修改密码和修改用户基本信息两个部分。
(3) 邮件管理
l 写新邮件:为用户提供撰写新邮件的输入界面,在此,用户可以输入邮件的相关发送地址、主题、内容和携带的附件。
l 收件箱:以列表形式显示用户所收到所有邮件。
l 阅读邮件:通过收件箱内的链接,查看邮件的内容,包括显示发件人的地址、邮件的主题、邮件的内容和所携带的附件。
l 转发邮件:实现将收到的邮件进行转发,用户只需输入转发的目的邮件地址就可以完成邮件的转发操作。
l 删除邮件:删除用户收到的邮件。
(4) 通讯录管理
l 添加组:用户创建属于自己的新组。
l 编辑组属性:用户可编辑修改组的信息,如组的名称。
l 添加联系人:用户添加属于所选择组的联系人。
l 联系人管理:用户可修改联系人的相关信息,并通过所修改的信息,可将联系人移动到其他的组内。
(5) 邮件标签管理
l 添加新标签:用户创建新的标签。
l 编辑标签属性:用户编辑标签的属性,如名称等。
l 给邮件贴标签:用户可以给邮件指定相应的标签。
3.3 本章小结
需求分析是一个非常重要的过程,因为它具有决策性,方向性,策略性的作用,在软件开发的过程中具有举足轻重的地位。本章主要介绍了项目规划中各个功能模块的作用。通过系统设计图来更好的体现这个框架的结构,使得软件的体系更明确,使得编程过程有的放矢,编程工作更好的有序开展。
第4章 数据库设计
4.1 数据库结构分析
数据库设计是数据库应用系统开发过程中首要的和基本的内容。数据库是信息系统的核心和基础。它把信息系统中的大量数据按照一定的模型组织起来,提供存储、维护、检索数据的功能,是信息系统可以方便、及时、准确从数据库中获取所需的信息。一个信息系统的各个部分能否紧密的结合在一起以及如何结合,关键在数据库。因此必须对数据库进行合理设计。
邮件系统的需求体现在对与邮件相关的各种信息的提供、保存、更新和删除等方面。因此,一个满足需求的数据库必须充分满足对各种信息的输入输出需求。通过前面对系统功能模块的分析与设计,得出该系统对数据库的创建需要满足以下需求:
(1) 掌握邮件文件夹中所有邮件的总体信息,如邮件总数,新邮件数等。
(2) 从邮件文件夹中能够获得邮件。
(3) 每一份邮件都有标题、发件人、收件人等信息。
(4) 通过邮件信息,能获得邮件的附件信息。可以查看每个分组内的联系人,。
(5) 通过邮件信息,获得所有用户标签贴在邮件上的标签。
(6) 通过联系人组可获得组内所有的联系人,能对联系人的信息进行维护和修改。
进行整个数据库设计必须准确了解与分析用户需求(包括数据和处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度和质量。综合上面对报价系统数据库的需求分析,设计如下的数据项和数据结构:
(1) 邮件文件夹的数据项:邮件文件夹编号、邮件文件夹名称、邮件文件夹内的邮件总数、邮件文件夹内的新邮件总数等信息。
(2) 邮件的数据项:邮件号、邮件标题、邮件的发件人、邮件的发送时间、邮件是否带附件、邮件所属的邮件文件夹号。
(3) 邮件附件的数据项:邮件附件号、邮件附件标题、邮件附件、所属邮件号等信息。
(4) 标签的数据项:标签号、标签名称。
(5) 标签邮件关系的数据项:编号、标签号、邮件号。
(6) 用户组的数据项:组号、组名。
(7) 联系人的数据项:联系人号、联系人名称、联系人的邮件地址、所属组号等信息。
4.2 概念结构设计
概念结构设计是将分析得到的用户需求抽象为概念模型的过程。即在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的相互关系概念结构设计模型。这样才能更好地、更准确地用某一DBMS实现这些需求。它是整个数据库设计的关键。概念结构的主要特点是能真实、充分地反映现实世界;易于理解;易于更改;易于向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R模型。
设计概念结构通常有四类方法:
(1) 自顶向下。即首先定义全局概念结构的框架,然后逐步细化;
(2) 自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;
(3) 逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;
(4) 混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。其中最经常采用的策略是自底向上方法。即自顶向下进行需求分析,然后再自底向上设计概念
展开阅读全文