版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上基于C#实现的邮件管理系统摘 要电子邮件(E-mail)是Internet上使用最广泛的服务之一,在当今社会中扮演了一个很重要的角色。虽然,现在已经有很多邮件收发管理系统,但是对于大多数的非专业的人来说它还是有点难度稍显微复杂。因此,我使用ASP.NET开发技术结合SQL Server数据库技术开发一个页面简单,操作方便的Web邮件管理系统。开发的过程中主要使用Web页面设计和数据访问技术来实现该邮件管理系统的主要功能,包括管理员的功能和普通用户的功能两大部分。管理员功能主要包括管理用户信息、删除用户、管理后台系统等;普通用户功能主要包括用户个人信息的管理、个人邮箱的
2、管理等。该系统可以根据需求对功能进行扩展和完善。关键词:邮件管理系统;ASP.NET;SQL Server;Web页面Mail management system based on C# AbstractE-mail (E-mail) is one of the most widely used service Internet, plays a very important role in today's society. Although, now there are many mail management system, but for most of the non-prof
3、essional people it is a bit difficult to slightly microscopic complex. Therefore, I use the ASP.NET development technology to develop a simple page with SQL Server database technology, convenient operation of the Web mail management system. The main use of Web page design and data access technology
4、to realize the main function of the email management system development process, including the two most administrators and ordinary users of the function. The administrator function mainly includes the management of user information, delete users, management background system; ordinary users functio
5、n includes user personal information management, personal mailbox management. The system can according to the demand of function expansion and improvement. Key words: Mail management system;ASP.NET;SQL Server;Web page专心-专注-专业目 录 第1章 绪论1.1 引言电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普
6、遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。 电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在
7、对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的个实体。因为电子邮件是通过邮件服务器(mai1 server)来传递的。通常mail server是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向 mail server管理人员申请个信箱账号,就可使用这项快速的邮件服务。 电子邮件的工作原理: (1) 电子邮件系统是一种新型的信息系统,是通信技术和
8、计算机技术结合的产物。 电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。 (2) 电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的个电子信箱。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口
9、令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件或者网页实现。 (3) 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取1。1.2 开发背景和环境 1.2.1 开发背景当前流行的各大邮件客户端软件除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。有鉴于此,我开发了这个各种功能相对简单实
10、用的邮件客户端Web页面程序,简化了很多不必要的功能。随着互联网的普及,国内外的互联网用户数呈指数增长。为满足不断增长的信息交流需要,作为因特网第一应用的电子邮件系统变得越来越重要。随着网络环境的建设与完善,许多用户已经提出这样的要求:拥有自己的Web邮件系统。国外的电子邮件系统可真叫四通八达,这种手段已经成为他们通信最流行的几种方式之一了。相比较国内,电子邮件系统还不算太完善,电子邮件通信的方式还不算太流行,如何才能把这种方式大众化、流行化呢?这还需要我们去认识它、了解它、使用它。国外已经有了许许多多的电子邮件系统,国内也有一些这样的系统,我觉得这些还不够充实这个庞大的流行团体,所以我要开发
11、一个简单电子邮件系统,来满足相应的用户的需要。1.2.2 开发环境(1) 硬件环境CPU:Intel 酷睿2双核 P7350内存:2GB系统类型:32位操作系统具备Internet上网条件(2) 软件环境操作系统:Windows7旗舰版Microsoft SQL Server 2008Microsoft Visual Studio 2010(3) Microsoft SQL Server 2008简介SQL Server 2008提供了可依靠的技术和能力来接受不断发展的对于管理数据和给用户发送全面的洞察的挑战。具有在关键领域方面的显著的优势,SQL Server 2008是一个可信任的、高效的
12、、智能的数据平台。它推出了许多新的特性和关键的改进,使得它成为至今为止的最强最全面的SQL Server版本2。(4) Microsoft Visual Studio 2010简介是微软公司推出的开发环境。是目前最流行的平台开发环境。Visual Studio 2010版本于2010年4月12日上市,其()的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持开发面向的。除了,它还支持&
13、#160; 和数据库4。第2章 相关技术2.1 ASP.NET技术介绍ASP.NET不仅仅是下一版本的 Active Server Page (ASP),而且还是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的优势。它是统一的Web开发平台,用来提供开发人员快速生成企业级 Web 应用程序所需的服务5。ASP.NET的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序。可以通过在现有ASP应用程序中逐渐添加,与以前的 Web 开发模型相比,A
14、SP.NET 提供了数个重要的优点:(1) 增强的性能ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。(2) 世界级的工具支持ASP.NET 框架补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。(3) 强大性和适应性因为ASP.NET是基于通用语言编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机
15、制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。ASP.NET同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C+和Java的结合体),VB,Jscript。这样的多种程序语言协同工作的能力会保护您现在的基于COM+开发的程序,能够完整的移植向ASP.NET。(4) 威力和灵活性由于 ASP.NET 基于公共语言,因此,Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方案都可从 Web访问。ASP.NET 也与语
16、言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行的交互性可保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。(5) 简易性ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置都非常简单。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,类似在 Visual Basic 的简单窗体处理模型中处理事件。允许你建立你自己的用户分界面,使其又不同于常见的VB-Like界面。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发,使把代码结合成软件简单的就像
17、装配电脑。(6) 可管理性ASP.NET使用一种字符基础的、分级的配置系统,使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为"Zero Local Administration"的哲学观念使ASP.NET的基于应用的开发更加具体、快捷。一个ASP.NET的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须文件,不需要系统的重新启动,一切就是这么简单。(7) 可缩放性和可用性ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到
18、ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。(8) 自定义性和扩展性ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。(9) 安全性借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。总之,ASP.NET 是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多,而且是
19、可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等3。2.2 数据库技术的介绍数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。随着计算机技术与网络通信技
20、术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络信息化管理系统的基础。从20世纪60年代末期开始到现在,数据库技术已经发展了30多年。在这30多年的历程中,人们在数据库技术的理论研究和系统开发上都取得了辉煌的成就,而且已经开始新一代数据库系统的深入研究。数据库已经成为现代计算机系统的重要组成部分。数据模型是数据库技术的核心和基础,因此,对数据库系统开发阶段的划分应该以数据模型的发展演变作为主要依据和标志。按照数据模型的发展演变过程,数据库技术从开始到现在,在短短的30年中,主要经历了三个发展阶段:第一代是网状和层次数据库系统,第二代是关系数据库系统,
21、第三代是以面向对象数据模型为主要特征的数据库系统。数据库技术与网络通信技术、人工智能技术、面向对象程序设计技术、并行计算机技术等相互渗透、有机结合,成为当代数据库技术发展的重要特征。SQL Server 2008由一组数量众多的数据库组件组成。这些组件在功能上互相补充,在使用方式上彼此协调,以满足用户在数据存储和管理、大型Web站点支持和企业数据分析处理上的需求6。SQL Server 2008是微软公司的大型数据库管理系统,它的主要特点有:(1) 强大的查询与管理功能;(2) 强大的数据库开发功能;(3) 扩大了对SQL语言的支持;(4) 大量使用可视化的界面操作工具;(5) 支持面向对象的
22、程序设计;(6) 多平台支持;(7) 支持网络应用。2.3 ADO.NET 简介ADO.NET是对Microsoft ActiveX Data Objects (ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。以前做数据库访问的时候,需要一直与数据库保持连接,直到获取完所有满足需要的数据之后才会断开数据库连接,这种数据库访
23、问方式称之为连接式数据访问技术。相比于以前的连接式数据访问技术,ADO.NET除了提供连接式数据访问技术之外,还提供了另一种断开式解决方案,那就是在内存中模拟一个数据库,也就是内存中的数据库。在ADO.NET中对上面提到的对象都在内存中进行了模拟,在内存中的数据库对象称之为DataSet,一个内存中的数据库(DataSet)可以包含多个在内存中的表(DataTable)和内存中的视图(DataView),并且也允许在表存在一些关系(DataRelation)。同时在一个内存中的表(DataTable)或者内存中的视图(DataView)中也允许存在行(DataRow)和列(DataColumn
24、)。 物理数据库与内存数据库之间的各对象的对应关系如下(图中颜色相同的表示二者基本上是一种对应关系):图2.1物理数据库与内存数据库之间的各对象的对应关系ADO.NET中的6个常用对象: Connection对象 ,Command对象 ,DataReader对象,DataAdapter对象,DataSet对象,DataTable对象。 严格地说,在.NET类库中并没有Connection、Command、DataAdapter和DataReader对象的,这是对相关的对象做了一个抽象。在实际的开发中,我们经常用到的数据库有Access、SQL Server、Oracle、MySQL等
25、,尽管大部分都遵循SQL国际化标准,但是它们在遵循标准的前提下又做了一些扩充,并且即使遵循了相同的标准,但是实现方法并不相同,所以在某些情况下实现相同的功能可能在不同的数据库中SQL语句并不相同。 于是,在ADO.NET也定义了一套用于访问数据库的标准,当然这个标准是以接口(interface)的形式提供的,各数据库厂商只要实现了这个接口就能在ADO.NET下正常工作(这也是接口的作用,接口就是用于指定规范,自己本身并不实现,在Java中针对数据库访问也有一套接口留待各数据库来实现)。当然在.NET类库中微软已经提供对Access、SQL Server和Oracle数据库对上面提到的接口的实现
26、。 在ADO.NET中定义的这一套接口是IDbConnection、IDbCommand、IDbDataAdapter和IDataReader,并且还有一套实现这些接口的抽象类,分别是DbConnection、DbCommand、DbDataAdapter和DataReader。图2.2数据库访问接口和抽象类图2.2最上面的是数据库访问接口,紧接着的是数据库访问抽象类,下面是针对不同数据库中实现这些接口的类,并且在括号中注明了其所在的命名空间,比如针对MySQL数据的数据库访问类就位于MySql.Data.MySqlClient命名空间下,关于MySql的数据库访问类需要到MySql数据库的官
27、方网站去下载,它的官方网站是:。其它的数据库访问类都在.net类库中自带了。需要注意的是访问SQL Server 7.0以下版本的SQL Server数据库时需要System.Data.OleD命名空间下一套数据库访问类,虽然这一套数据库访问类同样也能访问SQLServer2000以上版本,但是没有办法利用SQL Server数据库的一些新特性,所以不建议使用System.Data.OleDb命名空间下的类访问SQL Server2000以上的版本。针对SQL Server数据库讲述Connection、Command、DataAdapter和DataReader对象的用法,它们在其它数据库中
28、也有对应的类,除了有些SQL语句语法不一样之外,用法是基本一样的2。第3章 系统可行性分析 可行性研究是以相对短的时间和相对低的成本来确定给定的问题是否有解。这里相对短和相对低是指和实现建议系统所需时间和成本相比较而言。可行性研究主要从下述3个方面进行分析:技术可行性、经济可行性、操作可行性。3.1 技术可行性分析技术可行性的考虑集中在现存的计算机硬件能否支持被研究的系统,首先关心的是该组织是否有相应的软件和硬件能够支持处理建议的应用程序。其次考虑在规定平台之上,利用现有的成熟技术是否能够实现这个应用8。现代计算机硬、软件技术的飞速发展,为系统建设提供了技术条件。计算机等基础设施的更新换代也紧
29、跟潮流的发展,这就为开发系统提供了坚实基础。本系统的开发是建立在联想G450的2G内存和32位操作系统的硬件基础之上,并且软件基础为Microsoft SQL Server 2008和Microsoft Visual Studio 2010,利用ASP.NET技术进行开发,因此在技术上该系统的开发是可行的。3.2 经济可行性分析这是经典的并且是最常使用的评价计算机系统的方法。这个评价的结果称为成本效益分析。简单地说,经济可行性研究是确定得自新系统的节省和利益,将这些利益和系统的实现成本相比较,如果利益超过成本,则开发新系统的决策是肯定的;否则的话,除非有其他特殊原因,这个决策将是否定的9。本软
30、件的实现是作为考核学生学习情况的手段,不存在经济可行性的问题。3.3 操作可行性分析是指人员的手工操作而不是指计算机系统操作是否可行,也就是说在实现了建议的计算机系统后,所需要的配合的手工操作是否可行。在对本系统的开发时对界面的做了更加又好的设计,加上现在社会的工作学习中大多书都需要用到电脑操作,因此对本系统的人工手动操作会更加直观简单。第4章 系统需求分析在问题定义阶段对建议的功能、规模和约束条件等已经作了规定。在可行性研究阶段通过和使用者的交流,对用户的需求有了初步的了解。因此在这个阶段中,设计者应该进一步澄清问题定义中的模糊部分,更正错误部分。通过这个活动,清楚地描述系统的主要功能。4.
31、1 图例分析(1) 用例的目的:用例图使我们对系统的功能有了一个整体的认知,我们可以知道有哪些参与者会与系统发生交互,每一个参与者需要系统为它提供什么样的服务。(2) 用例的优点:用例方法完全是站在用户的角度上(从系统的外部)来描述系统的功能的。在用例方法中,我们把被定义系统看作是一个黑箱,我们并不关心系统内部是如何完成它所提供的功能的。用例方法首先描述了被定义系统有哪些外部使用者(抽象成为Actor),这些使用者与被定义系统发生交互;针对每一参与者,用例方法又描述了系统为这些参与者提供了什么样的服务(抽象成为Use Case),或者说系统是如何被这些参与者使用的。所以从用例图中,我们可以得到
32、对于被定义系统的一个总体印象7。 与传统的功能分解方式相比,用例方法完全是从外部来定义系统的功能,它把需求与设计完全分离开来。在面向对象的分析设计方法中,用例模型主要用于表述系统的功能性需求,系统的设计主要由对象模型来记录表述。另外,用例定义了系统功能的使用环境与上下文,每一个用例描述的是一个完整的系统服务(3) 确定本系统功能的用户用例图,如图4.1。a. 用户登陆本系统;b. 已经注册的用户:直接输入用户名和密码登陆系统;c. 未注册用户:进入注册页面,进行新用户注册;d. 登陆成功:进入邮箱,其中具有收发邮件、写邮件、删除邮件等功能;e. 操作系统完成:可以退出本系统。登录注册普通用户进
33、入邮箱写邮件发送邮件收邮件删邮件移动邮件退出图4.1 系统用户的用例图(4) 确定本系统功能的管理员用例图,如图4.2。a. 返回管理员登陆界面;b. 管理用户信息;c. 退出管理员系统。管理员登录添加用户删除用户修改用户资料退出管理用户修改密码显示用户详细资料图4.2 系统管理员的用例图4.2 系统管理员功能(1) 管理员登录:系统初始化好系统管理员,管理员能够通过该入口进入后台进行管理操作。(2) 管理员管理注册用户:管理员可以对系统的注册用户进行管理,查询系统中的注册用户,直接添加用户,对于违规用户可以删除,以及查看某注册用户的详细注册信息和修改用户资料。(3) 管理员修改密码:管理员可
34、以修改管理员密码。(4) 用户注册:新用户可以注册。注册的用户信息包括注册用户名名、密码、真实姓名、手机号码、生日、电子邮件等。所有的信息都是必填项。4.3 用户功能(1) 用户登录:系统注册用户使用自己注册的用户名登录系统,进行邮件的收发和管理。其中邮件的管理又包括收件箱、垃圾箱、发件箱、我的好友等的管理。(2) 撰写发送邮件:填写收件人、标题和收件内容后,可以给发件人发送邮件。(3) 收件箱管理:显示用户所有收到的邮件列表,可以查看邮件的详细内容,可以选中所要删除的邮件进行删除或者删除收件箱中所有邮件,也可以将邮件移动到垃圾箱中。(4) 发件箱管理:显示用户发送的所有邮件列表,可以查看邮件
35、的详细内容,可以选中所要删除的邮件进行删除或者删除所有已发邮件。(5) 垃圾箱管理:显示用户从收件箱或者发件箱移到垃圾箱中的邮件,可以查看邮件的详细内容,可以选中所要删除的邮件进行删除或者删除垃圾箱中所有邮件,所删除的邮件则被彻底地删除。(6) 我的好友管理:显示所有好友列表,可以添加好友,可以选中所要删除记录进行删除或者删除所有好友,可以查看个人详细信息。第5章 系统概要设计5.1 系统流程图系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程10。5.1.1 管理员
36、系统功能流程图管理员登陆管理用户修改密码添加用户查看用户信息修改用户资料删除用户修改图的字体首先管理员要系统参数设置和管理,当用户注册成为系统用户之后,管理员在进行对用户的管理工作,流程如下图5.1所示。图5.1 系统流程图-管理员5.1.2 普通用户的系统功能流程图 没有身份的用户需要先注册,登录系统后可以新建邮件、发送邮件新建文件夹、移动邮件等邮件管理操作。如下图5.2所示。普通用户登录文件管理邮件管理我的好友添加文件夹删除文件夹收取邮件撰写邮件发送邮件移动邮件删除邮件添加好友删除好友查看好友信息图5.2 系统功能图-普通用户5.2 系统模块功能图 通过系统模块的功能图描述,可以很直观的看
37、到系统的各个功能组件,功能图如下图5.3所示。此模块的功能图是从整个系统出发,描绘出来的。其中介绍了管理员各个功能和基本用户的功能等等。用模块的功能图描绘整个系统,使系统各个功能清晰可见,层次分明,是一种比较好的方法。邮件管理系统管 理 员 登 录用 户 登 录用户注册管 理 用 户修 改 密 码添 加 用 户文 件 夹 管 理 邮 件 管 理 我 的 好 友查看用户信息 修改用户资料删除用户 添加文件夹删除文件夹收取邮件 撰写邮件 发送邮件 移动邮件 删除邮件 添加好友 删除好友 查看好友信息 图5.3 模块的功能图5.3 数据库需求分析本系统根据上面的设计规划出的实体包括用户信息实体(Us
38、ers)、邮件实体(Mails)、好友实体(Friends)、文件夹实体(Floders)等。通过对实体联系的分析,一个用户管理多个邮件和文件夹,一个文件夹中有多个邮件,一个用户有多个好友,一个好友发送多个邮件。使用Microsoft visio2007设计E-R模型。将现实的信息简化为实体与实体之间的联系。实体关系图的分析结果也非常复杂,一般情况下使用自底向上的方法,首先对局部视图进行分析设计,然后再实现视图集成。这里不再对局部视图进行设计,直接给出视图集成后的E-R图,如图5.5所示。图5.4邮件管理系统数据库E-R图在设计时,充分考虑了用户使用邮件系统收发邮件的便捷性。其实,以上E-R图
39、只是简易邮件系统最基本元素的实体关系图,读者可以在此基础上根据用户的不同需要进行扩展。5.4 数据库数据模型设计在邮件服务器系统的数据库设计中,首先要创建系统数据库,然后在数据库中创建需要的表和字段。数据库设计是系统设计中非常重要的一个环节,因为数据库设计就像在建设高楼大厦的根基一样,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至于在系统开发过程中,都将会引起比较大的问题,有时大量的工作将会重新进行。考虑到将来功能上的扩展,设计如下所示的数据项和数据结构:用户信息:包括数据项,有用户名、密码等。邮件信息:包括数据项,有发件人、收件人、主题、内容、发送时间等。文件夹信息:包括数据项,有文
40、件夹名称、邮件总数、未读邮件数、创建时间等。基于上面的设计,在设计系统中的各表,表与表之间相互关联,共同存储着系统所需要的数据。在设计数据库表的过程中,一般要遵循几条原则,用数据库设计一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以再划分,实体的划分原则是最好能够比当前系统要开发的实体的复杂度小;数据表的信息结构一定要合适,标的字段的数量一般不要过多;扩充信息和动态变化的信息一定要分开在不同的表里;多对多这样的表关系尽量不要出现等。5.4.1 创建数据库在创建表与视图之前,首先要创建一个数据库,步骤如下:(1) 启动SQLServer服务管理器,启动
41、服务。(2) 进入企业管理器,建立数据库WebMail。本系统表的设计结果如表5.1所示。表5.1数据库表编号数据库表数据库表存储内容1Users 用户表2Mails邮件信息记录表3Folders文件夹表4Friends好友表5.4.2 创建数据表(1) 用户表表5.2是用户表,该表包含了用户的基本且必要的信息,其中UserID是“用户编号”,是主键,系统为用户分配的唯一标识符,它在整个用户表存储的数据里是互不相同的,而且在系统的许多其它表里也要用到它;用户名和密码也是必需的,作为用户登录的入口;用户类型用来区别是管理员还是普通用户。表5.2Users 用户表编号字段含义类型1UserID用户
42、编号int2UserName用户名varchar3RealName真实姓名varchar4UserPwd密码varchar5Phone电话号码varchar6Birthday生日varchar7EmailE-mailvarchar8UserType用户类型varchar(2) 邮件信息记录表表5.3是邮件信息记录表,记录系统用户所发送的所有邮件。其中MailID是“邮件编号”,是主键,系统为邮件分配的唯一标识符,它在整个邮件信息记录表存储的数据里是互不相同的,而且在系统的许多其它表里也要用到它;UserID是外键,对应到用户表中相应的用户;FolderID 也是外键对应到文件夹表中响应的文件夹
43、;IsRead用来标记是否已读;Trash用来标记是否为垃圾邮件。表5.3 Mails邮件信息记录表编号字段含义类型1MailID邮件编号int2UserID用户编号int3Title标题varchar4Body邮件内容text5FromAddress发件人地址nvarchar6ToAddress收件人地址nvarchar7SenderDate发送日期datetime8FolderID文件夹编号int9IsRead是否已读bit10Trash是否为垃圾邮件int(3) 文件夹表 表5.4是用户表,该表包含了文件夹的基本且必要的信息,其中FolderID是“文件夹编号”,是主键,系统为文件夹分配
44、的唯一标识符,它在整个文件夹表存储的数据里是互不相同的,而且在系统的许多其它表里也要用到它;AddUser是外键,对应到用户表中的相应的用户。表5.4 Folders文件夹表编号字段含义类型1FolderID文件夹编号int2Name文件夹名称varchar3Total文件夹中的邮件总数int 4NoReader未读邮件数量int5CreateDate创建时间datetime7AddUser添加文件夹的用户nvarchar(4) 好友表表5.5是friend好友表,该表用于记录用户加入到好友列表的用户,ID是主键;FriendName是好友的用户名;UserName是添加改好友的用户的用户名;
45、AddDate是添加好友的时间。表5.5 Friends好友表编号字段含义类型1ID唯一编号int2FriendName好友用户名varchar3UserName用户名varchar4AddDate添加时间datetime至此,个个数据表的结构全部设计完成,即定义好邮件系统的数据结构,用于存储邮件系统中的各项数据。第6章 程序设计与实现6.1 系统设计概括 有系统设计可知本系统的设计共分为如下两大部分:(1) 管理模块用于管理员对注册用户管理,它包括:管理员登录界面;用户管理:列表、查看、增加、删除;管理员修改密码。(2) 用户模块:用于用户进行邮件管理,它包括:注册:注册;登录:登录;撰写发
46、送邮件:发送邮件;收件箱管理:列表、查看、删除、移动;垃圾箱管理:列表、查看、删除、移动;发件箱管理:列表、查看、删除、移动;好友管理:列表、添加、查看、删除。根据这些整体关系的设计下面对每一个部分给出主界面的设计及其设计思路。6.2 功能模块设计与实现6.2.1 管理员模块的设计与实现在管理员用户登录的界面中,包括用户名和密码得输入文本框和登录身份选择的下拉框,管理员在登录时选择管理员身份进行登录,以及提交登录按钮和注册按钮。管理员登录界面如图6.1所示。图6.1管理员登录界面string xiaoUserName = txtUserName.Text.ToString().Trim();s
47、tring xiaoUserPwd = txtPwd.Text.ToString().Trim(); Users userLogin = new Users();bool isLogin = userLogin.IsExists(xiaoUserName, xiaoUserPwd);if (isLogin = true)string strUserType = userLogin.GetUserType(xiaoUserName);if (ddlUserType.SelectedValue.Equals("User") && strUserType.Equa
48、ls("1") Session"userName" = xiaoUserName; FormsAuthentication.RedirectFromLoginPage(txtUserName.Text.Trim(), false); else if (ddlUserType.SelectedValue.Equals("Admin")&&strUserType.Equals("2") Session"adminName" = xiaoUserName; Response.Redir
49、ect("/Admin/Default.aspx"); elsethis.ClientScript.RegisterStartupScript(this.GetType(),Guid.NewGuid().ToString(), "alert('用户类型选择错误,请重新选择!);", true); return;else Response.Write("<script language=javascript>alert('用户名或密码错误,请重新输入');</script>");该段代码主
50、要通过将管理员输入的用户名和密码和数据库中的用户名和密码进行比较,来进行判断,只有管理员输入的用户名和密码与数据库中的相同时才可以登录到管理员界面。管理员登录后,首要的功能是对系统用户的管理。管理员的管理界面上具有进入用户管理、添加用户和修改密码的入口。当管理员进行管理操作之后,要退出管理界面,则要退出管理的出口。图6.2所示即为管理员登录后的用户管理界面,可以查看用户的详细信息,编辑用户的信息,删除用户。用户的信息需要由系统管理员来进行管理和维护。为此,设计了用户列表的界面,该界面中需要包括如下的信息:用户名、真实姓名、密码、手机号码、生日、Email等,还提供用户管理的入口,包括产看用户的
51、详细信息、修改用户信息、删除等。图6.2管理员登录用户管理private void LoadgvAllUser() this.gvAllUser.DataSource = user.GetAllUsers_DS(); this.gvAllUser.DataBind(); 这段代码使所有的用户信息显示在GridView控件gvAllUser中。protected void gvAllUser_RowCommand(object sender, GridViewCommandEventArgs e) if (e.CommandName = "View")this.Respons
52、e.Redirect("/Admin/UserDetail.aspx?UserID="+e.CommandArgument.ToString();else if (e.CommandName = "Edit")this.Response.Redirect("/Admin/UserEdit.aspx?UserID="+e.CommandArgument.ToString(); 该段代码实现查看用户的详细信息,用户点击gvAllUser中的“详细”按钮,会跳转到用户详细信息现实的页面上。图6.3所示为管理员查看用户详细信息的界面,管理员可
53、以通过此界面查看用户的详细信息。图6.3管理员用户管理界面实现管理员查看用户详细信息的代码如下:protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) LoadUserInfo(); private void LoadUserInfo() if (Request"UserID" = null) this.ClientScript.RegisterStartupScript(this.GetType(),Guid.NewGuid().ToString(), "alert('输
54、入参数错误!');", true); return; DataSet ds_User = new Users().GetUserDetail(Request"UserID".ToString(); if (ds_User.Tables0.Rows.Count < 1) this.ClientScript.RegisterStartupScript(this.GetType(),Guid.NewGuid().ToString(), "alert('错误!');", true); return; lblUserName
55、.Text = ds_User.Tables0.Rows0"UserName".ToString(); lblPwd.Text = ds_User.Tables0.Rows0"UserPwd".ToString(); lblRealName.Text = ds_User.Tables0.Rows0"RealName".ToString(); lblPhone.Text = ds_User.Tables0.Rows0"Phone".ToString(); lblBirthday.Text = ds_User.Tabl
56、es0.Rows0"Birthday".ToString(); lblEmail.Text = ds_User.Tables0.Rows0"Email".ToString(); 管理员用过点击用户列表中的详细按钮查看想要查看的用户的详细信息,通过点击用户列表中的删除按钮,删除用户,删除成功后提示“删除成功!”,删除不成功提示“删除失败!”,实现代码如下: protected void gvAllUser_RowDeleting(object sender, GridViewDeleteEventArgs e) if (user.DeleteUser(this.gvAllUser.DataKeyse.RowIndex.Value.ToString()this.ClientScript.RegisterStartupScript(this.GetType(),Guid.NewGuid().ToString(), "alert('删除成功!');", true); elsethis.ClientScript.RegisterStartupScript(this.GetType(),Guid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源储能系统承包安装合同4篇
- 2024美容美发产品购销简单合同范本
- 2025年度深层水文地质勘探打井劳务服务合同4篇
- 2024版智能家居设备租赁合同
- 2024私人房屋买卖合同范本53299
- 2024销售无标签油烟机合同范本
- 2024版金融信息服务框架合同
- 2024运营总监企业创新机制与激励机制合同3篇
- 2025年度停车场照明设施改造承包合同4篇
- 2021-2026年中国饮料瓶智能回收机市场调查研究及行业投资潜力预测报告
- 拆迁评估机构选定方案
- 床旁超声监测胃残余量
- 上海市松江区市级名校2025届数学高一上期末达标检测试题含解析
- 综合实践活动教案三上
- 《新能源汽车电气设备构造与维修》项目三 新能源汽车照明与信号系统检修
- 2024年新课标《义务教育数学课程标准》测试题(附含答案)
- 医院培训课件:《静脉中等长度导管临床应用专家共识》
- 趣味知识问答100道
- 中国国际大学生创新大赛与“挑战杯”大学生创业计划竞赛(第十一章)大学生创新创业教程
- 钢管竖向承载力表
- 2024年新北师大版八年级上册物理全册教学课件(新版教材)
评论
0/150
提交评论