版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能楼宇毕业设计指导老师:学生姓名:摘要电子邮件的使用简易,投递迅速,收费低廉,易于保存,全球畅通无阻,使得电子邮件被广泛地应用,当前流行的各大邮件系统除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更见显得太过于华丽而不太实用。有鉴于此,开发一个集收、发、管理为一体的功能相对简单实用的电子邮件系统可以大大方便我们对邮件的收发和管理。基于C/S架构的邮件管理系统以SQL Server 2005数据库,使用.NET技术开发而成。是一款融合了邮件发送、邮件接收、个人邮件管理等功能的计算机软件系统。其中邮件发送和接收是系统的两
2、大特色,用户可以发送指定帐户的邮件,并且可以接收到指定帐户上的邮件,这些帐户都是用户可以在本邮件管理系统中设置的,同时,还可以将自己发送的邮件保存到发件箱供以后查看。本论文以软件工程理论为指导,论述了系统的设计构想,分析了系统开发各个阶段的主要任务,并详细阐述了系统各个功能模块的实现原理及解决方案。是对系统开发过程的详细说明与总结。关键词邮件客户端;C/S架构;.NET技术Design and Implement of E-Mail Client SystemName of tutor: Name of student :Abstract Email has been increasingly
3、 popular these days since it is simple, instantaneous, globally used, cheap and easy to save. The current mainstream email systems embrace more and more complicated functions, far beyond the basics like sending and receiving mails. However, people do not really use all these fancy and impractical fu
4、nctions, especially for those who know few about computers. Therefore, it would be of great users convenience to develop a simple, practical and user-friendly email system, which integrates sending and receiving functions with email management.The Web based internet email system, which uses the SQL
5、Server 2005 database and is developed by .NET technology, is one computer software system that combines sending and receiving emails with personal emails management. Its main features include sending and replying emails. Users can send and receive mails of pre-setting mail accounts, and save and vie
6、w the sent emails later. The present paper, with software engineering theory as guidance, discussed the system design concept and analysis the main task of the various stages of system development and introduced the system principle and solutions of the various functional modules. The paper summariz
7、ed the system development process.Key WordsEmail Client;C/SFramework;.NET Technology前言2第1章需求分析31.1 邮件系统实施背景31.2 邮件系统应用需求31.3 邮件系统性能需求4第2章邮件系统总体设计52.1 邮件系统设计思路52.2 邮件系统结构设计5邮件系统的总设计图例5邮件系统的软件总体架构5邮件系统用户使用界面的设计62.2.4 邮件系统的数据流程分析与设计82.3IP地址的分配原则10第3章系统详细的部署方案113.1用户主界面模块的总体部署方案113.2邮件系统登录与窗口的总体设计与实现12服
8、务器登录模块的设计与实现12用户发送模块的设计与实现13用户接收模块的设计与实现16第4章邮件系统的运行与测试184.1 同一SMTP服务器发送邮件的测试184.1.1 同一服务器,发送一封纯文本邮件的测试184.1.2 同一服务器,发送一封带附件的邮件的测试194.2 利用不同的SMTP服务器发送邮件的测试19参考文献20致谢20前言电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收
9、、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中
10、读取信件,信箱实际上是由文件管理系统支持的个实体。因为电子邮件是通过邮件服务器(mai1 server)来传递档的。通常mail server是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向 mail server管理人员申请个信箱账号,就可使用这项快速的邮件服务。电子邮件的工作原理:1) 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。2) 电子邮件的基本原理,
11、是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的个电子信箱。并确定个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。3) 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另个邮件系统进行传递和交换。收方在
12、取信时,使用特定账号从信箱提取。第1章需求分析1.1 邮件系统实施背景当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。有鉴于此,在了解RFC底层协议的基础上,我们开发了这个各种功能相对简单实用的邮件客户端程序,简化了很多不必要的功能。1.2 邮件系统应用需求l 邮件管理系统用户需求分析实际结合邮件管理系统的现实情况来说,主要有如下一些需求:1. 邮件帐户管理,新建邮件帐户,删除邮件帐户。2. 新建邮件,选择一个邮件帐户,输入收件人地址,发送邮件。3. 接收邮件,
13、选择一个邮件帐户,接收该邮件帐户上的邮件。4. 邮件夹管理,包括发件箱,收件箱。根据以上的分析,本系统主要实现邮件账户管理;邮件发送;邮件接收;收件箱、发件箱管理等功能。希望通过该系统的建设能够基本实现一个简单且功能较为完备的邮件收发客户端系统。l 系统功能需求分析概述根据用户需求,该邮件管理系统主要应包括如下功能:(1)邮件帐户设置邮件管理系统客户端软件需要支持多帐户邮件收发,类似OutLook Express、FoxMail等邮件客户端软件。本系统能够支持新建邮件帐户、删除邮件账户等功能;(2)邮件发送发送邮件是一个邮件客户端软件的最基本功能,要求可以输入收件人的地址、邮件标题、邮件正文内
14、容、并能够支持邮件附件。能够正常发送普通邮件和带附件的邮件。(3)邮件接收要求能够接收系统中所有帐户的邮件,具体是先选择一个帐户,然后将该账户下的邮件接收到收件箱中。接收到的是一个邮件列表,主要包括邮件发件人、邮件标题、发送时间等信息。(4)邮件夹管理要求能够将用户收到的邮件放入收件箱中以列表的形式进行显示,对用户发送的邮件同样在发件箱中以列表形式进行显示。(5)其他功能主要包括邮件管理系统界面要美观,操作简便等。1.3 邮件系统性能需求由于本邮件管理系统软件是安装在个人电脑上的客户端软件,所以要求用户界面简洁,友好,方便使用和操作。邮件管理系统的基本功能是收发邮件和账户管理,要求账户管理能够
15、实时响应,发送邮件时要求系统响应速度快,发送普通邮件要求在3秒内发送完成。发送带附件的邮件能够在1分钟之内发送完成。系统响应速度决定用户体验,如果一款软件每个操作都要用户等待很长时间,那这注定是一款失败的软件系统。邮件收取同样要求速度不能太慢,对于普通邮件,要求5秒钟之内可以收取一封。对于带附件的邮件,要求能够在1分钟之内收取完成。此外,系统运行时候不能占用太多资源,试想一下,假如,当用户使用这款软件时,软件占用了太多的系统资源而导致用户对电脑的其他操作都很难进行,那么,谁还会用这款软件呢?所以,该软件还应该具备一种特点就是:低的系统资源占用率。第2章 邮件系统总体设计2.1邮件系统设计思路首
16、先要建立Mail Server这是肯定的,要不然你的邮件不能和外部交互的。可以用开源的邮件系统,一般会提供一个邮件的DB或者文件存储结构,你的程序可以直接读这些文件或者DB,提取信息就可以了。标准做法是做一个POP3的邮件客户端程序,定时检查邮件服务器的内容,把邮件下载下来。2.2邮件系统结构设计2.2.1邮件系统的总设计图例图2.1系统总体流程图2.2.2 邮件系统的软件总体架构本系统的系统功能模块结构图如下图2.1所示:邮件管理系统帐户管理邮件夹登录退出系统登录退出程序收件箱发件箱收发邮件收取账户邮件发送邮件新建邮件账户删除邮件账户图2.2系统功能结构图2.2.3 邮件系统用户使用界面的设
17、计 图2.3 用户登陆界面流程图如下:登录处理代码如下:private void btnLogin_Click(object sender, EventArgs e) UsersManager um = new UsersManager(); Users u = um.Load(new ChinaVcv.Common.ParamTable("mingcheng", txtUserName.Text); if (u = null) MessageBox.Show("不存在的用户名"); return; if (u.Password != txtPasswo
18、rd.Text) MessageBox.Show("密码错误,请从新输入"); txtPassword.Focus(); return; this.Hide(); Start s = new Start(); s.Show(); 2.2.4邮件系统的数据流程分析与设计该邮件管理系统采用了模块化设计思想,数据库操作被封装到一个单独的C#工程中,该c#工程编译后生成DLL文件供邮件管理系统UI模块使用。数据库操作被封装到该模块中,其中,数据库连接字符串写到dbhelpconfig.xml配置文件中,该配置文件内容如下所示:<?xml version="1.0&q
19、uot; encoding="utf-8" ?><Configs> <Connections name="SQL Server 2005" > <!-start 表示数据库为默认连接,生效-> <Connection type="Mircosoft SQL Server 2000/2005" dirverclass="ChinaVcv.DataAcessLayer.SqlDataBase" url="server=.SQLEXPRESS;uid=sa;pwd
20、=2005;database=mail" default="true"/> </Connections></Configs>数据库操作被封装到DataAcessLayer类中,由于该类代码庞大,所以只截取部分关键代码/ <summary>/ 打开数据库连接/ </summary>/ <returns>成功返回真</returns>private bool OpenConnection() try if(DBConfig.IsSQLServer() con.Open(); if (DBCo
21、nfig.IsOracleSerials() oraclecon.Open(); catch (SqlException ex) lasterror = ex.Message; throw ex; /return false; return true;/ <summary>/ 通过执行sql返回一个DataReader/ </summary>/ <param name="sql"></param>/ <returns>返回一个DataReader</returns>public IDataReader
22、ExecuteReaderBySql(String sql) AsserArgument(sql); CommandText = sql; SetCommandTpye(CommandType.Text); return ExecuteReader();/ <summary>/ 执行sql语句不返回结果/ </summary>/ <param name="SQL">sql语句</param>public void ExecuteNonQueryBySql(String SQL) AsserArgument(SQL); Comm
23、andText = SQL; SetCommandTpye(CommandType.Text); ExecuteNonQuery();/ <summary>/ 执行sql语句返回一个DataSet/ </summary>/ <param name="sql">sql语句</param>/ <returns></returns>public DataSet QueryResultBySql(String sql) AsserArgument(sql); SetCommandTpye(CommandType
24、.Text); CommandText = sql; return QueryResult();2.3 IP地址的分配原则A、B、C三类IP地址的特点:当将IP地址写成二进制情势时,A类地址的第一位总是O,B类地址的前两位总是10,C类地址的前三位总是110。 1. A类地址 (1)A类地址第1字节为网络地址,其它3个字节为主机地址。 (2)A类地址范畴: (3)A类地址中的私有地址和保存地址: 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不应用,而被用在局域网络中的地址)。 范畴(.0-55) 127.X.X.X是保留地址,用做循环测试用的。 2. B类地
25、址 (1) B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。 (2) B类地址范围:?54。 (3) B类地址的私有地址和保留地址 ?55是私有地址 169.254.X.X是保存地址。假如你的IP地址是主动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。 3. C类地址 (1)C类地址第1字节、第2字节和第3个字节为网络地址,第4个个字节为主机地址。另外第1个字节的前三位固定为110。 (2)C类地址范围:?54。 (
26、3) C类地址中的私有地址: 192.168.X.X是私有地址。(-55) 4. D类地址 (1) D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。 5. E类地址 (1) E类地址不分网络地址和主机地址,它的第1个字节的前五位固定为11110。私有IP地址IANA(Internet Assigned Numbers Authority)将A、B、C类地址的一部分保存下来,什么国庆哦,作为私人IP地址空间,用于各类专用网络,如企业网、校园网等,?莪?。私有IP地址段:A类:地址范围:.055 ,网络号
27、:10 ,网络数:1;B类:地址范畴:55 ,网络号:172.16172.31 ,网络数:16;C类:地址规模:55 ,网络号:192.168.0192.168.255 ,网络数:255;第3章 系统详细的部署方案3.1用户主界面模块的总体部署方案登录后进入系统主页面,主页面分为上下两部分,上一部分由标题栏、菜单栏和图标栏构成。下一部分显示邮件夹、邮件列表等信息。系统主界面如下图3.1所示:图3.1邮件管理系统主界面3.2邮件系统登录与窗口的总体设计与实现3.2.1服务器登录模块的设计与实现使用邮件管理
28、系统必须要登录,系统登录界面如下图3.2所示:图3.2用户登录界面流程图如下:登录处理代码如下:private void btnLogin_Click(object sender, EventArgs e) UsersManager um = new UsersManager(); Users u = um.Load(new ChinaVcv.Common.ParamTable("mingcheng", txtUserName.Text); if (u = null) MessageBox.Show("不存在的用户名"); return; if (u.P
29、assword != txtPassword.Text) MessageBox.Show("密码错误,请从新输入"); txtPassword.Focus(); return; this.Hide(); Start s = new Start(); s.Show(); 3.2.2用户发送模块的设计与实现单击菜单栏里的发送邮件菜单,弹出选择用户账户界面,如下图所示:图发送邮件选择邮件账户选择相应的账户,单击确定。弹出邮件发送界面,用户可以在此界面上输入收件人地址、邮件主题、邮件内容,可以增加附件。如下图所示:图发送邮件界面发送邮件的核心类名为SmtpMail,隶属于命名空间M
30、ailSend。封装了发送邮件的具体实现方法,也是具体的RFC用代码实现的过程。而用户通过具体的操作接口,接口与SmtpMail类通过交互操作来实现用户发送信件的操作。流程图如下:邮件发送的代码如下所示:SmtpMail send = new SmtpMail(alAttachement); Cursor.Current = Cursors.WaitCursor; send.Charset = "GB2312" send.Priority = "Normal" send.eSmtp = true; send.MailServerUserName = Fa
31、njiaAccount.Email; send.MailServerPassWord = FanjiaAccount.Password; Boolean res = send.Send(FanjiaAccount.Smtpserver, FanjiaAccount.Email, FanjiaAccount.Beizhu, txtmaildizhi.Text, true, txtTitle.Text, txtContent.Text); Cursor.Current = Cursors.Default; FajianxiangManager fjxm = new FajianxiangManag
32、er(); Fajianxiang fjx = new Fajianxiang(); fjx.Id = (fjxm.GetMaxIndex() + 1).ToString(); /发件人 fjx.Fajianren = send.From; /收件人 fjx.Shoujianren = txtmaildizhi.Text; fjx.Title = txtTitle.Text; fjx.Content = txtContent.Text; fjx.Attchement = "" fjx.Fasongshjian = DateTime.Now; fjx.Status = res
33、 = true ? "已发送" : "待发送" fjxm.Save(fjx); if (res) MessageBox.Show("邮件发送成功"); else MessageBox.Show("邮件发送失败");3.2.3用户接收模块的设计与实现单击主页面上的接收邮件图标按钮,弹出账户选择界面,用户选择一个邮件账户,就可以把该账户的邮件全部接收显示到界面上。如下图和图所示:图账户选择界面图接收邮件界面流程图如下:第4章邮件系统的运行与测试主要的测试是围绕发送邮件展开的,具体的可以分为以下几个方面。4.1 同一SM
34、TP服务器发送邮件的测试这个方面的测试测的是,用户登录一个服务器(测试中用的是163和新浪的SMTP服务器)来发送一封邮件的测试。而这个测试又可以分为以下两个方面:4.1.1同一服务器,发送一封纯文本邮件的测试1)发送一封文本邮件给一个收信人测试中用163的邮箱分别往163的邮箱以及新浪的邮箱发送邮件均可以用FoxMail正常的接收到发送的普通的纯文本文件。2)发送一封文本邮件给多个收件人测试中仍然用163的邮箱同时发往不同的邮箱,通过FoxMail都可以正常的接收到。从而很好的验证了,我们的邮件发送系统支持群发的功能。4.1.2同一服务器,发送一封带附件的邮件的测试1)发送一封带附件(可以是
35、多附件)的邮件给一个收件人测试中用163的邮箱分别往163的邮箱以及新浪的邮箱发送之外,又添加了不同的邮件类型(个数分别为等于1,大于1即验证是否支持多附件的发送),用FoxMail接收之后,所有发送的纯文本信息,以及附件信息都正常无误。经过这些验证可以证明本软件支持对一个收件人发送多附件。由于带有多附件的信件,所以写入速度明显慢于纯文本邮件的速度。2)发送一封带附件(可以是多附件)的邮件给多个收件人测试中用163的邮箱分别往163的邮箱以及新浪的邮箱发送之外,又添加了不同的邮件类型(个数分别为等于1,大于1即验证是否支持多附件的发送),用FoxMail接收之后,所有发送的纯文本信息,以及附件
36、信息都正常无误。经过这些验证可以证明本软件支持对多个收件人发送多附件。4.2 利用不同的SMTP服务器发送邮件的测试这个方面的测试是指利用不同的邮箱来发送邮件,至于测试的分类雷同于利用同一服务器发送邮件的测试,所以不再此赘述。总之,通过以上的各方面的测试,使我改正了代码中的许多不合理以及错误之处,最终也证明了,我们的软件系统是支持多种服务器,支持多附件发送的群发软件。总结这次编写的邮件客户端系统,我负责的是邮件的发送的功能。在熟悉了专门用于发送邮件的SMTP协议以及RFC规定的邮件的格式的基础上,运用了微软新推出的C Sharp这一新型的面向对象语言的便利性和灵活性,从SMTP协议规定的底层命令做起,一步步的与服务器进行交互操作,最终实现发送多附件多接收人的功能。其中,具体的和服务器的交互操作,都封装了在SmtpMail.dll这个动态链接库里面了。而为了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大庆市龙凤区中小学编制教师招聘考试模拟试题及答案详解
- 2026年江苏省盐城市事业编单位人员招聘笔试备考试题及答案详解
- 2026年北京市宣武区事业编单位人员招聘笔试备考题库及答案详解
- 2026年昆明市东川区中小学编制教师招聘笔试参考题库及答案详解
- 2026年鹤岗市兴安区中小学编制教师招聘笔试备考试题及答案详解
- 2026年长春市绿园区中小学编制教师招聘笔试备考试题及答案详解
- 2026年太原市尖草坪区事业编单位人员招聘笔试备考题库及答案详解
- 2026年江西省南昌市中小学编制教师招聘考试备考试题及答案详解
- 2026年淮北市烈山区事业编单位人员招聘笔试备考试题及答案详解
- 2026年黑龙江省牡丹江市中小学编制教师招聘笔试备考试题及答案详解
- 爆破作业项目现场安全管理规范
- 国企员工职业晋升路径规划手册
- 儿童颜面部管理
- 炉子拆除施工方案
- 昆山编外人员考试真题
- 中职flash考试试题及答案
- 充电车棚搭建合同范本
- 学校教师意识形态培训
- bz-高标准农田建设项目勘察设计技术投标方案210
- CNAS-SC143-2018 业务连续性管理体系认证机构认可方案
- 2025年1月浙江省高考政治真题卷含答案解析
评论
0/150
提交评论