基于j2ee的电子邮件系统设计与实现内容摘要:
10 页 POP为 MUA提供一个协议,从远程服务器下载用户的收件箱,允许用户使用不总是连接到网络的机器。 IMAP 为 MUA 提供一个协议,操作远程服务器上的邮件文件夹。 实现该协议的 MUA 可以连接到远程 IMAP服务器,并执行对信箱和信件需要做的各种任务。 这允许用户的邮件文件夹和 MUA放在不同的机器上。 电子邮件系统涉及的主要协议 与其他 Inter应用和协议一样,标准定义邮件如何操作,这些标准在一组 RFC中定义,它们定义使电了邮件经过 Inter所必须的协议和格式。 1972年, Ray Tomlinson写了第一个电子邮件程序 SNDMSG,在 ARPANET上使用,那时,这个程序在 ARPANET用户中是很流行的。 在它推出不久,又相继出现几个其他的配套程序和变种。 这就产生了开发一些标准的需要,定义电子邮件如何从一个机器传到另一个机器和如何构造信件。 在整个 70 年代,创 建了几个文档,建立了早期的标准。 在 80 年代初,这些标准一定程度上已经成熟。 那时创建了 SMTP协议,它现在仍然是电子邮件的核心标准之一。 电子邮件信头标准在一定程度上也已成熟,产生了 RFC822(ARPA Inter 文本信件的格式标准 )。 另外,还开发了 POP,IMAP,简化使用个人计算机对电子邮件的处理。 (SMTP ) 简单邮件传输协议 ((SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。 SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境 (IPCE )此环境可以包括一个网络,几个网络或一个网络的子网。 理解到传送系统 (或 IPCE)不是一对一的是很重要的。 进程可能直接和其它进程通过己知的 IPCE通信。 邮件是 一个应用程序或进程间通信。 邮件可以通过连接在不同 IPCE上的进程跨网络进行邮件传送。 更特别的是,邮件可以通过不同网络上的主机接力式传送。 RFC821 规范了 SMTP 协议,指定了在一个简单 TCP 连接上,两个 MTA 如何进行通信。 SMTP 工作在两种情况下 :一是电子邮件从客户机传输到服务器。 二是从某一个服务器传输到另一个服务器。 SMTP 是个请求 /响应协议,命令和响应都是基于 ASCII文本,并以回车 (CR)和换行 (LF)符结束。 命令是从客户机发送到服务器,命令的格式是由一个关键词后面跟着零个或多个变量组 成。 SMTP定义了14个命令,它们分别是 HELD, MAIL, RCPT,DATA, QUIT, RSET, VRFY, NOOP, TURN, EXPN, HELP, SEND, SMOL, SMAL。 在这些命令中, 8个命令是必需的 (上述前 8个,其中 VRFY是验证地址,不要求一定启用 )。 从客户机发送的每个命令行由一个 4字符命令后跟一组可选的参数组成。 随 SMTP核心命令还描述附加的一个命令 EHLO,它是 SMTP服务扩展使用的 HELO的变种。 电子邮件的主要部分是信件, 电子邮件的每个方面几乎都是围绕它发展的。 电子邮件的核心结构在两个主要 RFC中定义,它们都是进行电子邮件技术工作的必备读物。 第一个 RFC是 RFC822,是 1982年发表的,它是 Inter信件的当前标准。 RFC822定义信件在从主机传送到主机时,需要如何格式化,即它指定了在两个 MTA 之间用 RFC 821 发送的电子邮件报文的格式。 它的主要用途是为信件提供规范化的格式,使得不同类型的网络可以相互传送电子邮件。 一个常见的误解是,它也定义存储电子邮件的格式,这是不对的。 尽管许多电子邮件软件包以相同的格式存储 Inter电子邮件,但EasyMail 简易邮件系统 第 11 页 没有这样做的要求。 1989 年发表的 RPCll23(Inter 主机的要求 — 应用和支持 )含有对许多 Inter 标准的重要更新。 它的第 5节含有关于电子邮件标准的特定信息。 在最高层,信件非常简单,它含有一系列的文本行,每一行以回车 (CR)符后跟换行 (LF)符结束。 当 CR和LF 这样组合使用时,形成 CRLF(回车换行 )) 每一行的内容由 USASCII 字符组成 o USASCII 是 ASCII(美国信息交换标准码 )字符集的 7位变种。 信件中文本行的总体格式与办公室备忘录极其 相似。 在信件的开始,是一组叫做信头的行,含有发信人、收信人、发信时间和主题等的信息。 信头有定义的格式,允许对信头数据进行程序分析。 这使 MTA. MDA 和MUA能够分析和处理信件中的信息。 在信头之后是一个空行,用于分隔信头与信件的其余部分。 在空行后是一组叫做信件体的行,它是信件的正文 — 与信件的收信人有关的实际信息。 .信头 信头中的行分组成一些字段,这些字段为用户和程序提供关于信件的信息。 每个字段由一行或多行文字组成。 .信件体 信件体含有发送给收件人的实际信息。 纯粹的 RFC822信件体只是一系列的文 本行,它们没有附加的结构或含义。 第四章 后台数据库的设计与接入技术 本章结合数据库理论和数据模型对本系统的后台数据库进行了详细的设计。 并根据需求分析对各个功能模块进行了后台数据库及其表的设计,并对数据库的技进行了深入的分析,对记录集的操作进行了探讨,并重点研究了数据库连接池技术在数据库连接中的作用。 数据库系统概述 数据 ((data)是计算机领域中的专用术语,它属于软件范畴 c5}},它是软件中程序加工的客体,在计算机中一个软件只能有了程序与数据才构成完整的运行实体。 散据的表现形式很多, 除常用的数字、文字、日期等外,还包括图像数据、图形数据、声音数据等形式。 数据一般有型 (type)与值 (value)之分,数据的型给出了数据表示的类型如整型、实型、字符型等,数据的值给出了符合给定型的数值。 在软件系统中因为表示上的需要,经常须将多个数据组合在一起,它们构成特定的数据框架称为数据结构 (date structure),在特定条件下也可称为数据模式 (date schema)。 数据在计算机软件系统中的作用和地位是随着计算机应用的扩大而逐渐发生变化的。 在此种情况下,需要对数据作集中统一的管理,并以程序对 数据的共享为主要目标,这就出现了数据库系统 (database system)。 数据库系统是以大量的、复杂结构的、持久的、共享的数据的统一管理为目标的计算机应用软件整体。 数据库系统是对系统所提供的数据进行存储、维护和应用的软件系统,是存储机制、处理对象和管理系EasyMail 简易邮件系统 第 12 页 统的集合体。 数据库系统由五个部分组成,它们是 : 数据库存放数据。 数据按数据库所提供的数据模式存放,数据模式能构造复杂的数据结构以建立数据间的内在联系与复杂的关系,从而构成数据的全局结构模式以适应数据共享要 求。 数据库管理系统是一种管理数据库的系统软件,它是数据库系统的核心,数据库管理系统的主要功能包括 :数据的定义、数据的操纵和数据的服务。 建立数据库上的各种应用程序,它们以数据库中数据为公共支撑,建立各自的应用逻辑。 数据库系统的平台包括操作系统、计算机、网络三部分。 5数据库管理 数据库系统是一个复杂的系统,它可供多个用户使用、它的数据可作为信息资源向社会开放,因此,对它的管理极为重要。 按照数据模型分类,数据库可以分为层次模 型、网络模型、关系模型等。 层次模型用树状结构来表示实体之间的联系,满足非根结点有且仅有一个父结点的基本特点。 网络模型用网络结构来表示实体之间的联系,允许一个父节点或子节点联系多个父节点或子节点 :关系模型用关系 (表格数据 )表示实体与实体之间的联系。 由于关系模型理论完备,关系数据语言使用方便、灵活,它已成为最为通用的一种数据模型,本系统中的后台数据库将采用关系模型结构。 关系模式数据库的基本概念 从用户的角度来说,一个关系模型的逻辑结构就是一张二维表,它由行和列组成。 以下就是关系模式数据库的一些基本模 式 : 关系 (r):关系数据库是以关系模型为基础的数据库,它利用关系描述现实世界。 一个关系既可用来描述一个实体及其属性,也可用来描述实体间的一种联系。 关系模式是用来定义关系的 .一个关系数据库包含一组关系,定义这组关系的关系模式的全体就构成了该数据库的模式。 在实际设计中,关系对应的就是数据库中的表。 元组 :表中的一行即为一个元组,表中含有多少行,也就有多少个元组 : 属性 (U):数据库表中的一列即为一个属性。 主键或主码 :主键是唯一标志一条记录的字段或字段的组合。 使用主键可以保证表中不出现重复的 记录。 在一个表中只能拥有一个主键或主码,而且主键一定不能为空值。 域 :属性的取值范围。 关系模式 (R):对关系的描述,包括 :模式名、属性名、值域名、以及模式的主键。 它一般表示为 :关系名 (属性 1,属性 2,„„,属性 n)。 函数依赖 :设 R (U)是一个关系模式, U是 R的属性集合, X和 Y是 U的子集。 R (U)的任意一个可能的关系 r,如果 r中不存在两个元组,它们在 X上的属性值相同, Y上的属性值不同,则称“ X函数确定 Y”或“ Y函数依赖于 X0 传递函数依赖 :在关系模式 R (U)中,如果 X } Y, Y } Z,且 Y}X, X不函数依赖于 Y,则称 Z传递函EasyMail 简易邮件系统 第 13 页 数依赖于 X。 传递函数依赖定义中之所以要加上条件 X不函数依赖于 Y,是因为如果 Y}X,则 XHY,这实际上是 Z直接依赖于 X,而不是传递函数依赖了 实体 (entity):显示世界中的事物可以抽象成为实体,实体是概念世界中的基本单位,它们是客观存在的且又能相互区别的失误,凡是有共性的实体可组成一个集合称为实体集 (entity set)o 联系 (relationship)}r现实世界中事物间的关联称谓联系。 在概念世界中联系反映了实体集 间的一定关系。 外来键 :是一种用于明确一张表与别的一张表 (或多张表 )之间的引用关系,或者说参照关系,外来键协作才能实现其功能。 后台数据库的设计 数据库设计需要考虑的问题 主要包括以下几个方面 : 一、库中数据的类型。 包括数据库将保存哪些数据,这些数据的特征和结构,以及各种数据之间的关系等。 数据类型的确定要依据现实中数据的表示对象来确定,也要考虑程序在对数据库的数据进行存取的时候是否方便或者转换是否容易。 二、用户访问数据库的方式。 包括用户的种类以及后台数据库的访问量,用户以何种方式访问后台数据库,以及系统对数据库性能要求等。 现行的如 ADO, ODBC, JDBC技术就是针对访问数据库的技术。 三、各级用户的特权与数据安全性要求。 包括用各种用户使用后台数据库的目的,各类用户的权限。 如何防止用户滥用权限,以及后台数据其他安全隐患。 还包括数据库的备份等。 四、数据库中的数据完整性 在关系型数据库中完整性约束 用于确保数据的准确性和一致性。 数据完整性不仅是对单张表而言的,而且是跨表的,因此是数据库的数据完整性。 数据完整性有以下几类 : (1)实体完整性 实体完整性指的是每条记录 (表中的每行 )是一个独立的实体。 这就要求每务记录都有唯一的标志。 UNIQUE(唯一 )约束、 IDENTITY属性也都是这方面的措施。 (2)域完整性 域完整性的含义是表中的字段具有正确的数据类型、显示格式、数据范围等。 通过建表的字段属性和各种其他的约束,可以让数据库自动确保域完整性。 (3)参照完整性 参照完整性是指在被参照表和参照表之间保持的一致性。 主键和外来键就是这方面的措施。 主键和外来键有如下的约束作用 : 被参照表中的主键值如果为参照表所引用,该记录将不能被删除或修改,除非首先删除参照表中引用了该主键值的记录。 参照表中不能引用被参照表中不存在的主键值。 五、数据库的规范化 数据库的规范化。 数据库的规范化理论是在很久就被提出了的,它是衡量尸个数据系统设计好坏的重要EasyMail 简易邮件系统 第 14 页 标准。 规范化的数据库不但可以提供更好的数据库安全性处理,也能减少数据冗余,保证数据库中数据的一致性,并为大型的总体数据库提供较好的组织方式。 范式是衡量数据库规范的层次或深度的重要指标,根据关系模式满足的不同性质和规范化程度可将关系模式分 为第一、第二、第三、 BC范式和第四范式等。 范式越高规范化的程度越高,关系模式也越好。 (I)第一范式 (1NF):如果一个关系范式模式 R的每个关系 :的属性值都是不可再分的原子值称 R 满足第一范式 (INF)。 (2)第二范式 (2NF):如果一个关系模式 R满足第一范式,且非主属性 (Y)完全 函数依赖主属性 (X),也即 X。 则称关系模式 R满足第二范式 (2NF)。 (3)第三范式 (3NF):若关系模式 R是第二范式,且每个非主属性 (Y)都不传递。基于j2ee的电子邮件系统设计与实现
相关推荐
比较麻烦,而且有一些安全性的问题没有解决。 Hibernate 技术介绍 Hibernate 是一个开源的对象关系映射( Object Relational Mapping, 简称ORM)解决方案。 ORM 是一种可以将对象模型映射为一种关系模型的技术,也就是说 ORM 可以将程序中的对象自动持久化到关系数据库 [18]。 Hibernate 是一个开源的持久层框架
( 5) Java Servlet 是一种开发 Web 应用的理想框架。 JSP 以 Servlet 技术为基础,又在许多方面作了改进。 利用跨平 台的 JavaBeans 组件, JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。 JSP 的劣势: ( 1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂 Java 系统中包括 JRE, JDK, J2EE, EJB 等多种产品
概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。 4. 分布式 Java 建立在 TCP/IP 网络平台上,提供了用 HTTP 和 FTP 协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。 5. 健壮性 Java 致力与检查程序在编译和运行时的错误,并自动回收内存,减少了 内存出错的可能性。 Java 取消了 C
, and provide a convenient management tool for the workers of book management department. Keywords publication and magazine management, base date 河南大学本科毕业生学士学位论文 第 1 页 第 1 章 绪论 随着科学技术的飞速发展
也就是说未来只要有人需要,就会有建立在 Eclipse 之 上的COBOL, Perl, Python 等语言的开发插件出现。 同时可以通过开发新的插件扩展现有插件的功能,比如本系列文章为了进行手机应用程序的开发就是通过 J2ME插件的扩展来加以实现的。 可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是 Eclipse 的潜力所在。 Spring 概述 Spring 是全面的
(77) 式( 77)中 的大小与相位误差 成正比,因此,它就相当于一个鉴相器的输出。 用 去调整压控振荡器输出信号的相位,最后就可以使稳态相位误差 减小到很小的数值。 这样压控振荡器的输出 就是所需要提取的载波。 . 差分编码译码 差分编码将信息存储在相位得变化中,而不是相位得本身上。 在有些情况下,在解调和检测的过程中使用的同步 和载波恢复技术会产生 的相位模糊。