收藏 分享(赏)

基于CS的电子邮件简单收发系统设计与实现.doc

上传人:wo7103235 文档编号:4927405 上传时间:2019-01-23 格式:DOC 页数:28 大小:1.07MB
下载 相关 举报
基于CS的电子邮件简单收发系统设计与实现.doc_第1页
第1页 / 共28页
基于CS的电子邮件简单收发系统设计与实现.doc_第2页
第2页 / 共28页
基于CS的电子邮件简单收发系统设计与实现.doc_第3页
第3页 / 共28页
基于CS的电子邮件简单收发系统设计与实现.doc_第4页
第4页 / 共28页
基于CS的电子邮件简单收发系统设计与实现.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、基于 C/S 的电子邮件简单收发系统设计与实现摘 要电子邮件作为互联网中交换信息广泛的通信工具之一,如今都已被广大用户接受。早期的电子邮件只是从一个计算机终端向另外一个计算机终端传送文本信息,而现在的电子邮件不仅可以发送文本信息,还可以传送声音、图片、文档等多种信息。很多邮件邮件客户端软件不断地被用户利用起来,例如outlook,Foxmail,但是这些邮件客户端对于很多用户来说却过于复杂。为了方便用户快捷地收发邮件,本课题利用 SMTP 协议和 POP3 协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。为了保证本系统功能的完整性,在实现该系统过程中,设计

2、了邮件用户注册模块,当用户首次使用本系统时,须注册一个邮件账号,然后才能进行其他的操作。作为一个电子邮件客户端,邮件的发送与收取是其核心功能,本系统邮件发送块实现电子邮件的发送,支持邮件的单个发送和群发,在邮件收取块,实现了电子邮件的简单收取。另外还增加了地址薄管理块让用户更方便地管理自己的联系人,对联系人进行添加、修改、删除等。关键词:电子邮件;SMTP;POP3;邮件收发系统Design and Implementation of Simple Email Receiving and Sending System Based on C/S AbstractEmail is the comm

3、unication tool which is widely used in the internet to exchange information. Now it has been accepted by many people. In the early days, email is only used in transmitting pure text information from a computer terminal to another. But at present, it is not limited in this, it can support many types

4、of information, such as voice, picture, document and so on. Much software has been used by users. such as Outlook, Foxmail and so on. But they are too complex to many users. In order to send and receive email conveniently, a simple email sending and receiving system has been designed based on SMTP a

5、nd POP3 protocol after requirement analysis and protocols learning. To prove integrality of the system, the block of accounts registering is necessary. When using this system first time, users should register one account. It has the kernel function of sending and receiving email. In the block of sen

6、ding email, group sending is supported. In addition, there is an address management block.Key words: E-mail; SMTP; POP3; Mail Receiving and Sending System第 1 页 1 引言1.1 邮件客户端相关介绍电子邮件(Electronic Mail、E-mai1)又称电子信箱,它是种用电子手段提供信息交换的通信方式,是应用于网络上的使用最广泛的网络功能之一。到目前为止,可以说电子邮件是 Internet 资源使用最多的一种服务,E-mail 不只局限

7、于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件不是“终端到终端”的服务,而是被称为“存贮转发式”的服务。“存贮转发式”正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。电子邮件的发送几乎是即时的并且可以一次发送给多个人,发送和接收主要通过 SMTP 协议和 POP3 协议来实现,经过几十年的发展,电子邮件系统已经形成了完善的技术体系。电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。电子邮件系统采用“存储转发”的机制来完成电子邮件的收发。邮件服务器处理发送和接收消息的事项,并在处理电子邮件的过程中与其他机器进行通信。图 1 工作

8、流程图1.2 课题背景随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。电子邮件作为互联网中交换信息广泛的通信工具之一,如今都已被广大网民接受。在了解 RFC 底层协议的基础上,本课题开发了这个功能相对简单实用的邮件客户端程序。1.3 现状分析电子邮件来源于专有电子邮件系统,早在 Internet 流行以前,电子邮件就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一台计算机终端传送文本信息的相对简单的方法下发展起来的。经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图像、文档等多媒体信息,以

9、至于如数据库或账户报告等更加专业化的文件都可以以电子邮件附件的形式在网上分发。现在,电子邮件已成为许多商家和组织机构的生命血脉,用户可以通过电子邮件的讨论会进行项目管理,并且有时第 2 页 还根据快速而且跨洲际的电子邮件信息交换进行重要的决策行动。毫无疑问的是,Internet 扩展了其应用的范围,过去只能在其局域网上进行交谈的公司现在可以通过网络与他们的客户、竞争伙伴与世界上的任何人进行通信和交流。一旦某个组织的电子邮件系统运行在支持 TCP/IP 协议的网络上或具有支持两个Internet 邮件服务协议 SMTP(简单邮件传输协议)和 POP(邮局协议)之一的Internet 网关,它的邮

10、件用户就能够连接到任何具有相似连接的电子邮件地址上了,并且不论其电子邮件账户在何处。2 电子邮件相关协议开发邮件客户端程序,就不得不用到 RFC822 邮件格式、SMTP 协议和 POP3协议。RFC822 定义了用于电子邮件报文的格式,即 RFC822 定义了 POP3、SMTP以及其他电子邮件传输协议所提交、传输的内容;POP3 是因特网上传输邮件的第一个协议,也是一个离线协议;SMTP 是 Internet 上传输电子邮件的标准协议,用于提交和传送电子邮件,规定了主机之间传输电子邮件的标准交换格式和邮件在链路层上的传输机制。2.1 RFC822 邮件格式RFC822 中对电子邮件的格式加

11、以定义,内容全部由 ASCII 字符组成,就是通常所说的文本文件,因而标准将它称为 Internet 文本信件(Internet Text Messages)。为了支持多媒体文档的传输,1996 年又发表了一系列的关于MIME(Multipurpose Internet mail Extensions)格式的定义。RFC822 定义的邮件格式由两部分组成:邮件头(也称信封)和邮件内容。邮件头包括与传输、投递邮件有关的信息;邮件内容包括标题和正文。2.2 SMTP 协议SMTP( Simple Mail Transfer Protocol)简单邮件传输协议,是目前使用最广泛的发送电子邮件的协议。

12、SMTP 通常用于把电子邮件从客户机传输到服务器,以及从某一服务器传输到另一个服务器。2.2.1 SMTP 协议简介简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。SMTP 的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),该环境可以包括一个网络,几个网络或一个网络的子网。传送系统(或 IPCE)不是一对一的,进程可能直接和其它进程通过已知的 IPCE 通信。邮件是一个应用程序或进程间通信,邮件可以通过连接在不同 IPCE 上的进程跨网络进行邮件传送,更特别的是,邮件可以通过不同网络上的

13、主机进行接力式传送。SMTP 设计基于以下通信模型:针对用户的邮件请求,发送 SMTP 与接收第 3 页 SMTP 之间建立一个双向传送通道。接收 SMTP 可以是最终接收者也可以是中间传送者。SMTP 命令由发送 SMTP 发出,由接收 SMTP 接收,而应答则反方向传送。一旦传送通道建立,SMTP 发送者发送 MAIL 命令指明邮件发送者。如果SMTP 接收者可以接收邮件则返回 OK 应答。SMTP 发送者再发出 RCPT 命令确认邮件是否接收到。如果 SMTP 接收者接收,则返回 OK 应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。当接收者收到全部

14、邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK 应答。SMTP 提供传送邮件的机制,如果接收方与发送方连接在同一个传送服务下时,邮件可以直接由发送方主机传送到接收方主机;当两者不在同一个传送服务下时,通过中继 SMTP 服务器传送,为了能够对 SMTP 服务器提供中继能力,它必须拥有最终目的主机地址和邮箱名称。SMTP 的工作过程有一下几个过程有:(Mail)基本发送过程,向前传送邮件,确认邮箱名称和扩展邮件列表,发送到终端和打开关闭交换等。2.2.2 SMTP 的命令与应答SMTP 定义了 14 个命令,它们是:HELO  MAIL FROM: RCPT TO: D

15、ATA RSET SEND FROM: SOML FROM: SAML FROM: VRFY  EXPN  HELP NOOP QUIT TURN 其中使得 SMTP 工作的基本的命令有 7 个,分别为:HELO,MAIL,RCPT,DATA,REST,NOOP 和 QUIT。下面分别介绍如下:第 4 页 HELO-发件方向收件方问候,命令后面是发件人的服务器地址或标识。收件方回答 OK 时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。MAIL-这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无

16、法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的,这个命令会清空有关的缓冲区,为新的邮件做好准备。RCPT -这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,它必须报 550 错误代码通知发件方;如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。DATA-收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以单独一行是“.“的行结束数据。结束行对于接收方意味着立即开始缓冲区内的数据传送,传送结束后清空缓冲区;如果传送接受

17、,接收方回复 OK。REST-这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据、发件人数据和待传送的数据都必须清除,接收方必须回答 OK。NOOP-这个命令不影响任何参数,只是要求接收方回答 OK,不会影响缓冲区的数据。QUIT-SMTP 要求接收方必须回答 OK,然后中断传输。在收到这个命令并回答 OK 前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到 OK 答复前,也不得中断连接。对 SMTP 命令的响应是多样的,它确定了在邮件传输过程中请求和处理的同步,也保证了发送 SMTP 知道接收 SMTP 的状态。每个命令必须有且只有一个响应。SMTP 响应由三位数字组

18、成,其后跟一些文本。数字决定了下一个应该进入的状态,而文本对人是有意义的。三位的响应已经包括了足够的信息,不用再阅读文本,文本可以直接抛弃或者传递给用户。特别的是,文本是与接收和环境相关的,所以每次接收到的文本可能不同。在附录 E 中可以看到全部的响应码。正规的情况下,响应由下面序列构成:三位的数字,一行文本和一个,或者也可以是一个多行响应。只有 EXPN 和 HELP 命令可以导致多行应答,然而对所有命令,多行响应都是允许的。SMTP 协议传送邮件的应答:500 格式错误,命令不可识别(此错误也包括命令行过长)第 5 页 501 参数格式错误502 命令不可实现503 错误的命令序列504

19、命令参数不可实现211 系统状态或系统帮助响应214 帮助信息220 服务就绪221 服务关闭传输信道 421 服务未就绪,关闭传输信道(当必须关闭时,此应答可以作为对任何命令的响应)250 要求的邮件操作完成251 用户非本地,将转发向450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)451 放弃要求的操作;处理过程中出错551 用户非本地,请尝试452 系统存储不足,要求的操作未执行552 过量的存储分配,要求的操作未执行553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)354 开始邮件输入,以.结束55

20、4 操作失败2.3 POP3 协议POP3(Post office Protrol,邮局协议,第 3 版)是 Internet 上传输电子邮件的第一个标准协议,也是一个离线协议。POP3 为客户机提供了发送信任状(用户名和密码),这样就可以规范对电子邮件的访问。POP3 是绝大多数邮件收发程序使用的协议,用户接收邮件时,一般都使用该协议。2.3.1 POP3 协议简介POP3 协议适用于 C/S 结构的脱机模型的电子邮件协议。在 POP3 协议下,当客户机与服务器连接并查询电子邮件时,被客户机所指定的将被下载的邮件都将被程序下载到客户机,下载后客户机可进行读取,修改等操作,而无需与服务器进一步

21、交互。POP3 客户向 POP3 服务器发送命令并等待响应,POP3 命令采用命令行形式,用 ASCII 码表示。第 6 页 服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以 ASCII 文本+OK 或-ERR 指出相应的操作状态。在 POP3 协议中有三种状态,即认可状态,处理状态和更新状态。当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出 quit 命令,则进入更新状态,更新之后重返认可状态。图 2 POP3 协议与三种状态间的关系2.3.2 POP3 的命令和应答一般情况下,大多数现有的 POP3 客

22、户端与服务器执行采用 ASCII 明文发送用户名和口令,在认可状态等待客户连接的情况下,客户发出连接,并由命令user/pass 对在网络上发送明文用户名和口令给服务器 进行身份确认。一旦确认成功,便转入处理状态。为了避免发送明文口令的问题,有一种新的认证方法,命令为 APOP,使用 APOP,口令在传输之前被加密。当第一次与服务器连接时,POP3 服务器向客户机发送一个 ASCII 码问候,这个问候由一串字符组成对每个客户机是唯一的,与当时的时间有关,然后客户机把它的纯文本口令附加到从服务器接收到的字符串之后,然后计算出结果字符串的 MD5 单出函数消息摘要,客户机把用户名与 MD5 消息摘

23、要作为 APOP 命令的参数一起发送出去。一开始便是客户端与服务器的连接,端口设为 POP3 协议默认的 110。 客户端连接服务器成功后,服务器会返回以下信息: +OK 字符+OK 是 POP3协议的返回信息。它的回应信息不像 SMTP 协议那样用丰富多变的数字表示,只有两个:+OK 或者-ERR。其中,+OK 表示连接成功,而-ERR 则表示连接失败。 接下来,客户端输入 USER 该命令告诉服务器你的用户名。注意,有些服务器会区分大小写字母的。服务器返回+OK 后,客户端输入 PASS 服务器返回+OK 后,还返回一些邮箱的统计信息,比如:+OK 1 message(s) 1304 by

24、te(s) 不同的服务器返回的信息格式不太一样,所以我们可以用STAT 命令来查看邮箱的情况。STAT 命令的回应中有两个数字,分别表示邮件的数量和邮件的大小。如果信箱里有信,就可以用 RETR 命令来获取邮件的正文。第 7 页 RETR 命令的格式为: RETR 如果返回结果第一行是+OK 信息,则表示成功。第二行起便是邮件的正文。最后一行和 SMTP 协议一样,是一个单独的英文句号,表示邮件的结尾部分。把邮件存储起来后要用 DELE 命令删除邮箱中的邮件,否则原有的邮件会继续保留在服务器上,一旦邮件一多,你的邮箱就爆了。DELE 命令的格式为: DELE 如果删错了,可以用 RSET 命令

25、来恢复所有已被删除的邮件。条件是你还没有退出,一旦退出,邮件便不能恢复了。全部完成以后,输入 QUIT 命令就可以退出 POP3 服务器了。表 1 pop3 协议命令码命令 参数 状态 说明USER 用户名 认可 此命令与 PASS 若成功,将导致状态转换PASS 密码 认可 APOP 名字,Digest 认可 Digest 是 MD5 的消息摘要STAT 名字,Digest 处理 请求服务器发送回关于邮箱的统计资料,如邮件数等UIDL Msg# 处理 返回邮件的统一标志符,POP3 会话的每一个标志符都是唯一的LIST Msg# 处理 返回邮件数量和每个邮件的大小RETR Msg# 处理 返

26、回由参数标志的邮件的全部文本DELE Msg# 处理 服务器把由参数标识邮件记为删除,由QUIT 命令执行RSET Msg# 处理 服务器将重置所有标记为删除的邮件,用于撤消 DELE 命令TOP Msg# 处理 服务器返回参数标识的邮件前 n 行内容,n 是正整数NOOP Msg# 处理 服务器返回一个肯定的响应QUIT Msg# 更新 如果服务器处于处理状态,那么进入更新状态删除任何标记为删除的邮件;若处于认可状态,结束会话,第 8 页 不进行更新3 系统需求分析3.1 功能需求作为一个电子邮件客户端,其核心功能是能够发送和接收邮件,其他附加功能如地址薄管理等也是不可少的。3.1.1 邮件

27、发送需求主要要求能实现邮件的发送,不仅能实现单个发送而且还能实现群发,同时要求能够发送附件。3.1.2 邮件接收需求要求能实现电子邮件的接收,不仅能实现邮件文本的接收而且还能实现附件的接收,同时具有提示发件人,接收日期。3.1.3 附加功能需求附件功能主要有地址薄管理,用户能方便地实现对联系人的管理。3.2 研究思路根据需求,本系统按照如下几个模块的设计的。3.2.1 用户注册块用户只有在注册邮件账号后才能进行其他操作。3.2.2 邮件发送块邮件发送块主要实现邮件的发送,包括群发以及附件的发送。3.2.3 邮件接收块主要实现邮件文本信息的收取,包括附件的收取,同时具有其他如发件人等信息提示功能

28、。3.2.4 地址薄管理块主要是方便用户管理自己的联系人,主要是对联系人的增加,删除等。4 系统总体功能模块和系统总体流程4.1 系统总体功能模块系统的功能模块有账号管理模块、地址薄管理模块、写邮件模块与收邮件模块。第 9 页 邮 件收 发系 统帐 号管理发邮件收邮件地址薄管理图 3 系统功能模块图4.2 系统流程当用户打开客户端时,需要注册一个账号进行邮件的收取等操作。开 始功能选择 选择地 址薄管理选择发 邮件选择写邮件YY结束图 4 流程图5 系统功能实现5.1 新建账号模块5.1.1 模块功能用户运行系统时,需要新建一个邮件账号,在这个信件账号的过程中,需要指定 SMTP 服务器以及

29、SMTP 的端口。本模块主要实现邮件账号的注册。5.1.2 核心实现1. 网络连接类及实例 TcpClient第 10 页 为 TCP 网络服务提供客户端连接类 TcpClient 实例对象 tc。TcpClient 类提供了一些简单的方法,用于在同步阻塞模式下通过网络来连接、发送和接收流数据,而实例化的过程也是连接 SMTP 服务器的过程。Privite TcpClient tc;2. 提供用于网络访问的基础数据流及其实例 NetworkStream此类提供访问网络的基础数据流的方法。其中最基本也是最重要的两个方法就是 Write()和 Read()方法。private NetworkStr

30、eam ns;3. 一维字符串数组变量 FilePath此字符串数组主要用来存放用户选择的附件的绝对路径。private string FilePath;4. 发送接收邮件所需的基本参数UserName; / 用于调用发送邮件类的用户名PassWd;  / 用于调用发送邮件类的密码MailAddress;/ 用于调用发送邮件类发送邮件人地址AccountName; / 新建的帐户名SmtpName; / 用于调用发送邮件类的 SMTP 服务器名SmtpPort=25;PopName; / 用于调用接收邮件的 pop 服务器名PopPort=110;5.1.3 运行界面指定收发邮件的必

31、须参数之后,再回到系统的主界面。图 5 新用户注册第 11 页 5.2 发送邮件模块5.2.1 模块功能在新建账号的过程中已经指定了邮件地址和账号名称,所以默认将以这些参数来发送邮件,通过调用参数的不同程序会自动的调用相对应的代码来执行不同的操作。本模块主要实现邮件的发送,支持文本或 html 形式发送,同时也支持附件的发送。5.2.2 核心实现1. 重载的构造函数 SmtpMail()此函数主要用于在初始化过程中,把用户选择的附件的路径以参数的形式传给 FilePath。public SmtpMail(ArrayList array)  /在重载构造函数的同时,将FilePath初

32、始化FilePath = new stringarray.Count;Attachments = new System.Collections.ArrayList();for (int i = 0; i “ + enter; if(!Dialog(SendBufferstr,“发件人地址错误,或不能为空“) return false; /把传过来的收件人的地址分割然后提交给服务器string split=“;“;string address=Regex.Split (Recipient,split);SendBuffer=new string address.Length;for(int i=

33、0;i“ + enter;if(!Dialog(SendBuffer,“收件人地址有误“) return false; /发送相关的邮件正文SendBufferstr=“DATA“ + enter; if(!Dialog(SendBufferstr,“) return false; /提示发件人信息SendBufferstr=“From:“ + FromName + “ +enter;SendBufferstr += enter + “.“ + enter; if(!Dialog(SendBufferstr,“错误信件信息“) return false; /断开连接SendBufferstr=

34、“QUIT“ + enter; if(!Dialog(SendBufferstr,“断开连接时错误“) return false; ns.Close(); tc.Close();FilePath=null;return true; 5.2.2 运行界面发信时可选择相关的邮箱账号来进行邮件发送,也可选择相关的收件人。图 6 发送邮件第 16 页 5.3 接收邮件模块5.3.1 模块功能可收取选中的邮件账号邮件,也可收取新邮件账号的邮件。当选中指定的邮件账号收取邮件时,会提示相关的服务器地址、用户名和密码。5.3.2 核心实现1. 连接服务器并返回邮件总数public int connect()/

35、连接 POP3 服务器OpenPOP.POP3.Utility.Log = true;popClient.Disconnect();popClient.Connect(POPServer, int.Parse(port);popClient.Authenticate(login, password);/得到邮件总数count = popClient.GetMessageCount();msgs.Clear();return count;2. 接收邮件public void receiveMail(int beginIndex, int endIndex)   / 选取邮件数for (

36、int i = beginIndex; i = endIndex; i+)receiveMail(i);5.3.3 运行界面当要收取新邮件账号邮件时需重新输入相应的服务器地址、用户名和密码。收取邮件运行界面如图 7:第 17 页 图 7 接收邮件5.4 地址薄模块5.4.1 模块功能可以对地址薄管理,即可以添加、删除联系人,也可以修改某个联系人基本信息。5.4.2 核心实现1. 增加联系人private void button1_Click(object sender, EventArgs e)string txt2;string txt3;txt2 = textBox2.Text;txt3

37、= textBox3.Text;/ 判断邮箱地址是否正确if (txt2.Contains(“) = false)MessageBox.Show(“邮箱地址错误!“);else/读取数据库第 18 页 LName = this.textBox1.Text;MAddress = this.textBox2.Text;PhoneNo = this.textBox3.Text;Qq = this.textBox4.Text;Mobile = textBox5.Text;Address = this.textBox6.Text;/连接数据库Stringconn=“provider=Microsoft.

38、Jet.OLEDB.4.0;DataSource=“+Application.StartupPath+“Manage.mdb“; OleDbConnection myconn = new OleDbConnection(conn);myconn.Open();/向数据库中插入联系人信息string insert=“insert intolianxiren(Name,Mailbox,Phone,QQ,Mobile,Address) values('“ + Add.LName + “','“ + Add.MAddress + “','“ + Add.Phon

39、eNo + “','“ + Add.Qq + “','“ + Add.Mobile + “','“ + Add.Address + “')“;OleDbCommand cmd = new OleDbCommand(insert, myconn);trycmd.ExecuteNonQuery();catch (Exception ex)MessageBox.Show(ex.ToString();finallymyconn.Close();this.DialogResult = DialogResult.OK;this.Close();第 1

40、9 页 2. 修改或删除联系人修改联系人:private void button1_Click(object sender, EventArgs e)string txt2;string txt3;txt2 = textBox2.Text;txt3 = textBox3.Text;if (txt2.Contains(“) = false)MessageBox.Show(“邮箱地址错误!“);else/调用选中账号的相关信息 Add.LName = this.textBox1.Text;Add.MAddress = this.textBox2.Text;Add.PhoneNo = this.te

41、xtBox3.Text;Add.Qq = this.textBox4.Text;Add.Mobile = textBox5.Text;Add.Address = this.textBox6.Text;string conn = “provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ + Application.StartupPath + “Manage.mdb“;OleDbConnection myconn = new OleDbConnection(conn);myconn.Open();/修改联系人属性string sql = “update lia

42、nxiren set Mailbox='“ + Add.MAddress + “',Phone='“ + Add.PhoneNo + “',QQ='“ + Add.Qq + “',Mobile='“ + Add.Mobile + “',Address='“ + Add.Address + “' where Name = '“ + Add.LName + “'“;OleDbCommand cmd = new OleDbCommand(sql, myconn);try第 20 页 cmd.Execute

43、NonQuery();catch (Exception ex)MessageBox.Show(ex.ToString();finallymyconn.Close();this.DialogResult = DialogResult.OK;this.Close();删除联系人:private void button3_Click(object sender, EventArgs e)  /调用选中的账号的信息Add.LName = this.textBox1.Text;Add.MAddress = this.textBox2.Text;Add.PhoneNo = this.textBo

44、x3.Text;Add.Qq = this.textBox4.Text;Add.Mobile = textBox5.Text;Add.Address = this.textBox6.Text;string conn = “provider=Microsoft.Jet.OLEDB.4.0;DataSource=“+Application.StartupPath + “Manage.mdb“;OleDbConnection myconn = new OleDbConnection(conn);myconn.Open();/删除选中联系人string sql = “delete from lianx

45、iren where Name = '“ + Add.LName + “'“;OleDbCommand cmd = new OleDbCommand(sql, myconn);trycmd.ExecuteNonQuery();第 21 页 catch (Exception ex)MessageBox.Show(ex.ToString();finallymyconn.Close();this.DialogResult = DialogResult.OK;this.Close();5.4.3 运行界面当对地址薄操作时,可增加联系人,修改属性和删除联系人。如图 8:图 8 地址薄管理

46、6 系统功能测试6.1 发送邮件测试本测试主要是对发送文本以及附件的测试1. 发送文本邮件给收信人测试中用新浪的邮箱分别往新浪的邮箱以及 163 的邮箱发送文本邮件,均可以发送成功,同时具有群发功能,如图 9:第 22 页 图 9 发送文本文件2. 发送附件给收件人测试中用新浪的邮箱分别往新浪的邮箱以及 163 的邮箱发送附件,均可以发送成功。如图 10:图 10 发送附件6.2 接收邮件测试本测试主要是对单个邮件收取测试,在选取相应的邮件账号后,可以对单个邮件进行收取,也可以对新设置的邮件账号进行邮件的收取,如图 11:第 23 页 图 11 接收邮件6.3 地址薄管理测试本测试主要是对地址

47、薄管理的测试,包括增加、删除、修改联系人等。1. 增加联系人当点增加按钮时,对联系人的相关属性进行添加。如图 12:图 12 增加联系人2. 删除联系人选中刚才增加的联系人,对其进行删除,如图 13:第 24 页 图 13 删除联系人3. 修改联系人属性选中联系人,对其属性进行修改。图 14 修改联系人属性6.4 测试结果经过对系统的测试,本系统能对邮件进行发送,能对邮件进行收取以及对地址薄进行管理。结  论通过对系统功能的前期分析和相关协议的了解,经过后期的开发,完成了邮件用户的注册,电子邮件的简单收取,电子邮件的单个发送和群发,地址薄添加、修改、删除等功能。虽然按照预期的时间安排

48、完成了相关的系统设计和程序开发,但系统还存在着很多不足,如垃圾邮件的处理等。该系统以开发的第 25 页 目的是为了方便用户能简单地收取和发送邮件,经过测试,能发送邮件,支持群发以及能发送附件,能收取单个邮件以及对地址薄的管理,下一步需要增加对垃圾邮件的判定功能等。参考文献1 Charles Petzold美.杨涛,王建桥,杨晓云,高文雅译.C#程序设计M.北京:机械工业出版社,2004。2 郭文夷,戴芳胜. Visual C#.NET 可视化程序设计M. 上海:华东理工大学出版社,2005。3 秦斌,曾斌.C#应用程序开发标准教程M.上海:上海科学普及出版社,2003。4 仇谷烽,澎洪洪.Vi

49、sual C#.NET 网络编程M. 北京:清华大学出版社,2004。5 孙三才,张智凯,许熏尹.C#与.NET Framework 实战演练M.北京:中国铁道出版社,2002。6 曹麒麟,张千里.垃圾邮件与反垃圾邮件技术M.北京:人民邮电出版社,2003。7 孙维煜,刘杰,胡方霞,陈发吉.C#案例开发M.北京:中国水利水电出版社,2005。8 欧立奇,康祥顺,马煜.Visual C#案例开发集锦M.北京:电子工业出版社,2005。第 26 页 致  谢本文是在王敏老师的热情关心和指导下完成的,她渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向她表示我最衷心的感谢!在论文完成过程中,本人还得到了何义凯同学的热心帮助,本人向他表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报