Initial commit

This commit is contained in:
Viewer 2021-10-19 09:02:05 +08:00
parent 4f0d1e920d
commit d3de87ea9c
67 changed files with 7024 additions and 2 deletions

791
README.md
View File

@ -1,3 +1,790 @@
# e-mail-client-programs
# 基于SMTP协议的E-MAIL电子邮件发送客户端软件C#实现
基于SMTP协议的E-MAIL电子邮件发送客户端软件C#实现
# 摘 要
电子邮件在当今社会中扮演了一个很重要的角色。越来越多的人在使用它。而且用它的人数势必会继续增加。虽然现在已经有很多的邮件收发软件例如著名的FoxMail 但是对于大多数的非专业的人来说它还是有点难度稍嫌负责。因此我们就利用SMTP和Pop协议从底层开发了这个软件。SMTP全称是简单邮件传输协议它专门用来发送邮件用的。Pop全称是邮局协议是专门用于接收邮件的。我主要是负责如何实现发送邮件功能的。MailSend命名空间是我整个程序的核心。它包括两个类。在SmtpMail的类中包含了一个SendMail的方法它从底层详细地实现了和服务器的交互操作。你既可以用它发送一个纯文本邮件也可以发送一个带有附件的邮件理所当然地你也可以使用不同的SMTP服务器。经过测试证实此软件是一个支持多收信人多附件的群发软件。虽然它没有FoxMail那么强大的功能但是它容易掌握和使用。
**关键词**SMTP命名空间附件
# Abstract
E-Mail play a veryimportant role in modern times.More and more people are using it,and the numberof it will larger and larger.Though there are a lot of software for sending andreceiving letters such as FoxMail which are also multifunctional,it isdifficult and complicated to the Most of people who are curbstone.For thisreason,we do this software with the rock-bottom protocol of SMTP and Pop. Thefull name of SMTP is Simple Mail Transfer Protocol.It is Used to sendingletters.The full name of Pop is Post Office Protocol which is Special to receiveletters.I basically take charge to how to realize the function of sendingletters. A namespace which is named MailSend is the soul of my programe.Itincludes two classes.A method named sendmial which realize the fuction step bystep belongs to the class of SmtpMail. It detailedly note the track of clientexchange to the server. You can use the software to send either a text E Mailor a textE-mail with Attachments.You also can Send a letter to many addressee.In the nature of things,you can use a different SMTP service. The software Idid support multiletters and multisender after I test.It is simplier thanFoxMail and other professional softwares,but it is easy to hold and use.
**Key Words**: SMTP, nameSpace, Class, Attachment
# 1 引言
## 1.1 电子邮件介绍
电子邮件(简称E-mail)又称电子信箱、电子邮政,它是一种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是一个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。
电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的一个实体。因为电子邮件是通过邮件服务器(mai1server)来传递档的。通常mailserver是执行多任务操作系统UNIX的计算机它提供24小时的电子邮件服务,用户只要向 mail server管理人员申请一个信箱账号,就可使用这项快速的邮件服务。
电子邮件的工作原理:
- 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。
- 电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的—个电子信箱。并确定—个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。
- 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另—个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取。
## 1.2 开发背景
当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说更加显得太过于华丽而不太实用。有鉴于此在了解RFC底层协议的基础上我们开发了这个各种功能相对简单实用的邮件客户端程序简化了很多不必要的功能。
## 1.3 开发环境及运行环境
### 1.3.1 开发环境
- AMD Athlon(TM)512M内存80G硬盘
- Microsoft Windows XPProfessional
- Microsoft VisualStudio 2003(C #)
- Microsoft DeveloperNetwork for Visual Studio.NET 2003
### 1.3.2 运行环境
- Intel® Pentium® 2及以上处理器32M以上内存4G以上硬盘
- Microsoft® Windows™9X/NT操作系统
- 800*600或以上的屏幕分辨率
- 确保机器上安装有.Net FrameWork 1.0或者以上版本
# 2 软件架构及系统用例图
## 2.1系统架构
软件的总体架构如图2.1
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/f5697381b3f73e1c5b367806504faf46.writebug)
## 2.2 系统总体用例
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/c8730c54819a23ec07b0e7df337d6972.writebug)
## 2.3 程序功能框图
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/65d6d3b9ac483a0cea716825471b1af0.writebug)
## 2.4 发送邮件类
是发送邮件的核心类名为SmtpMail隶属于命名空间MailSend。封装了发送邮件的具体实现方法也是具体的RFC用代码实现的过程。而用户通过具体的操作接口接口与SmtpMail类通过交互操作来实现用户发送信件的操作。
## 2.5 附加小功能类
是获取一些诸如系统时间当前用户名以及本机IP之类的类类名为AddExtra隶属于命名空间MailSend。
# 3 SMTP协议的研究
由于要开发的是邮件客户端程序就不得不用到SMTP协议和POP协议。而我个人负责的是邮件发送功能的实现因此就必然会涉及到SMTPSimple Mail Transfer Protocol协议。SMTP被用来在因特网上发送邮件该协议规定了一些基本的命令和方法使客户端与服务器进行交互以达到发送邮件的目的。
## 3.1 SMTP协议简介及工作原理
### 3.1.1 介绍
简单邮件传输协议SMTP的目标是可靠高效地传送邮件它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。
SMTP的一个重要特点是它能够在传送中接力传送邮件传送服务提供了进程间通信环境IPCE此环境可以包括一个网络几个网络或一个网络的子网。理解到传送系统或IPCE不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是邮件可以通过不同网络上的主机接力式传送。
### 3.1.2 SMTP模型
SMTP设计基于以下通信模型针对用户的邮件请求发送SMTP建立与接收SMTP之间建立一个双向传送通道。接收SMTP可以是最终接收者也可以是中间传送者。SMTP命令由发送SMTP发出由接收SMTP接收而应答则反方面传送。
一旦传送通道建立SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收则返回OK应答如果不能接收到则发出拒绝接收应答但不中止整个邮件操作双方将如此重复多次。当接收者收到全部邮件后会接收到特别的序列如果接收者成功处理了邮件则返回OK应答。
SMTP提供传送邮件的机制如果接收方与发送方连接在同一个传送服务下时邮件可以直接由发送方主机传送到接收方主机或者当两者不在同一个传送服务下时通过中继SMTP服务器传送。为了能够对SMTP服务器提供中继能力它必须拥有最终目的主机地址和邮箱名称。
MAIL命令参数是回复路径它指定邮件从何处来而RCPT命令的参数是转发路径的它指定邮件向何处去。向前路径是源路径而回复路径是返回路径它用于发生错误时返回邮件
当同一个消息要发往不同的接收者时SMTP遇到了向不同接收者发送同一份数据的复制品的问题邮件命令和应答有一个比较奇怪的语法应答也有一个数字代码。在下面例子中可以看到哪些使用实际的命令和应答。完整的命令和应答在第四节。
命令与应答对大小写不敏感也就是说命令和应答可以是大写小写或两者的混合但这一点对用户邮件名称却不一定是对的因为有的主机对用户名大小写是敏感的。这样SMTP实现中就将用户邮箱名称保留成初始时的样子主机名称对大小写不敏感。
命令与应答由ASCII字母表组成当传送服务提供8位字节传送通道每7位字符正确传送而最高位被填充为0。当指定一般的命令或应答格式后参数会由一些类似于语言的字符串表示出来如"\<string\>"或"\<reverse-path\>",这里尖括号表示这是一种类似于语言的变量。
## 3.2 SMTP协议的命令和应答
### 3.2.1 SMTP协议的命令
SMTP命令定义了邮件传输或由用户定义的系统功能。它的命令是由\<CRLF\>结束的字符串。而在带有参数的情况下,命令本身由\<SP\>和参数分开,如果未带参数可以直接和\<CRLF\>连接。邮箱的语法格式必须和接收站点的格式一致。下面讨论SMTP命令和应答。
发送邮件操作涉及到不同的数据对象它们由不同的参数相互连接。回复路径就是MAIL命令的参数而转发路径则是RCPT命令的参数邮件日期是DATA命令的参数。这些参数或者数据对象必须跟在命令后。这种模式也就要求有不同的缓冲区来存储这些对象也就是说有一个回复路径缓冲区一个转发路径缓冲区一个邮件内容缓冲区。特定的命令产生自己的缓冲区或使一个或多个缓冲的内容被清除。
**HELLO (HELO)**
此命令用于向接收SMTP确认发送SMTP。参数域包括发送SMTP的主机名。接收SMTP通过连接确认命令来向发送SMTP确认接收SMTP。引命令和OK响应确认发送和接收SMTP进入了初始状态也就是说没有操作正在执行所有状态表和缓冲区已经被子清除。
**MAIL (MAIL)**
此命令用于开始将邮件发送到一个多个邮箱中。参数域包括回复路径。返回路径中包括了可选的主机和发送者邮箱列表。当有主机列表时它是一个回复路径源它说明此邮箱是由在表中的主机一一传递发送第一个主机是最后一个接收到此邮件的主机过来的。此表也有作向发送者返回非传递信号的源路径。因为每个传递主机地址都被加在此表起始处它就必须使用发送IPCE而不是接收IPCE如果它们不是一个IPCE的话清楚的名称。一些出错信息的回复路径可能就是空的。
此命令清除回复路径缓冲区,转发路径缓冲区和邮件内容缓冲区,并且将此命令的回复路径信息插入到回复路径缓冲区中。
**RECIPIENT (RCPT)**
此命令用于确定邮件内容的唯一接收者多个接收者将由多个此命令指定。转发路径中包括一个可选的主机和一个必须的目的邮箱。当出现主机列表时这就是一个源路径它指明邮件必须向列表中的上一个主机发送。如果接收SMTP未实现邮件的传递发送就会返回如未知本地用户550的信息给用户。
当邮件被传递发送时传递主机必须将自己的名称由转发路径的开始处移至回复路径的结束处。当邮件最终到达目的地时接收SMTP将以它的主机邮件格式自己的名称插入目标邮件中。例如由传递主机A接收的带有如下参数的邮件时
```
FROM:USERX@HOSTY.ARPA
  TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA>
```
将会变成如下形式:
```
  FROM:<@HOSTA.ARPA:USERX@HOSTY.ARPA>
  TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.
```
此命令导致它的转发路径参数加入转发路径缓冲区中。
**DATA (DATA)**
接收者将跟在命令后的行作为邮件内容。此命令导致此命令后的邮件内容加入邮件内容缓冲区。邮件内容可以包括所有128个ASCII码字符。邮件内容由只包括一个句号的行结束也就是如下的字符序列"\<CRLF\>.\<CRLF\>",它指示了邮件的结束。
邮件内容的结束指示要求接收者现在就处理保存的邮件内容。此过程将回复路径缓冲区转发路径缓冲区和邮件内容缓冲区的内容全部清空。如果操作成功接收者必须返回OK应答如果失败也必须返回失败应答。
当接收SMTP收到一条信息时无论是用作转发还是此邮件已经到达目的地它都必须在邮件内容的开始处加上时间戳这一行这一行指示了接收到邮件主机和发出此邮件主机的标识以及接收到邮件内容的时间和日期。转发的信件将有多行这样的时间戳。当接收SMTP作最后一站的传送时它将返回路径信息行插入邮件中。此行包括了发送命令中的\<reverse-path\>的信息。在这里,最后一站的传送的意思是邮件将被送到目的用户手中,但在一些情况下,邮件可能需要更进一步的加工并由另外的邮件系统传送。
可能在返回路径中的邮箱与实际发送的邮件不一致,这个情况可能发生在需要传送一个特定的错误处理信箱而不是信件发送者那里。上面所述说明了,最后的邮件内容由一个返回路径行,和在其后的一个或多个时间戳行构成。这些行后面是邮件内容的头和体信息。
当处理后面的邮件数据指示部分成功时就需要特定的说明。这种情况可能发生在发送SMTP发现当邮件需要传送给多个用户时只能够成功地向其中的一部分发送信息这种情况下。在这种情况下必须对DATA命令发送OK应答而接收SMTP组织并发送一个"不可传递邮件"信息到信息的发送者。在此信息中或者发送一个不成功接收者的列表或者每次发送一个不成接收者而发送多次。所有不可传递邮件信息由MAIL命令发送。
返回路径和接收时间戳例子:
```
Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:JOE@ABC.ARPA>
  Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST
  Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST
  Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST
  Date: 27 Oct 81 15:01:01 PST
  From: JOE@ABC.ARPA
  Subject: Improved Mailing System Installed
  To: SAM@JKL.ARPA
  This is to inform you that ...
```
**SEND(SEND)**
此命令用于开始一个发送命令,将邮件发送到一个或多个终端上。参数域包括了一个回复路径,此命令如果成功就将邮件发送到终端上了。
回复路径包括一个可选的主机列表和发送者邮箱。当出现主机列表时表示这是一个传送路径邮件就是经过这个路径上的每个主机发送到这里的列表上第一个主机是最后经手的主机。此表用于返回非传递信号到发送者。因为每个传递主机地址都被加在此表起始处它就必须使用发送IPCE而不是接收IPCE如果它们不是一个IPCE的话清楚的名称。一些出错信息的回复路径可能就是空的。
此命令清除回复路径缓冲区,转发路径缓冲区和邮件内容缓冲区,并且将此命令的回复路径信息插入到回复路径缓冲区中。
**SEND OR MAIL (SOML)**
此命令用于开始一个邮件操作将邮件内容传送到一个或多个终端上,或者传送到邮箱中。对于每个接收者,如果接收者终端打开,邮件内容将被传送到接收者的终端上,否则就送到接收者的邮箱中。参数域包括回复路径,如果成功地将信息送到终端或邮箱中此命令成功。
回复路径包括一个可选的主机列表和发送者邮箱。当出现主机列表时表示这是一个传送路径邮件就是经过这个路径上的每个主机发送到这里的列表上第一个主机是最后经手的主机。此表用于返回非传递信号到发送者。因为每个传递主机地址都被加在此表起始处它就必须使用发送IPCE而不是接收IPCE如果它们不是一个IPCE的话清楚的名称。一些出错信息的回复路径可能就是空的。
此命令清除回复路径缓冲区,转发路径缓冲区和邮件内容缓冲区,并且将此命令的回复路径信息插入到回复路径缓冲区中。
**SEND AND MAIL (SAML)**
此命令用于开始一个邮件操作将邮件内容传送到一个或多个终端上,并传送到邮箱中。如果接收者终端打开,邮件内容将被传送到接收者的终端上和接收者的邮箱中。参数域包括回复路径,如果成功地将信息送到邮箱中此命令成功。
回复路径包括一个可选的主机列表和发送者邮箱。当出现主机列表时表示这是一个传送路径邮件就是经过这个路径上的每个主机发送到这里的列表上第一个主机是最后经手的主机。此表用于返回非传递信号到发送者。因为每个传递主机地址都被加在此表起始处它就必须使用发送IPCE而不是接收IPCE如果它们不是一个IPCE的话清楚的名称。一些出错信息的回复路径可能就是空的。
此命令清除回复路径缓冲区,转发路径缓冲区和邮件内容缓冲区,并且将此命令的回复路径信息插入到回复路径缓冲区中。
**RESET (RSET)**
此命令指示当送邮件操作将被放弃。任何保存的发送者接收者和邮件内容应该被抛弃所有缓冲区和状态表应该被清除接收方必须返回OK应答。
**VERIFY (VRFY)**
此命令要求接收者确认参数是一个用户。如果这是(已经知道的)用户名,返回用户的全名和指定的邮箱。此命令对回复路径缓冲区,转发路径缓冲区和邮件内容缓冲区没有影响。
**EXPAND (EXPN)**
此命令要求接收者确认参数指定了一个邮件发送列表,如果是一个邮件发送列表,就返回表中的成员。如果这是(已经知道的)用户名,返回用户的全名和指定的邮箱。此命令对回复路径缓冲区,转发路径缓冲区和邮件内容缓冲区没有影响。
**HELP (HELP)**
此命令导致接收者向HELP命令的发送者发出帮助信息。此命令可以带参数并返回特定的信息作为应答。此命令对回复路径缓冲区转发路径缓冲区和邮件内容缓冲区没有影响。
**NOOP (NOOP)**
此命令不影响任何参数和已经发出的命令。它只是说明没有任何操作而不是说明接收者发送了一个OK应答。此命令对回复路径缓冲区转发路径缓冲区和邮件内容缓冲区没有影响。
**QUIT (QUIT)**
此命令指示接收方必须发送OK应答然后关闭传送信道。接收方在接到QUIT命令并做出响应之前不应该关闭通信信道。发送方在发送QUIT命令和接收到响应之前也不应该关闭信道。即使出错也不应该关闭信道。如果连接被提前关闭接收方应该象接收到RSET命令一样取消所有等待的操作但不恢复原先已经做过的操作。而发送方应该象接收到暂时错误4XX一样假定命令和操作仍在支持之中。
**TURN (TURN)**
此命令指定接收方要么发送OK应答并改变角色为发送SMTP要么发送拒绝信息并保持自己的角色。如果程序A现在是发送SMTP它发出TURN命令后接收到OK250应答它就变成了接收SMTP。程序A就进入初始状态好象通信信道刚打开一样这时它发送220准备好服务信号。如果程序B现在是接收SMTP它发出TURN命令后接收到OK250应答它就变成了发送SMTP。程序A就进入初始状态好象通信信道刚打开一样这时它准备接收220准备好服务信号。
若要拒绝改变角色接收方可以发送502应答。
对于这些命令的顺序有一定的限制。对话的第一个命令必须是HELLO命令此命令在此后的会话中也可以使用。如果HELLO命令的参数不可接受必须由返回一个501失败应答同时接收到的SMTP必须保持在与刚才一致的状态下。 NOOPHELP,EXPN和VRFY命令可以在会话的任何时候使用。MAILSENDSOML或SAML命令开始一个邮件操作。一旦开始了以后就要发送RCPT和DATA命令。邮件操作可以由RSET命令终止。在一个会话中可以有一个或多个操作。
如果在操作开始参数不可接受必须返回501失败应答同时接收到的SMTP必须保持在与刚才一致的状态下。如果操作中的命令顺序出错必须返回503失败应答同时接收到的SMTP必须保持在与刚才一致的状态下。
会话的最后一个命令必须是QUIT命令。此命令在会话的其它时间不能使用。
**COMMAND语法格式**
命令是由命令码和其后的参数域组成的。命令码是四个字母组成的,不区别大小写。因为下面的命令的作用是相同的:
```
MAIL Mail mail MaIl mAIl
```
这对于引导任何参数值的标记也是适用的如TO和to就是一样的。命令码和参数由一个或多个空格分开。然而在回复路径和转发路径中的参数是区别大小写的。特别是在一些主机上"smith"和"Smith"就根本不是一个用户。
参数域由不定长的字符串组成,它由\<CRLF\>结束,接收方在完全接收到此序列前不会采取任何行动。方括号代表可选的参数域。如果不选择的话,系统选择默认的设置。
下面是SMTP命令
```
HELO <SP> <domain> <CRLF>
MAIL <SP> FROM:<reverse-path> <CRLF>
RCPT <SP> TO:<forward-path> <CRLF>
DATA <CRLF>
RSET <CRLF>
SEND <SP> FROM:<reverse-path> <CRLF>
SOML <SP> FROM:<reverse-path> <CRLF>
SAML <SP> FROM:<reverse-path> <CRLF>
VRFY <SP> <string> <CRLF>
EXPN <SP> <string> <CRLF>
HELP [<SP> <string>] <CRLF>
NOOP <CRLF>
QUIT <CRLF>
TURN <CRLF>
```
### 3.2.2 SMTP的应答码
对SMTP命令的响应是多样的它确定了在邮件传输过程中请求和处理的同步也保证了发送SMTP知道接收SMTP的状态。每个命令必须有且只有一个响应。
SMTP响应由三位数字组成其后跟一些文本。数字帮助决定下一个应该进入的状态而文本对人是有意义的。三位的响应已经包括了足够的信息不用再阅读文本文本可以直接抛弃或者传递给用户。特别的是文本是与接收和环境相关的所以每次接收到的文本可能不同。在附录E中可以看到全部的响应码。正规的情况下响应由下面序列构成三位的数字\<SP\>,一行文本和一个\<CRLF\>或者也可以是一个多行响应。只有EXPN和HELP命令可以导致多行应答然而对所有命令多行响应都是允许的。
```
500 格式错误,命令不可识别(此错误也包括命令行过长)
501 参数格式错误
502 命令不可实现
503 错误的命令序列
504 命令参数不可实现
211 系统状态或系统帮助响应
214 帮助信息
220 <domain> 服务就绪
221 <domain> 服务关闭传输信道
421 <domain> 服务未就绪,关闭传输信道(当必须关闭时,此应答可以作为对任何命令的响应)
250 要求的邮件操作完成
251 用户非本地,将转发向<forward-path>
450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)
550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)
451 放弃要求的操作;处理过程中出错
551 用户非本地,请尝试<forward-path>
452 系统存储不足,要求的操作未执行
552 过量的存储分配,要求的操作未执行
553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)
354 开始邮件输入,以<CRLF>.<CRLF>结束
554 操作失败
```
# 4 RFC822
说道发送和接受邮件我们就必须不得不提RFC822了。RFC822的全称是“ARPA因特网文本信件格式的标准”(Standard for theFormat of ARPA Internet Text Messages)。该标准提供了邮件内容的格式和相关语义。
## 4.1 RFC822简单介绍
RFC822规定的电子邮件内容全部由ASCII字符组成就是通常所说的文本文件因而标准将它称为Internet文本信件(Internet Text Messages)。
从直观上看信件非常简单就是一系列由ASCII字符组成的文本行每一行以回车换行符(“CRLF“就是ASCII码的13和10)结束。
从组织上看,信件内容结构分为两大部分,中间用一个空白行(只有CRLF符的行)来分隔。第一部分称为信件的头部(the header of the message),包括有关发送方、接收方、发送日期等信息。第二部分称为信件的体部(Body of the message),包括信件内容的正文文本。信头是必需的,信体是可选的,即信体可有可无。如果不存在信体,用作分隔的空白行也就不需要。在信体中,也可以有用作分隔的空白行。这样设计的信件便于进行语法分析,提取信件的基本信息。
在RFC822中规定信件体就是一系列的向收信人表达信息的文本行比较简单可以包含任意文本并没有附加的结构。信件头则具有比较复杂的结构在下一小节中详述。
## 4.2 信件的头部
### 4.2.1 信头的一般格式
信头的结构比较复杂,信头由若干信头字段(header field)组成,这些字段为用户和程序提供了关于信件的信息。要了解信头的结构就要弄清楚各种信头字段。
所有的信头字段都具有相同的语法结构,从逻辑上说,包括四部分,字段名(field name),紧跟冒号":" (colon),后跟字段体(field body),最后以回车换行符(CRLF)终止。即
```
信头字段=字段名:字段体 CRLF
```
字段名必须由除了冒号和空格以外的可打印US-ASCII字符(其值在33和126之间)组成,大多数字段的字段名称由一系列字母,数字组成,中间经常插入横线符。字段名告诉电子邮件软件如何翻译该行中剩下的内容。
字段体可以包括除了CR和LF之外的任何ASCII字符。但是其中的空格加括号的注释引号和多行字段都比较复杂另外字段体的语法和语义依赖于字段名每个类型的字段有特定的格式。
RFC822为信件定义了一些标准字段并提供了用户自行定义非标准字段的方法。
### 4.2.2 结构化字段和非结构化字段
每个字段所包含的信息不同,字段大体可以分为结构化字段和非结构化字段。
结构化字段有特定的格式由语法分析程序检测。Sender 字段就是一个很好的例子,它的字段内容是信箱,有一个离散的结构。
非结构化的字段含有任意的数据没有固定格式。例如Subject字段可以含有任意的文字并且没有固定格式。非结构化的字段数量较少只有Subject、 Comments、扩展字段非标准字段、IN-Reply和References等。所有其它字段都是结构化的。
### 4.2.3 信头字段的元素
尽管Email信件的总体结构非常简单但一些信头字段的结构是很复杂的。下面介绍一些大多数字段共有的元素。
**1.空白符**
像其它文本文件一样,空白符包括空格符(ASCII码32)和制表符Tab(ASCII码19)。此外行末的回车换行符CRLF也应算是空白符。使用空白符可以对字段进行格式化增加它的可读性。例如每个字段间用CRLF来分离在字段内用空格来分隔字段名和字段内容。在Subject后面的冒号和内容之间插入空格字符会使字段结构更加清晰。在Email中空白符的使用并没有固定的规则但应当正确地使用仅在需要时才使用空白符以便接收软件进行语法分析。
**2.注解**
注解是由括号括起来的一系列字符,例如,(这份礼物)。注解一般用在非结构化的信头字段中,没有语法语义,仅为人提供了一些附加的信息。如果在加引号的字符串中有包括在括号中的字符,那是字符串的一部分,不是注解。在解释信件的时候,会将注解忽略,可以用一个空格字符代替它们,这样就什么也不会破坏。
**3.字段折叠**
每个信头字段从逻辑上说应当是一个由字段名、冒号、字段体和CRLF组成的单一的行但为了书写与显示的方便增加可读性也为了符合1000/80的行字符数的限制可以将超过80个字符的信头字段分为多行即对于比较长的字段可以分割成几行形成折叠。在结构化和非结构化字段中都允许折叠。通过在字段中某些点插入CRLF符和至少一个或多个空白字符来实现字段的折叠第一行后面的行称为信头字段的续行。续行都以一个空白符开始这种方法称为折叠(folding)例如标题字段Subject: This is a test可以表示为
```
Subject: This is a test
```
反之将一个被折叠成多行的信头字段恢复到它的单行表示的过程叫做去折叠只要简单地移除后面跟着空格的CRLF将折叠空白符CRLF转换成空格字符就可以完成去折叠(unfolding)。在分析被折叠的字段的语法时,要把一个多行的折叠字段展开为一行,根据它的非折叠的形式来分析它的语法与语义。
**4.字段大小写**
字段名称是不区分大小写的所以Subject、subject或SUBJECT都一样。不过字段名称大小写有习惯的常用形式如主题字段的大小写形式通常为Subject。字段体的大小写稍微复杂点要视情况而定。比如Subject后面的字段体其中的大写可能就是缩写的专用名词不能改动。
### 4.2.4 标准的信头字段
下面介绍RFC822中定义的常用的标准信头字段。
| 与发信方有关的信头字段 | |
| ---------------------------------------- | ---------------------------------------- |
| 格式Frommailbox 举例Fromwang@163.com | 写信人字段。说明信件的原始创建者,给出他的电子信箱地址。创建者对信件的原始内容负责。 |
| 格式Sendermailbox 举例Fromwang@163.com Senderli@sina.com | 发送者字段。说明实际提交发送这个信件的人,给出他的电子信箱地址。当发信人与写信人不一样时使用。比如,秘书替经理发信。发送者对发送负责。 |
| 格式Reply-TOmailbox 举例Fromwang@163.com Fromzhao@soho.com | 回复字段。指定应当把回信发到哪里。如果有此字段回信将会发给它指定的邮箱而不会发给From字段指定的邮箱。比如发送的是经理的信但回信应交办公室处理。 |
| **与收信方有关的信头字段** | |
| 格式TOmailbox list 举例TOzhang@263.com | 收信人字段。指定主要收信人的邮箱地址,可以是多个邮箱地址的列表,地址中间用逗号隔开。 |
| 格式Ccmailbox list 举例Cczhang@863.com | 抄送字段。指定此信件要同时发给哪些人,也称为抄送。也可以使用邮箱地址列表,抄送给多个人。 |
| 格式Bccmailbox list | 密抄字段。指定此信件要同时秘密发给哪些人,也称为密件抄送。也可以使用邮箱地址列表,密抄给多个人。 |
| **其它的信头字段** | |
| 格式Datedate-time 举例DateTue,04 Dec 2004 16:18:08 +800 | 日期字段Date字段含有电子邮件创建的日期和时间。 |
| 格式Subject*text 举例SubjectHello! SubjectRe:Hello! | 信件主题字段。描述信件的主题。当回复信件时通常在主题前面增加“Re”前缀标记为该信件为回复信件当信件被转发时通常在主题文字前面加上“Fw“Fwd”这样的前缀。 |
| 格式Received ["from" domain] ;发送主机 ["by" domain] ;接收主机 ["via" atom] ;物理路径 ["id" msg-id] ;接收者msg id | 接受字段。是投递信件的特定邮件服务器所作的记录。处理邮件投递的每个服务器必须给它处理的每个信头的前面加一个Received字段用以描述信件到达目的地所经过的路径以及相关信息。当跟踪各个电子邮件问题时这个信息很有帮助。 |
| **举例:**Received:from wang[195.0.0.1] by li[129.5.0.4] Tue dec 2003 12:18:02 +800 | |
| 格式Comments*text | 注释字段。用于把一个注解添加到信件中。 |
| 格式Resent-* 举例Resent-From Resent-Sender Resent-date Resent-Reply-To | 重发字段。当需要把收到的信件重发给另一组收信人的时候可以保持整个原始信件不变并简单地产生重发信件所要求的新信头字段。为避免与以前的字段相混。新添加的信头字段都加上Resent-前缀字符串,它们的语法与未加前缀的同名字段相同。 |
| 格式Message-IDmsg-id | 信件标识字段。用于表示一个信件唯一标识该字段通常有Smtp服务器生成这个值通常是唯一的。形式根据使用的软件而定。通常左边是标识符右边指定电脑名 |
表中的关键字表明了电子邮件借用了办公室备忘录中的概念和术语电子邮件的头部能够包含一行说明应当接收到该备忘录的接收方。象传统的办公室备忘录一样电子邮件使用关键字Cc指明一个复写副本(carboncopy).电子邮件软件必须向Cc:后面的电子邮件地址表中的每个地址发送一份消息的副本。
传统的办公室过程要求备忘录的发送方通知接收方副本是否传给其它人。有时发送方希望将备忘录的一个副本给别人而不显示出有一个副本被发送出去。一些电子邮件系统提供这样的选项,遵循传统的办公室术语,用盲复写副本(blind carbon copy)来表示。创建消息的用户
在关键字Bcc后给出一个电子邮件地址表指定一个或多个盲复写副本。虽然Bcc在发送方出现但当信息发送时邮件系统将它从消息中除去。每个接收方必须检查头部的To和Cc行以决定信息是直接发送还是作为盲副本发送的(有些邮件系统在正文部分附加信息来告诉接收者它是一个盲副本)。其它接收者不知道有哪些用户接收到盲副本。
电子邮件使用与传统的办公室备忘录相同的格式和术语:头部包括与消息有关的信息,正文包括消息文本。电子邮件头部的行说明发送方、接收方、日期、主题、应当收到副本的人的列表。
**扩展字段**
如果想在信头中加入RFC822中没有规定的字段就需要创建非标准字段。方法非常简单只要在自定义的信头字段名的前面使用X-前缀。RFC822将这种方法称为扩展字段。 事实上已经有许多扩展字段被广泛应用,但没有标准定义。例如:
- X-LOOP字段
X-LOOP字段用来防止邮件的循环传送。过滤或邮件列表处理程序可以给它处理的每个信件增加一个X-LOOP字段以后就可以根据这个字段中含有的特别值判断一个信件是否被循环传送。如果确认邮件发生了循环过滤或邮件列表处理程序就可以用不同的方式处理该信件。
- X-Mailer字段
X-Mailer字段用于指示什么样的程序产生了这个信件它是使用最广泛的扩展字段。产生邮件的软件可以为所有发送的信件增加合适的X-Mailer字段该字段不仅含有软件的名称还包含软件的版本号。例如软件名为Littlefox Mailer版本为V1.0 可以将“X-Mailer:Littlefox Mailer V1.0”加到邮件信头中去。
下面列出了一些在因特网电子邮件中可以找到的普通关键字,以及使用它们的目的。
| 关键字 | 含义 |
| --------- | ---------------- |
| From | 发送方地址 |
| To | 接收方地址 |
| Cc | 复制副本地址 |
| Date | 信息创建日期 |
| Subject | 信息主题 |
| Reply-To | 回复地址 |
| X-Charset | 使用的字符集通常为ASCII |
| X-Mailer | 发送信息所使用的软件 |
| X-Sender | 发送方地址的副本 |
| X-Face | 经编码的发送方面孔的图象 |
整个系统的核心是收发信件的操作,因此为了方便维护,以后的升级,故将这两个最主要的操作写成类库(.dll)的形式以组件的形式加载到主程序中而且其它的功能如果需要的话也可以通过这样的组件的形式增加到主程序中。这也体现了C#这一新的微软主推语言的方便和高效,而且这样做也方便程序的顺利结合。
# 5 命名控件MailSend
由于在C#语言中,都是以命名控件来组织程序的。而所有的类都归属于一个特定的命名空间下。需要的命名空间系统本身自带了一部分,而且如果系统没有你需要的命名空间的话,就可以自己编写,本节中的这个命名空间就是由于需要而编写的。而调用某一个类中的某个变量成员的方法就是通过命名空间名.类名.变量成员 来访问的当然在C#中如果在程序开始通过Using 命名空间名就可以直接的象C++那样来访问成员变量,可以说相当的方便,这些都会在程序中体现出来,再次不再做过多的叙述。
## 5.1 发送邮件类SmtpMail
### 5.1.1 主要成员变量说明
**1.网络连接类及实例TcpClient tc**
为 TCP 网络服务提供客户端连接类TcpClient实例对象tc。TcpClient 类提供了一些简单的方法用于在同步阻塞模式下通过网络来连接、发送和接收流数据。而实例化的过程也是连接SMTP服务器的过程。它的重载方法之一的两个参数一个为服务器名称字符串另一个为服务器的埠。
**2.提供用于网络访问的基础数据流及其实例 NetworkStream ns**
此类提供访问网络的基础数据流的方法。其中最基本也是最重要的两个方法就是Write和Read方法至于参数不再次赘述。
**3.一维字符串数组变量FilePath**
此字符串数组主要用来存放用户选择的附件的绝对路径名,并在发送带附件的邮件时用到。
**4.发送邮件所需的基本参数**
比如用于ESMTP等录检验用的用户名、密码发送邮件需要的收信人发信人地址以及主题等等在此不再赘述。
### 5.1.2 主要成员函数说明
**1.重载的构造函数 SmtpMail()**
此函数主要用于在初始化过程中把用户选择的附件的路径以参数的形式传给FilePath。
**2.添加附件的函数AddAttachment**
传给FilePath的路径通过这样一个函数就可以循环的动态的添加到IList接口的一个对象中了方便以后在具体的实现的过程中的使用。
**3.得到上传的附件的文件流GetStream**
由于在网络中的操作都是以网络流的形式来实现的因此先将上传的附件转换成文件流然后再用Write的方法把这些附件的文件流写入到网络中来完成发送附件的操作。具体实现代码如下所示
```C#
private string GetStream(string FilePath)
{
//建立文件流对象
System.IO.FileStream FileStr=new System.IO.FileStream(FilePath,System.IO.FileMode.Open);
byte[] by=new byte[System.Convert.ToInt32(FileStr.Length)];
FileStr.Read(by,0,by.Length);
FileStr.Close();
return(System.Convert.ToBase64String(by));
}
```
**4.将字符串编码为Base64字符串的函数Base64Encode**
由于ESMTP的LOGIN认证机制是采用Base64编码当用户发出AUTHLOGIN的命令后服务器返回334的应答码等待用户输入。如果身份确认后服务器返回235的应答码否则返回失败信息。所以要将用户名和密码转换成Base64编码然后再发给服务器。此函数的作用就是把给定的字符串转换成相应的Base64编码的字符串。
**5.发送SMTP命令的函数SendCommand**
这个函数的作用是把SMTP命令的字符串转换成对应的字节型值C#中规定的Write方法只能写入字节型的数据然后写入网络中如果操作成功就返回一个标志为真的布尔型变量如果操作失败或者发生异常就返回标志为假的布尔型变量。具体代码如下所示
```C#
private bool SendCommand(string str)
{
//定义一个数组
byte[] WriteBuffer;
//设定一个布尔类型的变量
bool state=false;
WriteBuffer = Encoding.Default.GetBytes(str);
//加入防错机制,可以有效提高程序运行的效率和捕获出错信息
try
{
//向网络中写入数据
ns.Write(WriteBuffer,0,WriteBuffer.Length);
state=true;
}
catch(Exception ex)
{
//返回出错信息
MessageBox.Show (ex.ToString ());
state=false;
}
//返回标志位
return state;
}
```
**6.接受服务器应答的函数RecvResponse**
它的作用就是从网络流中读取服务器返回的字节型的信息,将其转换成字符串型的变量,然后将其返回,可以通过其返回值来判断操作是否成功。具体实现代码如下所示:
```C#
private string RecvResponse()
{
int StreamSize=0;
string ReturnValue ="";
//定义一个字节型的数组
byte[] ReadBuffer = new byte[1024] ;
try
{
//从网络流中读取数据,并返回读取的个数
StreamSize=ns.Read(ReadBuffer,0,ReadBuffer.Length);
}
catch (Exception ex)
{
//返回异常信息
MessageBox.Show(ex.ToString ());
}
if (StreamSize!=0)
{
//将当前读取的信息转换成字符串型然后返回
ReturnValue= Encoding.Default.GetString(ReadBuffer).Substring(0,StreamSize);
}
return ReturnValue;
}
```
**7.重载的函数Dialog**
它们的作用是与服务器交互发送命令并接收回应。不同的是参数是字符串类型的那个函数每次发送一条命令并接受服务器的响应根据响应的信息来判断交互的结果是否成功。而参数是字符串数组的函数每次发送的是一组命令用于和服务器的交互这个函数主要是用于ESMTP服务器的验证的功能因为验证的过程是一个等待然后又输入的过程因此将他们放在一个数组中有利于理解和操作。而他们的实现主要是通过调用上面的发送SMTP命令函数SendCommand以及接受SMTP服务器响应的函数RecvResponse来实现的。具体的代码如下所示
```C#
private bool Dialog(string str,string errstr)
{
bool flag=false;
if(str==null||str.Trim()=="")
{
flag=true;
}
if(SendCommand(str))
{
string RR=RecvResponse();
//从返回的数据中截取前三位
string RRCode=RR.Substring(0,3);
//然后用这前三位与哈希表中正确的回应码比较
if(RightCodeHT[RRCode]!=null)
{
flag=true;
}
else
{
flag=false;
}
}
else
{
flag=false;
}
return flag;
}
```
发送一组命令主要用于服务器验证的重载函数为:
```C#
private bool Dialog(string[] str,string errstr)
{
for(int i=0;i<str.Length;i++)
{
//循环调用单个的与服务器的交互过程
if(!Dialog(str[i],""))
{
return false;
}
}
return true;
}
```
**8.邮件发送程序SendMail**
这是整个程序的核心部分。具体的实现SMTP协议的程序正是通过它一步一步实现并最终实现发送简单邮件甚至带附件的邮件的功能。而它的实现是调用以上给出的各个函数的结果。以下就简单的通过几个SMTP命令的格式来实现
```C#
private bool SendEmail()
{
//连接网络
try
{
//建立一个TCP连接
tc=new TcpClient(mailserver,mailserverport);
}
catch
{
MessageBox.Show ("连接失败","请确认");
return false;
}
//获取当前流的资料
ns = tc.GetStream();
SMTPCodeAdd();
//验证网络连接是否正确
if(RightCodeHT[RecvResponse().Substring(0,3)]==null)
{
return false;
}
string[] SendBuffer;
string SendBufferstr;
//进行SMTP验证
//具体的SMTP命令与代码的结合
if(ESmtp)
{
SendBuffer=new String[4];
SendBuffer[0]="EHLO " + mailserver + enter;
SendBuffer[1]="AUTH LOGIN" + enter;
SendBuffer[2]=Base64Encode(username) + enter;
SendBuffer[3]=Base64Encode(password) + enter;
if(!Dialog(SendBuffer,"SMTP服务器验证失败请核对用户名和密码。"))
return false;
}
else
{
SendBufferstr="HELO " + mailserver + enter;
if(!Dialog(SendBufferstr,""))
return false;
}
SendBufferstr="MAIL FROM:<" + From + ">" + enter;
if(!Dialog(SendBufferstr,"发件人地址错误,或不能为空"))
return false;
//把传过来的收件人的地址分割然后提交给服务器
string split=";";
string []address=Regex.Split (Recipient,split);
SendBuffer=new string [address.Length];
for(int i=0;i<SendBuffer.Length;i++)
{
SendBuffer[i]="RCPT TO:<" +address[i]+">" + enter;
}
if(!Dialog(SendBuffer,"收件人地址有误"))
return false;
SendBufferstr="DATA" + enter;
if(!Dialog(SendBufferstr,""))
return false;
SendBufferstr="From:" + FromName + "<" + From +">" +enter;
SendBufferstr += enter + "." + enter;
if(!Dialog(SendBufferstr,"错误信件信息"))
return false;
SendBufferstr="QUIT" + enter;
if(!Dialog(SendBufferstr,"断开连接时错误"))
return false;
//关闭流对象
ns.Close();
//关闭连接
tc.Close();
FilePath=null;
return true;
}
```
以上即为发送不带附件的邮件SMTP命令用代码实现的过程。
## 5.2 AddExtra类
这个附加的小类只是提供一些返回当前系统时间获取主机名主机IP有关帮助等小的功能在此仅对帮助信息中的“关于”操作函数稍加说明。因为它说明了在C#中调用 Windows API 函数所需如下几个步骤:
### 5.2.1 调用Windows API 所需的命名空间
```C#
using System.Runtime.InteropServices;
```
而调用显示关于对话框的函数ShellAbout还需要用到两个命名空间如下所示
```C#
using System.Reflection;
using System.Diagnostics;
```
### 5.2.2 在程序中声明所需的API函数
```C#
[DllImport("shell32.dll")]
static extern int ShellAbout(IntPtr hWnd, string szApp, string szOtherStuff,
IntPtr hIcon);
```
### 5.2.3 在程序中具体的使用
```C#
Assembly ass=Assembly.GetExecutingAssembly();
FileVersionInfo myVersion=FileVersionInfo.GetVersionInfo(ass.Location );
ShellAbout(this.Handle ,"邮件收发系统#","版本"+myVersion.FileMajorPart +"."+myVersion.FileMinorPart+"." +myVersion.CompanyName ,this.Icon .Handle );
```
至此就完成了在C#中调用 Windows API 函数的过程。
# 6 软件运行时的界面
## 6.1 新建邮件帐号
用户打开软件之后需要新建一个邮件帐号在这个信件帐号的过程中需要指定SMTP服务器SMTP的端口以及用于ESMTP验证的用户名和密码。指定这些发邮件的必须参数之后再回到系统的主界面如下所示
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/77be6c0aebf63eb585173d218026d338.writebug)
## 6.2 发送邮件界面
### 6.2.1 发送不带附件的邮件
在新建帐号的过程中已经指定了邮件地址,和帐号名称,所以默认的以这些参数来发送邮件。通过调用参数的不同程序会自动的调用相对应的代码来执行不同的操作。发送简单的邮件运行界面如下。
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/fbaee57a8ad7d3f2d5573abdaabdccfb.writebug)
### 6.2.2 发送带附件的邮件
和简单的邮件不同之处在于多了发送附件的功能软件模拟FoxMail里面发送邮件时在程序的下面自动显示增添的附件的名称以及图标等信息。并且邮件支持添加删除排列图标等功能。运行界面如下所示
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/5738fe30843dd3f4849664417c9c3bf1.writebug)
## 6.3 验证邮件发送是否成功
邮件发送出去之后用FoxMail跟踪接收之后证明邮件和附件都可以正常接收具体的FoxMail的接收界面如下所示
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/cbb9a806fa39a148991f313ae1555a9f.writebug)
# 7 系统测试
我个人做的是这个软件收发系统的一个最基本也是最主要的功能之一:发送邮件。
所以主要的测试也是围绕发送邮件展开的,具体的可以分为以下几个方面。
## 7.1 同一SMTP服务器发送邮件的测试
这个方面的测试测的是用户登录一个服务器测试中用的是163的SMTP服务器来发送一封邮件的测试。而这个测试又可以分为以下两个方面
### 7.1.1 同一服务器,发送一封纯文本邮件的测试
**1.发送一封文本邮件给一个收信人**
测试中用163的邮箱分别往163的邮箱以及新浪的邮箱发送邮件均可以用FoxMail正常的接收到发送的普通的纯文本文件。
**2.发送一封文本邮件给多个收件人**
测试中仍然用163的邮箱同时发往不同的邮箱通过FoxMail都可以正常的接收到。从而很好的验证了我们的邮件发送系统支持群发的功能。
### 7.1.2 同一服务器,发送一封带附件的邮件的测试。
**1.发送一封带附件(可以是多附件)的邮件给一个收件人**
测试中用163的邮箱分别往163的邮箱以及新浪的邮箱发送之外又添加了不同的邮件类型个数分别为等于1大于1即验证是否支持多附件的发送用FoxMail接收之后所有发送的纯文本信息以及附件信息都正常无误。经过这些验证可以证明本软件支持对一个收件人发送多附件。由于带有多附件的信件所以写入速度明显慢于纯文本邮件的速度。
**2.发送一封带附件(可以是多附件)的邮件给多个收件人**
测试中用163的邮箱分别往163的邮箱以及新浪的邮箱发送之外又添加了不同的邮件类型个数分别为等于1大于1即验证是否支持多附件的发送用FoxMail接收之后所有发送的纯文本信息以及附件信息都正常无误。经过这些验证可以证明本软件支持对多个收件人发送多附件。
## 7.2 利用不同的SMTP服务器发送邮件的测试
这个方面的测试是指利用不同的邮箱来发送邮件,至于测试的分类雷同于利用同一服务器发送邮件的测试,所以不再此赘述。
总之,通过以上的各方面的测试,使我改正了代码中的许多不合理以及错误之处,最终也证明了,我们的软件系统是支持多种服务器,支持多附件发送的群发软件。
# 8 结论
这次编写的邮件客户端系统我负责的是邮件的发送的功能。在熟悉了专门用于发送邮件的SMTP协议以及RFC规定的邮件的格式的基础上运用了微软新推出的C#这一新型的面向对象语言的便利性和灵活性从SMTP协议规定的底层命令做起一步步的与服务器进行交互操作最终实现发送多附件多接收人的功能。其中具体的和服务器的交互操作都封装了在SmtpMail.dll这个动态链接库里面了。而为了方便最终的调用和整合所有的有关后台操作发送邮件的类以及其他的附加功能的类全部都归属于MailSend这个命名空间了。在力求达到FoxMail功能的同时又加了一点个人的思想并把它体现到了这一软件上。最主要的体现就是新建帐号的提前检测这一特色上这一功能类似于很多Web页面的“检测新帐号”的功能这样就免去了用户一直到确定注册完成时才因为帐户因为已经被使用而注册失败的麻烦。总之通过这次的编程使我对网络编程有了一个很好的认识和锻炼也使我对C#这一语言的掌握程度又上了一个新台阶虽然编出来的软件不能和功能强大的FoxMail相提并论但是相信它简单易操作性和FoxMail的很多强大但却“鸡肋”似的功能比较起来更多了几分实用性。以后的日子随着我技术的提高和思想的成熟我一定会把它做的更好更趋近于完美。
# 参考文献
[1] Simon Robinson, K.Scott Allen等.C#高级编程. 北京:清华大学出版社, 2002,3
[2] Tom Archer. C#技术内幕. 北京:清华大学出版社, 2002,1
[3] 沉舟.Microsoft.NET编程语言C#. 北京:希望电子出版社. 2001,3
[4] 罗军舟,黎波涛,杨明等.TCP/IP 协议及网络编程技术. 北京: 清华大学出版. 2004,10
[5] Tim Parker .TCP/IP 协议及网络编程技术. 北京: 机械工业出版社, 2000,7
[6] 周存杰. Visual C#.NET网络核心编程. 北京:清华大学出版社, 2002,11
[7] 电脑编程技巧与维护杂志社.C#编程技巧典型案例解析. 北京:中国电力出版社, 2005,8
[8] 云颠工作室. Visual C#中文版全面剖析. 北京:中国水利水电出版社, 2003,5
[9] 叶树华《电子协议与编程》,《电子邮件格式》,《电子邮件接收》,《mime 编码解码与发送附件》
[10] MSDN中文网站网络广播 C#设计模式纵谈http://www.microsoft.com/china/msdn/events/webcasts/shared/Webcast/MSDNWebCast.aspx
[11] 滁州,马金虎,朱力勇. 编写基于SMTP网络应用程序. 电脑爱好者,2003,5:92~94
[12] 滁州,马金虎,朱力勇. 编写基于POP3网络应用程序. 电脑爱好者,2003,6:92~94
[13] 潘泰国. 新一代电子邮件系统. 电子技术应用. 1992,11
[14] 代继红. SMTP认证机制模块化设计及实现. 中南民族大学学报(自然科学版), 2005,4
[15] 胡安廷. 简单实现中文邮件. 中国计算机报, 2004,11

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,58 @@
using System.Reflection;
using System.Runtime.CompilerServices;
//
// 有关程序集的常规信息是通过下列
// 属性集控制的。更改这些属性值可修改与程序集
// 关联的信息。
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//
// 程序集的版本信息由下列 4 个值组成:
//
// 主版本
// 次版本
// 内部版本号
// 修订号
//
// 您可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,方法是按
// 如下所示使用 '*':
[assembly: AssemblyVersion("1.0.*")]
//
// 要对程序集进行签名,必须指定要使用的密钥。有关程序集签名的更多信息,请参考
// Microsoft .NET Framework 文档。
//
// 使用下面的属性控制用于签名的密钥。
//
// 注意:
// (*) 如果未指定密钥,则程序集不会被签名。
// (*) KeyName 是指已经安装在计算机上的
// 加密服务提供程序(CSP)中的密钥。KeyFile 是指包含
// 密钥的文件。
// (*) 如果 KeyFile 和 KeyName 值都已指定,则
// 发生下列处理:
// (1) 如果在 CSP 中可以找到 KeyName则使用该密钥。
// (2) 如果 KeyName 不存在而 KeyFile 存在,则
// KeyFile 中的密钥安装到 CSP 中并且使用该密钥。
// (*) 要创建 KeyFile可以使用 sn.exe(强名称)实用工具。
// 在指定 KeyFile 时KeyFile 的位置应该相对于
// 项目输出目录,即
// %Project Directory%\obj\<configuration>。例如,如果 KeyFile 位于
// 该项目目录,应将 AssemblyKeyFile
// 属性指定为 [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
// (*) “延迟签名”是一个高级选项 - 有关它的更多信息,请参阅 Microsoft .NET Framework
// 文档。
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

View File

@ -0,0 +1,159 @@
<VisualStudioProject>
<CSHARP
ProjectType = "Local"
ProductVersion = "7.10.3077"
SchemaVersion = "2.0"
ProjectGuid = "{30E78998-E11D-4657-B76C-C3409035202E}"
>
<Build>
<Settings
ApplicationIcon = "App.ico"
AssemblyKeyContainerName = ""
AssemblyName = "MailManageSystem"
AssemblyOriginatorKeyFile = ""
DefaultClientScript = "JScript"
DefaultHTMLPageLayout = "Grid"
DefaultTargetSchema = "IE50"
DelaySign = "false"
OutputType = "WinExe"
PreBuildEvent = ""
PostBuildEvent = ""
RootNamespace = "MailManageSystem"
RunPostBuildEvent = "OnBuildSuccess"
StartupObject = ""
>
<Config
Name = "Debug"
AllowUnsafeBlocks = "false"
BaseAddress = "285212672"
CheckForOverflowUnderflow = "false"
ConfigurationOverrideFile = ""
DefineConstants = "DEBUG;TRACE"
DocumentationFile = ""
DebugSymbols = "true"
FileAlignment = "4096"
IncrementalBuild = "false"
NoStdLib = "false"
NoWarn = ""
Optimize = "false"
OutputPath = "bin\Debug\"
RegisterForComInterop = "false"
RemoveIntegerChecks = "false"
TreatWarningsAsErrors = "false"
WarningLevel = "4"
/>
<Config
Name = "Release"
AllowUnsafeBlocks = "false"
BaseAddress = "285212672"
CheckForOverflowUnderflow = "false"
ConfigurationOverrideFile = ""
DefineConstants = "TRACE"
DocumentationFile = ""
DebugSymbols = "false"
FileAlignment = "4096"
IncrementalBuild = "false"
NoStdLib = "false"
NoWarn = ""
Optimize = "true"
OutputPath = "bin\Release\"
RegisterForComInterop = "false"
RemoveIntegerChecks = "false"
TreatWarningsAsErrors = "false"
WarningLevel = "4"
/>
</Settings>
<References>
<Reference
Name = "System"
AssemblyName = "System"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
/>
<Reference
Name = "System.Data"
AssemblyName = "System.Data"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
/>
<Reference
Name = "System.Drawing"
AssemblyName = "System.Drawing"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
/>
<Reference
Name = "System.Windows.Forms"
AssemblyName = "System.Windows.Forms"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
/>
<Reference
Name = "System.XML"
AssemblyName = "System.Xml"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
/>
<Reference
Name = "MailSend"
AssemblyName = "MailSend"
HintPath = "..\MailSend\bin\Debug\MailSend.dll"
/>
</References>
</Build>
<Files>
<Include>
<File
RelPath = "App.ico"
BuildAction = "Content"
/>
<File
RelPath = "AssemblyInfo.cs"
SubType = "Code"
BuildAction = "Compile"
/>
<File
RelPath = "SendMailForm.cs"
SubType = "Form"
BuildAction = "Compile"
/>
<File
RelPath = "SendMailForm.resx"
DependentUpon = "SendMailForm.cs"
BuildAction = "EmbeddedResource"
/>
<File
RelPath = "SystemManage.cs"
SubType = "Form"
BuildAction = "Compile"
/>
<File
RelPath = "SystemManage.resx"
DependentUpon = "SystemManage.cs"
BuildAction = "EmbeddedResource"
/>
<File
RelPath = "RegisterAccount\AccountOperate.cs"
SubType = "Code"
BuildAction = "Compile"
/>
<File
RelPath = "RegisterAccount\NewAccount.cs"
SubType = "Form"
BuildAction = "Compile"
/>
<File
RelPath = "RegisterAccount\NewAccount.resx"
DependentUpon = "NewAccount.cs"
BuildAction = "EmbeddedResource"
/>
<File
RelPath = "RegisterAccount\SmtpPop.cs"
SubType = "Form"
BuildAction = "Compile"
/>
<File
RelPath = "RegisterAccount\SmtpPop.resx"
DependentUpon = "SmtpPop.cs"
BuildAction = "EmbeddedResource"
/>
</Include>
</Files>
</CSHARP>
</VisualStudioProject>

View File

@ -0,0 +1,48 @@
<VisualStudioProject>
<CSHARP LastOpenVersion = "7.10.3077" >
<Build>
<Settings ReferencePath = "K:\薛勇权\毕业设计\毕业设计(答辩版)\MailSend\bin\Debug\;C:\Documents and Settings\xuexue\My Documents\毕业设计\毕业设计(答辩版)\MailSend\bin\Debug\;C:\Documents and Settings\xuexue\My Documents\毕业设计\毕业设计(最新版)\MailSend\bin\Debug\;C:\Documents and Settings\xuexue\My Documents\附件\毕业设计(6月16) 18时 2003\MailSend\bin\Debug\;C:\Documents and Settings\xuexue\My Documents\毕业设计(6月16) 18时 2003\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(6月3) 18时\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(6月2) 18时\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(5月31) 22时\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(5月31) 17时\MailSend\bin\Debug\;E:\C#程序\自己的\练习\Windows应用程序\毕业设计(5月31)\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(5月29)\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(5月22)\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计(5月21)\MailSend\bin\Debug\;E:\C#程序\自己的\练习\Windows应用程序\毕业设计(5月20)\MailSend\bin\Debug\;E:\C#程序\自己的\练习\控件的使用\毕业设计\MailSend\bin\Debug\;E:\C#程序\自己的\练习\Windows应用程序\MailSend\bin\Debug\;G:\薛勇权\毕业设计\毕业设计(答辩版)\MailSend\bin\Debug\" >
<Config
Name = "Debug"
EnableASPDebugging = "false"
EnableASPXDebugging = "false"
EnableUnmanagedDebugging = "false"
EnableSQLServerDebugging = "false"
RemoteDebugEnabled = "false"
RemoteDebugMachine = ""
StartAction = "Project"
StartArguments = ""
StartPage = ""
StartProgram = ""
StartURL = ""
StartWorkingDirectory = ""
StartWithIE = "true"
/>
<Config
Name = "Release"
EnableASPDebugging = "false"
EnableASPXDebugging = "false"
EnableUnmanagedDebugging = "false"
EnableSQLServerDebugging = "false"
RemoteDebugEnabled = "false"
RemoteDebugMachine = ""
StartAction = "Project"
StartArguments = ""
StartPage = ""
StartProgram = ""
StartURL = ""
StartWorkingDirectory = ""
StartWithIE = "true"
/>
</Settings>
</Build>
<OtherProjectSettings
CopyProjectDestinationFolder = ""
CopyProjectUncPath = ""
CopyProjectOption = "0"
ProjectView = "ProjectFiles"
ProjectTrust = "0"
/>
</CSHARP>
</VisualStudioProject>

View File

@ -0,0 +1,29 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MailManageSystem", "MailManageSystem.csproj", "{30E78998-E11D-4657-B76C-C3409035202E}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MailSendReceive", "..\MailSend\MailSendReceive.csproj", "{1ACAE300-785A-4819-89BD-18D2BB7400D3}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{30E78998-E11D-4657-B76C-C3409035202E}.Debug.ActiveCfg = Debug|.NET
{30E78998-E11D-4657-B76C-C3409035202E}.Debug.Build.0 = Debug|.NET
{30E78998-E11D-4657-B76C-C3409035202E}.Release.ActiveCfg = Release|.NET
{30E78998-E11D-4657-B76C-C3409035202E}.Release.Build.0 = Release|.NET
{1ACAE300-785A-4819-89BD-18D2BB7400D3}.Debug.ActiveCfg = Debug|.NET
{1ACAE300-785A-4819-89BD-18D2BB7400D3}.Debug.Build.0 = Debug|.NET
{1ACAE300-785A-4819-89BD-18D2BB7400D3}.Release.ActiveCfg = Release|.NET
{1ACAE300-785A-4819-89BD-18D2BB7400D3}.Release.Build.0 = Release|.NET
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

Binary file not shown.

View File

@ -0,0 +1,28 @@
一.使用说明
为了正常运行本程序请确保你的电脑上安装有Microsoft的.Net FrameWork1.0以上版本。
二.开发和运行环境的选择
1. 开发工具选择:
语言选择 -------采用.Net开发平台中的C#语言
数据库选择 --------Microsoft Office Access2003
2.运行环境: Windows 9x 、Windows NT或Windows 2000操作系统。
(必须保证电脑上装有.Net FrameWork 1.0 以上版本才可确保程序正常运行)
三.系统功能概述
系统功能主要是发信件的功能。包括发送一封简单的纯文本邮件和发送带附件的邮件给一个联系人或者多个联系人。
四.实用方法
第一次运行软件的时候,请先注册一个用户帐户,把有关你电子邮件的信息填写好。然后点击写邮件的按钮,就会弹出写新邮件的界面,
在填写收信人的时候,请注意讲你的多个联系人用","格开,并且最后一个联系人不需要; 例如:
yinhu82@sina.com.cn;xuelinbo1115@163.com
由于个人技术水平所限,程序难免有不足之处,如果你有什么问题或者好的建议和意见,请联系我本人。
QQ170755035 E-Mail:xuelinbo1115@163.com

View File

@ -0,0 +1,162 @@
using System;
using System.Data ;
using System.Data .OleDb ;
using System.Collections ;
using System.Windows .Forms ;
namespace MailManageSystem.RegisterAccount
{
/// <summary>
/// AccountOperate 的摘要说明。
/// </summary>
public class AccountOperate
{
//定义一个连接数据库的字符串
string conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+"\\Manage.mdb";
public AccountOperate()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 向数据库中插入数据
/// </summary>
/// <param name="insert"></param>
public void AddDelAccount(string insert)
{
OleDbConnection myconn=new OleDbConnection (conn);
myconn.Open ();
OleDbCommand cmd=new OleDbCommand(insert,myconn);
try
{
cmd.ExecuteNonQuery ();
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
finally
{
myconn.Close ();
}
}
/// <summary>
/// 选中的帐户的相关信息
/// </summary>
/// <param name="sql">选择的语句</param>
/// <returns></returns>
public string[] AccountFileInfo(string sql)
{
string []AccountInfo=new string [5];
OleDbConnection myconn=new OleDbConnection (conn);
myconn.Open ();
try
{
OleDbCommand mycmd=new OleDbCommand(sql,myconn);
OleDbDataReader myread=mycmd.ExecuteReader ();
while(myread.Read ())
{
AccountInfo[0]=myread["UserName"].ToString ();
AccountInfo[1]=myread["Passw"].ToString ();
AccountInfo[2]=myread["MailAddress"].ToString ();
AccountInfo[3]=myread["Smtp"].ToString ();
AccountInfo[4]=myread["port"].ToString ();
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
finally
{
myconn.Close ();
}
return AccountInfo;
}
/// <summary>
/// 从数据库中读出需要的数据(主要用于显示所有的帐户)
/// </summary>
/// <param name="sql">执行的语句</param>
/// <returns></returns>
public ArrayList ReadFromDataBase(string sql,string parameter)
{
ArrayList array=new ArrayList ();
OleDbConnection myconn=new OleDbConnection (conn);
myconn.Open ();
try
{
OleDbCommand mycmd=new OleDbCommand(sql,myconn);
OleDbDataReader myread=mycmd.ExecuteReader ();
while(myread.Read ())
{
array.Add (myread[parameter]);
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
finally
{
myconn.Close ();
}
return array;
}
/// <summary>
/// 此函数的作用是来判断用户名是否已经被使用调用的方法是通过Sql语句以及一个字符串变量
/// </summary>
/// <param name="sql"></param>
/// <param name="username"></param>
/// <returns></returns>
public bool CheckAccount(string sql,string username)
{
// 设置标志位用来标识是否被使用
bool state=false;
OleDbConnection myconn=new OleDbConnection (conn);
myconn.Open ();
OleDbCommand cmd2=new OleDbCommand(sql,myconn);
OleDbDataReader myread=cmd2.ExecuteReader ();
if(username!="")
{
try
{
while(myread.Read ())
{
//读取用户名来和用户输入的注册名匹配,如果匹配设置标志位为真
if(myread.GetString (0).Trim()==username)
{
state=true;
break;
}
}
}
catch(Exception E)
{
Console.WriteLine (E.ToString ());
}
finally
{
myread.Close ();
myconn.Close ();
}
}
return state;
}
}
}

View File

@ -0,0 +1,331 @@
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using MailManageSystem.RegisterAccount ;
namespace MailManageSystem
{
/// <summary>
/// NewAccount 的摘要说明。
/// </summary>
public class NewAccount : System.Windows.Forms.Form
{
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Button btnNext;
private System.Windows.Forms.Button btnCancle;
private System.Windows.Forms.TextBox txtUserName;
private System.Windows.Forms.TextBox txtPassWord;
private System.Windows.Forms.TextBox txtAccountName;
private System.Windows.Forms.TextBox txtMailAddress;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.LinkLabel linkLabel1;
AccountOperate acOperate=new AccountOperate();
public NewAccount()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(NewAccount));
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.txtUserName = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtPassWord = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.txtAccountName = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.btnNext = new System.Windows.Forms.Button();
this.label8 = new System.Windows.Forms.Label();
this.txtMailAddress = new System.Windows.Forms.TextBox();
this.btnCancle = new System.Windows.Forms.Button();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(8, 8);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(152, 272);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// label1
//
this.label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.label1.Location = new System.Drawing.Point(192, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(128, 24);
this.label1.TabIndex = 0;
this.label1.Text = "建立新的用户帐户:";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// txtUserName
//
this.txtUserName.Location = new System.Drawing.Point(304, 88);
this.txtUserName.Name = "txtUserName";
this.txtUserName.Size = new System.Drawing.Size(144, 21);
this.txtUserName.TabIndex = 2;
this.txtUserName.Text = "";
//
// label6
//
this.label6.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label6.Location = new System.Drawing.Point(240, 120);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(40, 23);
this.label6.TabIndex = 0;
this.label6.Text = "密码:";
//
// txtPassWord
//
this.txtPassWord.Location = new System.Drawing.Point(304, 120);
this.txtPassWord.Name = "txtPassWord";
this.txtPassWord.PasswordChar = '*';
this.txtPassWord.Size = new System.Drawing.Size(144, 21);
this.txtPassWord.TabIndex = 3;
this.txtPassWord.Text = "531115";
//
// label7
//
this.label7.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label7.Location = new System.Drawing.Point(232, 88);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(56, 23);
this.label7.TabIndex = 0;
this.label7.Text = "用户名:";
//
// label4
//
this.label4.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label4.ForeColor = System.Drawing.Color.Red;
this.label4.Location = new System.Drawing.Point(184, 200);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(112, 16);
this.label4.TabIndex = 0;
this.label4.Text = "[必填]帐户名称:";
//
// txtAccountName
//
this.txtAccountName.Location = new System.Drawing.Point(304, 200);
this.txtAccountName.Name = "txtAccountName";
this.txtAccountName.Size = new System.Drawing.Size(144, 21);
this.txtAccountName.TabIndex = 4;
this.txtAccountName.Text = "";
//
// label5
//
this.label5.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label5.Location = new System.Drawing.Point(184, 160);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(256, 24);
this.label5.TabIndex = 0;
this.label5.Text = "\"帐户名称\"是在本软件中要显示的名称";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// btnNext
//
this.btnNext.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnNext.Location = new System.Drawing.Point(200, 272);
this.btnNext.Name = "btnNext";
this.btnNext.TabIndex = 5;
this.btnNext.Text = "下一步";
this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
//
// label8
//
this.label8.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label8.ForeColor = System.Drawing.Color.Red;
this.label8.Location = new System.Drawing.Point(168, 56);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(128, 23);
this.label8.TabIndex = 0;
this.label8.Text = "[必填]电子邮件地址:";
//
// txtMailAddress
//
this.txtMailAddress.Location = new System.Drawing.Point(304, 56);
this.txtMailAddress.Name = "txtMailAddress";
this.txtMailAddress.Size = new System.Drawing.Size(144, 21);
this.txtMailAddress.TabIndex = 1;
this.txtMailAddress.Text = "xuelinbo1115@163.com";
this.txtMailAddress.Leave += new System.EventHandler(this.txtMailAddress_Leave);
//
// btnCancle
//
this.btnCancle.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnCancle.Location = new System.Drawing.Point(384, 272);
this.btnCancle.Name = "btnCancle";
this.btnCancle.TabIndex = 0;
this.btnCancle.Text = "取消";
this.btnCancle.Click += new System.EventHandler(this.btnCancle_Click);
//
// linkLabel1
//
this.linkLabel1.Location = new System.Drawing.Point(376, 232);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(80, 16);
this.linkLabel1.TabIndex = 6;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "检测帐户名";
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// NewAccount
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(472, 318);
this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.btnCancle);
this.Controls.Add(this.label8);
this.Controls.Add(this.txtMailAddress);
this.Controls.Add(this.btnNext);
this.Controls.Add(this.label5);
this.Controls.Add(this.txtAccountName);
this.Controls.Add(this.label4);
this.Controls.Add(this.label1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.txtPassWord);
this.Controls.Add(this.label7);
this.Controls.Add(this.label6);
this.Controls.Add(this.txtUserName);
this.Name = "NewAccount";
this.Text = "NewAccount";
this.ResumeLayout(false);
}
#endregion
private void btnNext_Click(object sender, System.EventArgs e)
{
SystemManage.UserName =this.txtUserName .Text ;
SystemManage.PassWd =this.txtPassWord .Text ;
SystemManage.AccountName =this.txtAccountName .Text ;
if(this.txtMailAddress .Text =="")
{
MessageBox.Show ("请检查邮件地址");
return;
}
if(this.txtUserName .Text =="")
{
MessageBox.Show ("请检查用户名");
return;
}
if(this.txtPassWord.Text =="")
{
MessageBox.Show ("密码不能为空");
return;
}
if(this.txtAccountName.Text =="")
{
MessageBox.Show ("帐户名不可为空");
return;
}
if(returnState())
{
MessageBox.Show ("请更改注册名!");
}
else
{
SmtpPop smtpop=new SmtpPop ();
smtpop.Show ();
this.Close();
}
}
private void btnCancle_Click(object sender, System.EventArgs e)
{
this.Close ();
}
private void txtMailAddress_Leave(object sender, System.EventArgs e)
{
int i=this.txtMailAddress .Text .IndexOf ("@");
if(i==-1)
{
MessageBox.Show ("请输入正确的邮件格式!","请检查");
return;
}
else
{
this.txtAccountName .Text =this.txtMailAddress .Text .Substring (0,i);
this.txtUserName.Text =this.txtAccountName .Text ;
SystemManage.MailAddress =this.txtMailAddress .Text ;
SystemManage.AccountName =this.txtAccountName .Text ;
}
}
//调用Accountoperate类的检查帐户是否被占用的函数并返回一个标志位
private bool returnState()
{
bool state=false;
state=acOperate.CheckAccount("select AccountName from Users where AccountName='"+this.txtAccountName .Text +"'",this.txtAccountName .Text );
return state;
}
private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
if(returnState())
{
MessageBox.Show ("这个帐户已经被人注册","很遗憾!",MessageBoxButtons.OK,MessageBoxIcon.Warning);
this.txtAccountName .Clear ();
}
else
{
MessageBox.Show ("这个注册名还没有人使用,您可以放心使用了","恭喜!",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}
}
}

View File

@ -0,0 +1,470 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="pictureBox1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="pictureBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="pictureBox1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
enSmg+uR2pvOevFN3tuUmtkf/9k=
</value>
</data>
<data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtUserName.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtUserName.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtUserName.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label6.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label6.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label6.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtPassWord.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtPassWord.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtPassWord.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label7.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label7.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label7.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtAccountName.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtAccountName.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtAccountName.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label5.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label5.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnNext.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="btnNext.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnNext.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label8.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label8.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label8.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtMailAddress.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtMailAddress.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtMailAddress.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="btnCancle.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="btnCancle.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnCancle.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="linkLabel1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="linkLabel1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="linkLabel1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Name">
<value>NewAccount</value>
</data>
</root>

View File

@ -0,0 +1,280 @@
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using MailManageSystem.RegisterAccount ;
namespace MailManageSystem
{
/// <summary>
/// SmtpPop 的摘要说明。
/// </summary>
public class SmtpPop : System.Windows.Forms.Form
{
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtPOP3;
private System.Windows.Forms.TextBox txtSMTP;
private System.Windows.Forms.Button btnCancle;
private System.Windows.Forms.Button btnSure;
private System.Windows.Forms.Button btnPre;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtSMTPPort;
private System.Windows.Forms.TextBox txtPOP3Port;
private System.Windows.Forms.Label label7;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
AccountOperate acOperate=new AccountOperate();
public SmtpPop()
{
InitializeComponent();
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(SmtpPop));
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtPOP3 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.txtSMTP = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.btnCancle = new System.Windows.Forms.Button();
this.btnSure = new System.Windows.Forms.Button();
this.btnPre = new System.Windows.Forms.Button();
this.txtSMTPPort = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtPOP3Port = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(8, 8);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(136, 296);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// label1
//
this.label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.label1.Location = new System.Drawing.Point(176, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(128, 24);
this.label1.TabIndex = 0;
this.label1.Text = "指定邮件服务器";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label2
//
this.label2.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label2.Location = new System.Drawing.Point(176, 56);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(288, 32);
this.label2.TabIndex = 0;
//
// label3
//
this.label3.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label3.Location = new System.Drawing.Point(176, 104);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(72, 23);
this.label3.TabIndex = 0;
this.label3.Text = "POP3服务器:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// txtPOP3
//
this.txtPOP3.Location = new System.Drawing.Point(264, 104);
this.txtPOP3.Name = "txtPOP3";
this.txtPOP3.Size = new System.Drawing.Size(192, 21);
this.txtPOP3.TabIndex = 1;
this.txtPOP3.Text = "";
//
// label4
//
this.label4.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label4.Location = new System.Drawing.Point(176, 168);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(304, 24);
this.label4.TabIndex = 0;
//
// txtSMTP
//
this.txtSMTP.Location = new System.Drawing.Point(264, 208);
this.txtSMTP.Name = "txtSMTP";
this.txtSMTP.Size = new System.Drawing.Size(192, 21);
this.txtSMTP.TabIndex = 3;
this.txtSMTP.Text = "SMTP.163.com";
//
// label5
//
this.label5.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label5.Location = new System.Drawing.Point(176, 208);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(72, 23);
this.label5.TabIndex = 0;
this.label5.Text = "SMTP服务器:";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// btnCancle
//
this.btnCancle.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnCancle.Location = new System.Drawing.Point(392, 280);
this.btnCancle.Name = "btnCancle";
this.btnCancle.TabIndex = 0;
this.btnCancle.Text = "取消";
this.btnCancle.Click += new System.EventHandler(this.btnCancle_Click);
//
// btnSure
//
this.btnSure.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnSure.Location = new System.Drawing.Point(280, 280);
this.btnSure.Name = "btnSure";
this.btnSure.TabIndex = 5;
this.btnSure.Text = "完成";
this.btnSure.Click += new System.EventHandler(this.btnSure_Click);
//
// btnPre
//
this.btnPre.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnPre.Location = new System.Drawing.Point(176, 280);
this.btnPre.Name = "btnPre";
this.btnPre.TabIndex = 0;
this.btnPre.Text = "上一步";
this.btnPre.Click += new System.EventHandler(this.btnPre_Click);
//
// txtSMTPPort
//
this.txtSMTPPort.Location = new System.Drawing.Point(264, 232);
this.txtSMTPPort.Name = "txtSMTPPort";
this.txtSMTPPort.Size = new System.Drawing.Size(64, 21);
this.txtSMTPPort.TabIndex = 4;
this.txtSMTPPort.Text = "21";
//
// label6
//
this.label6.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label6.Location = new System.Drawing.Point(200, 232);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(40, 23);
this.label6.TabIndex = 0;
this.label6.Text = "端口:";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// txtPOP3Port
//
this.txtPOP3Port.Location = new System.Drawing.Point(264, 128);
this.txtPOP3Port.Name = "txtPOP3Port";
this.txtPOP3Port.Size = new System.Drawing.Size(64, 21);
this.txtPOP3Port.TabIndex = 2;
this.txtPOP3Port.Text = "110";
//
// label7
//
this.label7.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label7.Location = new System.Drawing.Point(200, 128);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(40, 23);
this.label7.TabIndex = 0;
this.label7.Text = "端口:";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// SmtpPop
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(496, 334);
this.Controls.Add(this.txtPOP3Port);
this.Controls.Add(this.label7);
this.Controls.Add(this.txtSMTPPort);
this.Controls.Add(this.label6);
this.Controls.Add(this.btnCancle);
this.Controls.Add(this.btnSure);
this.Controls.Add(this.btnPre);
this.Controls.Add(this.txtSMTP);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.txtPOP3);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.pictureBox1);
this.Name = "SmtpPop";
this.Text = "SmtpPop";
this.Closing += new System.ComponentModel.CancelEventHandler(this.SmtpPop_Closing);
this.Load += new System.EventHandler(this.SmtpPop_Load);
this.ResumeLayout(false);
}
#endregion
private void SmtpPop_Load(object sender, System.EventArgs e)
{
this.label2 .Text ="POP3(PostOffice Protocol 3)是用来接受邮件的服务器,您的邮件保存在其上.";
this.label4 .Text ="SMTP(Simple Mail Transfer Protocol)是用来发送邮件的服务器.";
}
private void btnPre_Click(object sender, System.EventArgs e)
{
NewAccount newaccount=new NewAccount ();
newaccount.Show ();
this.Hide ();
}
private void btnCancle_Click(object sender, System.EventArgs e)
{
this.Close ();
}
private void btnSure_Click(object sender, System.EventArgs e)
{
SystemManage.SmtpName =this.txtSMTP .Text ;
SystemManage.SmtpPort =int.Parse (this.txtSMTPPort .Text );
acOperate.AddDelAccount("insert into users(AccountName,userName,PassW,MailAddress,smtp,Port) values('"+SystemManage.AccountName +"','"+SystemManage.UserName+"','"+SystemManage.PassWd+"','"+SystemManage.MailAddress+"','"+this.txtSMTP .Text +"','"+this.txtSMTPPort .Text+"')");
// SystemManage syManage=new SystemManage ();
// syManage.AddAccount();
SystemManage.flag =true;
this.Close();
}
private void SmtpPop_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
}
}
}

View File

@ -0,0 +1,739 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="pictureBox1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="pictureBox1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="pictureBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
aGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW
19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QA
tREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl
8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOU
lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6
/9oADAMAAAERAhEAPwD3aiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopKKAFopKWgAopKKAFpKWkoAZimtinGq5oMyQq
pGaqslS7qaWouRO1i/RRRQbhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFJS0lACU2mk0LTM3qSClpM0UikITijNNbmo80iL6likpma
bnmgpyJahcVLTaQykaKmdKQ4UUyJou0UUUzUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAoopKAFopKKAFopKWgAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKaSB1qFrhF96ai3sJySLFFZrXZ7U77S2K09iyFURoUVm/aWo+0H1peyYe1RpU0kDrWd55qF5S
aPZi9oa29fUU7INYm73pwlYd6OQSqm1RWULtqd9qal7Mr2qNOis8XZ9KPtdLkH7RGhSVR+1VH9oajlDn
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
</value>
</data>
<data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtPOP3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtPOP3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtPOP3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtSMTP.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtSMTP.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtSMTP.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label5.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label5.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnCancle.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="btnCancle.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnCancle.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnSure.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="btnSure.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnSure.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnPre.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="btnPre.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="btnPre.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtSMTPPort.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtSMTPPort.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtSMTPPort.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label6.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label6.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label6.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtPOP3Port.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtPOP3Port.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtPOP3Port.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label7.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label7.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label7.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.Name">
<value>SmtpPop</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>

View File

@ -0,0 +1,777 @@
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Net ;
using System.Net .Sockets ;
using MailSend;
using System.Data ;
using System.Runtime .InteropServices ;
namespace MailManageSystem
{
/// <summary>
/// Send 的摘要说明。
/// </summary>
public class SendMailForm : System.Windows.Forms.Form
{
private System.Windows.Forms.MainMenu mainMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.Windows.Forms.MenuItem menuItem4;
private System.Windows.Forms.MenuItem menuItem5;
private System.Windows.Forms.MenuItem menuItem6;
private System.Windows.Forms.MenuItem menuItem7;
private System.Windows.Forms.MenuItem menuItem8;
private System.ComponentModel.IContainer components;
private System.Windows.Forms.OpenFileDialog openFileDialog1;//语言编码
private System.Windows.Forms.ToolBar toolBar1;
private System.Windows.Forms.ToolBarButton tbSend;
private System.Windows.Forms.ToolBarButton tbSave;
private System.Windows.Forms.ToolBarButton toolBarButton1;
private System.Windows.Forms.ToolBarButton tbAttachment;
private System.Windows.Forms.SaveFileDialog saveFileDialog1;
private System.Windows.Forms.ImageList imlSendMail;
private System.Windows.Forms.ImageList imlAttachment;
private System.Windows.Forms.ContextMenu conAttachment;
private System.Windows.Forms.MenuItem menuItem9;
private System.Windows.Forms.MenuItem menuItem10;
private System.Windows.Forms.MenuItem menuItem11;
private System.Windows.Forms.MenuItem menuItem12;
private System.Windows.Forms.MenuItem menuItem13;
private System.Windows.Forms.MenuItem menuItem14;
private System.Windows.Forms.MenuItem menuItem15;
private System.Windows.Forms.MenuItem menuItem16;
private System.Windows.Forms.MenuItem menuItem17;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.TextBox txtTo;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtSubject;
private System.Windows.Forms.Splitter splitter1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.RichTextBox txtMessage;
private ArrayList array=new ArrayList ();
private System.Windows.Forms.ListView ltAttachment;
private System.Windows.Forms.ComboBox cbHtml;
int i = 0;
//EntryPoint 给出Dll入口点的名称如果没有给出则用方法本身的名称。
[DllImport("shell32.dll",EntryPoint="ShellExecute")]
private static extern int ShellExecute(IntPtr hwnd, string lpOperation,string lpFile, string lpParameters, string lpDirectory, int nShowCmd);
//函数SHGetFileInfo()的返回值也随uFlags的取值变化而有所不同。
//通过调用SHGetFileInfo()可以由psfi参数得到文件的图标句柄但要注意在uFlags参数中不使用SHGFI_PIDL时SHGetFileInfo()不能获得"我的电脑"等虚似文件夹的信息。
[DllImport("Shell32.dll")]
private static extern int SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbFileInfo, SHGFI uFlags);
[StructLayout(LayoutKind.Sequential)]
private struct SHFILEINFO
{
//重载一个构造函数
public SHFILEINFO(bool b)
{
hIcon = IntPtr.Zero ; iIcon = 0; dwAttributes = 0; szDisplayName = ""; szTypeName = "";
}
public IntPtr hIcon;
public int iIcon;
public uint dwAttributes;
[MarshalAs(UnmanagedType.LPStr, SizeConst =256)]
public string szDisplayName;
[MarshalAs(UnmanagedType.LPStr, SizeConst = 80)]
public string szTypeName;
};
//图标类型的结构体
private enum SHGFI
{
SHGFI_ICON =0x000000100, // get icon
SHGFI_DISPLAYNAME =0x000000200, // get display name
SHGFI_TYPENAME =0x000000400, // get type name
SHGFI_ATTRIBUTES =0x000000800, // get attributes
SHGFI_ICONLOCATION =0x000001000, // get icon location
SHGFI_EXETYPE =0x000002000, // return exe type
SHGFI_SYSICONINDEX =0x000004000, // get system icon index
SHGFI_LINKOVERLAY =0x000008000, // put a link overlay on icon
SHGFI_SELECTED =0x000010000, // show icon in selected state
SHGFI_ATTR_SPECIFIED =0x000020000, // get only specified attributes
SHGFI_LARGEICON =0x000000000, // get large icon
SHGFI_SMALLICON =0x000000001, // get small icon
SHGFI_OPENICON =0x000000002, // get open icon
SHGFI_SHELLICONSIZE =0x000000004, // get shell size icon
SHGFI_PIDL =0x000000008, // pszPath is a pidl
SHGFI_USEFILEATTRIBUTES =0x000000010, // use passed dwFileAttribute
SHGFI_ADDOVERLAYS =0x000000020, // apply the appropriate overlays
SHGFI_OVERLAYINDEX =0x000000040 // Get the index of the overlay
}
/// <summary>
/// 调用获的程序图标句柄的函数
/// </summary>
/// <param name="strPath">选定程序的绝对路径</param>
/// <returns></returns>
private static Icon GetIcon(string strPath)
{
try
{
SHFILEINFO info = new SHFILEINFO();
int cbFileInfo = Marshal.SizeOf(info);
SHGFI flags;
flags = SHGFI.SHGFI_ICON|SHGFI.SHGFI_LARGEICON|SHGFI.SHGFI_ATTRIBUTES|SHGFI.SHGFI_EXETYPE;
SHGetFileInfo(strPath, 32|0, ref info,(uint)cbFileInfo,flags);
return Icon.FromHandle(info.hIcon);
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
return null;
}
}
public SendMailForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(SendMailForm));
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
this.menuItem8 = new System.Windows.Forms.MenuItem();
this.menuItem4 = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem();
this.menuItem6 = new System.Windows.Forms.MenuItem();
this.menuItem7 = new System.Windows.Forms.MenuItem();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.toolBar1 = new System.Windows.Forms.ToolBar();
this.tbSend = new System.Windows.Forms.ToolBarButton();
this.tbSave = new System.Windows.Forms.ToolBarButton();
this.toolBarButton1 = new System.Windows.Forms.ToolBarButton();
this.tbAttachment = new System.Windows.Forms.ToolBarButton();
this.imlSendMail = new System.Windows.Forms.ImageList(this.components);
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.imlAttachment = new System.Windows.Forms.ImageList(this.components);
this.conAttachment = new System.Windows.Forms.ContextMenu();
this.menuItem9 = new System.Windows.Forms.MenuItem();
this.menuItem10 = new System.Windows.Forms.MenuItem();
this.menuItem11 = new System.Windows.Forms.MenuItem();
this.menuItem12 = new System.Windows.Forms.MenuItem();
this.menuItem13 = new System.Windows.Forms.MenuItem();
this.menuItem14 = new System.Windows.Forms.MenuItem();
this.menuItem15 = new System.Windows.Forms.MenuItem();
this.menuItem17 = new System.Windows.Forms.MenuItem();
this.menuItem16 = new System.Windows.Forms.MenuItem();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.cbHtml = new System.Windows.Forms.ComboBox();
this.txtTo = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.txtSubject = new System.Windows.Forms.TextBox();
this.ltAttachment = new System.Windows.Forms.ListView();
this.splitter1 = new System.Windows.Forms.Splitter();
this.panel1 = new System.Windows.Forms.Panel();
this.txtMessage = new System.Windows.Forms.RichTextBox();
this.groupBox2.SuspendLayout();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1,
this.menuItem5,
this.menuItem6});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem2,
this.menuItem3,
this.menuItem8,
this.menuItem4});
this.menuItem1.Text = "邮件(M)";
//
// menuItem2
//
this.menuItem2.Index = 0;
this.menuItem2.Text = "立即发送";
this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
//
// menuItem3
//
this.menuItem3.Index = 1;
this.menuItem3.Text = "草稿";
//
// menuItem8
//
this.menuItem8.Index = 2;
this.menuItem8.Text = "-";
//
// menuItem4
//
this.menuItem4.Index = 3;
this.menuItem4.Text = "退出";
this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
//
// menuItem5
//
this.menuItem5.Index = 1;
this.menuItem5.Text = "";
//
// menuItem6
//
this.menuItem6.Index = 2;
this.menuItem6.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem7});
this.menuItem6.Text = "插入(I)";
//
// menuItem7
//
this.menuItem7.Index = 0;
this.menuItem7.Text = "增加附件";
this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
//
// toolBar1
//
this.toolBar1.Appearance = System.Windows.Forms.ToolBarAppearance.Flat;
this.toolBar1.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] {
this.tbSend,
this.tbSave,
this.toolBarButton1,
this.tbAttachment});
this.toolBar1.ButtonSize = new System.Drawing.Size(100, 80);
this.toolBar1.DropDownArrows = true;
this.toolBar1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.toolBar1.ImageList = this.imlSendMail;
this.toolBar1.Location = new System.Drawing.Point(0, 0);
this.toolBar1.Name = "toolBar1";
this.toolBar1.ShowToolTips = true;
this.toolBar1.Size = new System.Drawing.Size(800, 41);
this.toolBar1.TabIndex = 3;
this.toolBar1.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar1_ButtonClick);
//
// tbSend
//
this.tbSend.ImageIndex = 0;
this.tbSend.Text = "发送";
//
// tbSave
//
this.tbSave.ImageIndex = 1;
this.tbSave.Text = "保存";
//
// toolBarButton1
//
this.toolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.Separator;
//
// tbAttachment
//
this.tbAttachment.ImageIndex = 2;
this.tbAttachment.Text = "附件";
//
// imlSendMail
//
this.imlSendMail.ImageSize = new System.Drawing.Size(16, 16);
this.imlSendMail.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imlSendMail.ImageStream")));
this.imlSendMail.TransparentColor = System.Drawing.Color.Transparent;
//
// imlAttachment
//
this.imlAttachment.ImageSize = new System.Drawing.Size(16, 16);
this.imlAttachment.TransparentColor = System.Drawing.Color.Transparent;
//
// conAttachment
//
this.conAttachment.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem9,
this.menuItem10,
this.menuItem11,
this.menuItem12,
this.menuItem13,
this.menuItem14});
//
// menuItem9
//
this.menuItem9.Index = 0;
this.menuItem9.Shortcut = System.Windows.Forms.Shortcut.Alt0;
this.menuItem9.Text = "增加(A)...";
this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click_1);
//
// menuItem10
//
this.menuItem10.Index = 1;
this.menuItem10.Shortcut = System.Windows.Forms.Shortcut.Alt1;
this.menuItem10.Text = "删除(D)...";
this.menuItem10.Click += new System.EventHandler(this.menuItem10_Click);
//
// menuItem11
//
this.menuItem11.Index = 2;
this.menuItem11.Text = "-";
//
// menuItem12
//
this.menuItem12.Index = 3;
this.menuItem12.Shortcut = System.Windows.Forms.Shortcut.Alt2;
this.menuItem12.Text = "打开(O)...";
this.menuItem12.Click += new System.EventHandler(this.menuItem12_Click);
//
// menuItem13
//
this.menuItem13.Index = 4;
this.menuItem13.Text = "-";
//
// menuItem14
//
this.menuItem14.Index = 5;
this.menuItem14.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem15,
this.menuItem17,
this.menuItem16});
this.menuItem14.Text = "排列图标(V)...";
//
// menuItem15
//
this.menuItem15.Index = 0;
this.menuItem15.Text = "大图标";
this.menuItem15.Click += new System.EventHandler(this.menuItem15_Click_1);
//
// menuItem17
//
this.menuItem17.Index = 1;
this.menuItem17.Text = "小图标";
this.menuItem17.Click += new System.EventHandler(this.menuItem17_Click);
//
// menuItem16
//
this.menuItem16.Index = 2;
this.menuItem16.Text = "列表";
this.menuItem16.Click += new System.EventHandler(this.menuItem16_Click_1);
//
// groupBox2
//
this.groupBox2.Controls.Add(this.cbHtml);
this.groupBox2.Controls.Add(this.txtTo);
this.groupBox2.Controls.Add(this.label3);
this.groupBox2.Controls.Add(this.label4);
this.groupBox2.Controls.Add(this.txtSubject);
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox2.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.groupBox2.Location = new System.Drawing.Point(0, 41);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(800, 104);
this.groupBox2.TabIndex = 4;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "邮件头";
//
// cbHtml
//
this.cbHtml.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.cbHtml.Items.AddRange(new object[] {
"HTML邮件",
"纯文本邮件"});
this.cbHtml.Location = new System.Drawing.Point(704, 72);
this.cbHtml.Name = "cbHtml";
this.cbHtml.Size = new System.Drawing.Size(88, 20);
this.cbHtml.TabIndex = 8;
this.cbHtml.Text = "HTML邮件";
//
// txtTo
//
this.txtTo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtTo.Location = new System.Drawing.Point(88, 72);
this.txtTo.Name = "txtTo";
this.txtTo.Size = new System.Drawing.Size(584, 21);
this.txtTo.TabIndex = 6;
this.txtTo.Text = "yinhu82@163.com,yinhu82@sina.com.cn";
//
// label3
//
this.label3.Location = new System.Drawing.Point(24, 72);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(48, 23);
this.label3.TabIndex = 5;
this.label3.Text = "收件人:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label4
//
this.label4.Location = new System.Drawing.Point(16, 32);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(64, 23);
this.label4.TabIndex = 4;
this.label4.Text = "邮件主题:";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// txtSubject
//
this.txtSubject.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtSubject.Location = new System.Drawing.Point(88, 32);
this.txtSubject.Name = "txtSubject";
this.txtSubject.Size = new System.Drawing.Size(664, 21);
this.txtSubject.TabIndex = 7;
this.txtSubject.Text = "最新版";
//
// ltAttachment
//
this.ltAttachment.AllowDrop = true;
this.ltAttachment.ContextMenu = this.conAttachment;
this.ltAttachment.Dock = System.Windows.Forms.DockStyle.Bottom;
this.ltAttachment.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.ltAttachment.LargeImageList = this.imlAttachment;
this.ltAttachment.Location = new System.Drawing.Point(0, 392);
this.ltAttachment.Name = "ltAttachment";
this.ltAttachment.Size = new System.Drawing.Size(800, 97);
this.ltAttachment.TabIndex = 5;
this.ltAttachment.DragDrop += new System.Windows.Forms.DragEventHandler(this.listView1_DragDrop);
this.ltAttachment.DragEnter += new System.Windows.Forms.DragEventHandler(this.listView1_DragEnter);
//
// splitter1
//
this.splitter1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(255)));
this.splitter1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.splitter1.Location = new System.Drawing.Point(0, 388);
this.splitter1.Name = "splitter1";
this.splitter1.Size = new System.Drawing.Size(800, 4);
this.splitter1.TabIndex = 6;
this.splitter1.TabStop = false;
//
// panel1
//
this.panel1.Controls.Add(this.txtMessage);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 145);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(800, 243);
this.panel1.TabIndex = 7;
//
// txtMessage
//
this.txtMessage.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtMessage.Location = new System.Drawing.Point(0, 0);
this.txtMessage.Name = "txtMessage";
this.txtMessage.Size = new System.Drawing.Size(800, 243);
this.txtMessage.TabIndex = 0;
this.txtMessage.Text = "呵呵 这是第一封试验邮件";
//
// SendMailForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(800, 489);
this.Controls.Add(this.panel1);
this.Controls.Add(this.splitter1);
this.Controls.Add(this.ltAttachment);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.toolBar1);
this.Menu = this.mainMenu1;
this.Name = "SendMailForm";
this.Text = "Send";
this.Load += new System.EventHandler(this.SendMailForm_Load);
this.groupBox2.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
//发送邮件
private void menuItem2_Click(object sender, System.EventArgs e)
{
bool html=false;
if(this.cbHtml .Text=="HTML邮件"|this.cbHtml .Text =="纯文本邮件")
{
if(this.cbHtml .Text=="HTML邮件")
html=true;
else if(this.cbHtml .Text=="纯文本邮件")
html=false;
}
else
{
MessageBox.Show ("请做出有效的邮件格式选择");
this.cbHtml .Text ="HTML邮件";
return;
}
SmtpMail send=new SmtpMail (array);
Cursor.Current =Cursors.WaitCursor ;
send.Charset ="GB2312";
send.Priority ="Normal";
send.eSmtp=true;
send.MailServerUserName =SystemManage.UserName ;
send.MailServerPassWord =SystemManage.PassWd ;
send.Send (SystemManage.SmtpName,SystemManage.MailAddress ,SystemManage.AccountName,this.txtTo .Text ,html,this.txtSubject .Text ,this.txtMessage .Text );
Cursor.Current =Cursors.Default ;
SystemManage.letterNumber ++;
ltAttachment .Items .Clear ();
this.Close ();
}
private void menuItem4_Click(object sender, System.EventArgs e)
{
this.Close ();
}
//添加附件名称和图标的函数
private void btnAdd_Click()
{
if(this.openFileDialog1 .ShowDialog()==DialogResult.OK)
{
array.Add (this.openFileDialog1 .FileName );
AddIcon(this.openFileDialog1.FileName);
ltAttachment .Visible =true;
this.splitter1 .Visible =true;
}
}
/// <summary>
/// 判断加入的文件格式并添加到附件ListView中
/// </summary>
/// <param name="fileType"></param>
private void AddIcon(string fileType)
{
//string type = fileType.Substring(fileType.Length - 3);
try
{
string Name = fileType.Substring(fileType.LastIndexOf(@"\") + 1);
this.imlAttachment.Images.Add(GetIcon(fileType));
this.ltAttachment.LargeImageList = this.imlAttachment;
this.ltAttachment .SmallImageList =this.imlAttachment ;
this.ltAttachment .Items .Add (Name,i++);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString ());
}
}
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
switch(this.toolBar1 .Buttons.IndexOf (e.Button ))
{
case 0:
menuItem2_Click(null,null);
break;
case 1:
this.saveFileDialog1.Title ="保存信件";
this.saveFileDialog1 .Filter ="文本文件(*.txt)|*.txt|All Files(*.*)|*.*";
AddExtra extra=new AddExtra( array);
string info="SMTP地址:"+SystemManage.SmtpName+"\r\n用户名:"+SystemManage.UserName+"\r\n密码:"+SystemManage.PassWd+"\r\n发信人地址:"+SystemManage.MailAddress+"\r\n主题:"+this.txtSubject .Text+"\r\n收信人地址:"+this.txtTo .Text +"\r\n信件内容:"+this.txtMessage .Text+"\r\n";
if(this.saveFileDialog1 .ShowDialog ()==DialogResult.OK )
{
extra.SaveLetter (this.saveFileDialog1 .FileName,info);
MessageBox.Show ("信件保存成功!");
}
break;
case 3:
btnAdd_Click();
break;
default:
MessageBox.Show ("此功能还没有完善");
break;
}
}
private void menuItem7_Click(object sender, System.EventArgs e)
{
btnAdd_Click();
}
private void SendMailForm_Load(object sender, System.EventArgs e)
{
ltAttachment .Visible =false;
this.splitter1 .Visible =false;
}
//附件的"删除"操作
private void menuItem10_Click(object sender, System.EventArgs e)
{
try
{
if(ltAttachment .Items .Count >1)
{
//因为在添加一个附件的时候刚好也是添加了一个ListView中的文件名
//所以他们的索引值是相同的。所以可以通过选中的ListView的索引值来删除附件
array.RemoveAt (ltAttachment.SelectedItems [0].Index );
ltAttachment .Items .RemoveAt (ltAttachment .SelectedIndices[0] );
}
else if(ltAttachment .Items .Count ==1)
{
array.RemoveAt(ltAttachment .SelectedItems [0].Index);
ltAttachment .Items .RemoveAt (ltAttachment .SelectedIndices[0] );
this.splitter1 .Visible =false;
ltAttachment .Visible =false;
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
private void menuItem9_Click_1(object sender, System.EventArgs e)
{
btnAdd_Click();
}
private void menuItem15_Click_1(object sender, System.EventArgs e)
{
ltAttachment .View =View.LargeIcon ;
}
private void menuItem17_Click(object sender, System.EventArgs e)
{
ltAttachment .View =View.SmallIcon ;
}
private void menuItem16_Click_1(object sender, System.EventArgs e)
{
ltAttachment .View =View.List;
}
//"打开"操作
private void menuItem12_Click(object sender, System.EventArgs e)
{
try
{
if (this.ltAttachment.SelectedItems[0].ToString() != "")
{
int length = this.ltAttachment.SelectedItems[0].ToString().Length;
string ss = this.ltAttachment.SelectedItems[0].ToString().Substring(15, length - 16);
ShellExecute(IntPtr.Zero, "Open", ss, null, null, 0);
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
//以下的两个事件是用来支持在添加附件时候的拖放操作的
private void listView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
try
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
for (int i = 0; i < files.Length; i++)
{
array.Add(files[i]);
AddIcon(files[i]);
}
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
private void listView1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
try
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
}
}

View File

@ -0,0 +1,479 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="mainMenu1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="mainMenu1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</data>
<data name="mainMenu1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem8.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem8.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem5.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem6.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem6.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem7.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem7.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="openFileDialog1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="openFileDialog1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="openFileDialog1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>124, 17</value>
</data>
<data name="toolBar1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="toolBar1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBar1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="tbSend.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="tbSend.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="tbSave.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="tbSave.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarButton1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarButton1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="tbAttachment.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="tbAttachment.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imlSendMail.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imlSendMail.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imlSendMail.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>268, 17</value>
</data>
<data name="imlSendMail.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw
MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT
eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA
AACCCgAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQC
AAEoAwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB
3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IB
AAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8B
MwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYC
AAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMC
AAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQAB
ZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8B
AAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQAB
MwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQAB
MwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQAB
MwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMB
mQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQAB
ZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYB
zAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMB
mQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgAB
mQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwB
AAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB
/wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQAB
mQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYC
AAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYB
AAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8C
AAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQAB
mQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMB
AAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB
/wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC
/wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC
/wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gB
AAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wUAAfEBbgFEAWcB
BwoAAQcB8QHvAQcLAAIJAbQBzgG0HQABaAJnAQwBZwFtCAABkgHxAZEBtAGRAbwB7wG8BwABtQHWAQkB
zgG0Ac4BtBsAAW4BRQGTAbcBjgGTAY4BRAHvBgAB6wGQAvEBtQGLAbwB8QLvBQAC3AHdAfEBzgG0Ac4B
tBkAAW4BaAG2AbcB8QG3AZMBjgHSAWgBZwUAAQcBtQHiAbwBkgGLArwBmQIHAe8BBwIAAtUCAAHdAc4B
tAHVAbQXAAGTAUQBjQO3AbEBbgGOAbEBjgFvAUQBBwIAAQcBuwG8AeIBugEHAYsBBwO8AQcC7wGSAQAB
1AHVAbUCAAEJAdUBtQHWAbQWAAFoAW4CtwGUAY4CRQFEAWgBiAFvAWgBRAIAAesB8wGuAfEBvAGRAZIB
7wGSAe8BvAGSAu8BBwEAAdUBtAHOAwABtQHVAbUB3AG0FQABZwG3AbYBjgFoAW4BEAEOAUQBZwFEARAB
FAFEAgAB7wHzAQcBrgGRAZIBEAEOAewCBwEOApICAAHwAc4BtAHUAwAB1gHVAbUBCQG0EwAB7wK3AY4C
ZwGZAXMBSgIOARABSgFoAY0BAAEHAfMB8QG8AQcB8QFvAXQBRQEOAUMBEAFFApIDAAG1AdQB1QG0AwAB
1gHVAbUBCQG0EgABtgGxAZQCjgFRAsMBmQFRAUQBSgF0AXMCAAHvBPMBbwGaAcMBvQFuASMBRAF0AW4B
8QQAAdUBtAHVAbUDAAHcAdUBtQEJAbUTAAG8AZMBdAGZAaABwwG9AcMBeQFuAaABdAMAArwB8QG8AXQD
mgG9AXQBTAGaAUQFAAHwAdUBtAHVAe4CAAHxAQkB1QG1AQkVAAGZAaACmgGgAZoBwwGaAaABdAYAAbwB
mgGUBZoBegFvBgABtQHVAbUB1QMAAd0BCQHwAd0BtRUAAfEBmQF6AaABmgGfAZoB5QGZAZIHAAGZAXUB
lAGaAXUBmgGUAXUBmQYAAdwBtAHcAbQFAAEJAdUXAAKZAXoB5QGaAXoBmgFzCAABBwF1AZQBdQGUAnUB
bgYAAfAB3AG0AQkBtQQAAd0B1hcAAUoBdAF5AZkBeQF6AXkBdAgAAW0BbwF1AeMBdAF1AeMBRQcAAQkB
1QG1AdwBtQIAAdUBGQHwFwABkwGZAZoCmQKaAZkIAAGaAb0BmgK8AZoBvQGZAfEHAAHcAbQCCQHcAQkB
GQEJOAABvAIAAQkC3AEJEgABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/5cACw==
</value>
</data>
<data name="saveFileDialog1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="saveFileDialog1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="saveFileDialog1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>381, 17</value>
</data>
<data name="imlAttachment.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imlAttachment.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imlAttachment.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>525, 17</value>
</data>
<data name="conAttachment.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="conAttachment.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>657, 17</value>
</data>
<data name="conAttachment.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem9.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem9.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem10.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem10.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem11.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem11.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem12.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem12.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem13.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem13.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem14.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem14.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem15.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem15.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem17.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem17.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem16.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem16.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="groupBox2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="groupBox2.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="groupBox2.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="groupBox2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="groupBox2.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="groupBox2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="cbHtml.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="cbHtml.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="cbHtml.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtTo.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtTo.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtTo.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtSubject.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtSubject.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtSubject.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="ltAttachment.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="ltAttachment.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="ltAttachment.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="splitter1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="splitter1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="splitter1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="panel1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="panel1.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="panel1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="panel1.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="panel1.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="panel1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtMessage.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="txtMessage.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="txtMessage.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.Name">
<value>SendMailForm</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,824 @@
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing .Printing ;
using System.Reflection ;
using System.Runtime .InteropServices ;
using System.Diagnostics ;
using System.IO ;
using MailManageSystem.RegisterAccount ;
using MailSend;
namespace MailManageSystem
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class SystemManage : System.Windows.Forms.Form
{
private System.Windows.Forms.MainMenu mainMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.Windows.Forms.MenuItem menuItem4;
private System.Windows.Forms.MenuItem menuItem5;
public System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.Splitter splitter1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Splitter splitter2;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem6;
private System.Windows.Forms.ImageList imageList1;
private System.Windows.Forms.MenuItem menuItem7;
private System.Windows.Forms.MenuItem menuItem8;
private System.Windows.Forms.MenuItem menuItem9;
private System.Windows.Forms.MenuItem menuItem10;
private System.Windows.Forms.MenuItem menuItem11;
private System.Windows.Forms.MenuItem menuItem12;
private System.Windows.Forms.MenuItem menuItem13;
private System.Windows.Forms.MenuItem menuItem14;
private System.Windows.Forms.MenuItem menuItem15;
private System.Windows.Forms.MenuItem menuItem16;
private System.Windows.Forms.MenuItem menuItem17;
private System.Windows.Forms.MenuItem menuItem18;
private System.Windows.Forms.MenuItem menuItem19;
private System.ComponentModel.IContainer components;
private System.Windows.Forms.Timer timer1;
//用于调用发送邮件类的用户名
public static string UserName;
//用于调用发送邮件类的密码
public static string PassWd;
//用于调用发送邮件类发送邮件人地址
public static string MailAddress;
//新建的帐户名
public static string AccountName;
//用于调用发送邮件类的SMTP服务器名
public static string SmtpName;
public static int SmtpPort=21;
public static int letterNumber;
//确定是否启动计时器的标志位
internal static bool flag=false;
public string htmlbody;
private System.Windows.Forms.ToolBarButton toolBarRecive;
private System.Windows.Forms.ToolBarButton toolBarSend;
private System.Windows.Forms.ToolBarButton toolBarWrite;
private System.Windows.Forms.ToolBar toolBar1;
private System.Windows.Forms.PrintDialog printDialog1;
private System.Windows.Forms.ToolBarButton toolBarButton1;
private System.Windows.Forms.StatusBar statusBar1;
private System.Windows.Forms.StatusBarPanel sbWeclome;
private System.Windows.Forms.StatusBarPanel sbTime;
private System.Windows.Forms.StatusBarPanel sbCpmputerName;
private System.Windows.Forms.StatusBarPanel sbIp;
private System.Windows.Forms.MenuItem menuItem20;
private System.Windows.Forms.MenuItem menuItem21;
private System.Windows.Forms.MenuItem menuItem22;
private System.Windows.Forms.MenuItem menuItem23;
private System.Windows.Forms.MenuItem menuItem24;
private System.Windows.Forms.PrintPreviewDialog printPreviewDialog1;
private System.Drawing.Printing.PrintDocument printDocument1;
private System.Windows.Forms.MenuItem menuItem25;//语言编码
//MailSend命名空间下的附加类
AddExtra extra;
private System.Windows.Forms.MenuItem menuItem26;
private System.Windows.Forms.MenuItem menuItem27;
private System.Windows.Forms.ImageList imageAccount;
private System.Windows.Forms.ListView ltReceive;
//API函数的声明
[DllImport ("Shell32.dll")]
public static extern int ShellAbout(IntPtr hWnd ,string szApp,string szOtherStuff,IntPtr hIcon);
public SystemManage()
{
//
// Windows 窗体设计器支持所必需的
//
Application.EnableVisualStyles ();
Application.DoEvents ();
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(SystemManage));
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem7 = new System.Windows.Forms.MenuItem();
this.menuItem8 = new System.Windows.Forms.MenuItem();
this.menuItem9 = new System.Windows.Forms.MenuItem();
this.menuItem10 = new System.Windows.Forms.MenuItem();
this.menuItem11 = new System.Windows.Forms.MenuItem();
this.menuItem12 = new System.Windows.Forms.MenuItem();
this.menuItem13 = new System.Windows.Forms.MenuItem();
this.menuItem14 = new System.Windows.Forms.MenuItem();
this.menuItem15 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem20 = new System.Windows.Forms.MenuItem();
this.menuItem21 = new System.Windows.Forms.MenuItem();
this.menuItem22 = new System.Windows.Forms.MenuItem();
this.menuItem23 = new System.Windows.Forms.MenuItem();
this.menuItem24 = new System.Windows.Forms.MenuItem();
this.menuItem25 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
this.menuItem4 = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem();
this.menuItem26 = new System.Windows.Forms.MenuItem();
this.menuItem27 = new System.Windows.Forms.MenuItem();
this.menuItem16 = new System.Windows.Forms.MenuItem();
this.menuItem17 = new System.Windows.Forms.MenuItem();
this.menuItem18 = new System.Windows.Forms.MenuItem();
this.menuItem19 = new System.Windows.Forms.MenuItem();
this.treeView1 = new System.Windows.Forms.TreeView();
this.splitter1 = new System.Windows.Forms.Splitter();
this.panel1 = new System.Windows.Forms.Panel();
this.statusBar1 = new System.Windows.Forms.StatusBar();
this.sbWeclome = new System.Windows.Forms.StatusBarPanel();
this.sbTime = new System.Windows.Forms.StatusBarPanel();
this.sbCpmputerName = new System.Windows.Forms.StatusBarPanel();
this.sbIp = new System.Windows.Forms.StatusBarPanel();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.splitter2 = new System.Windows.Forms.Splitter();
this.ltReceive = new System.Windows.Forms.ListView();
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem6 = new System.Windows.Forms.MenuItem();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.toolBarRecive = new System.Windows.Forms.ToolBarButton();
this.toolBarSend = new System.Windows.Forms.ToolBarButton();
this.toolBarWrite = new System.Windows.Forms.ToolBarButton();
this.toolBar1 = new System.Windows.Forms.ToolBar();
this.toolBarButton1 = new System.Windows.Forms.ToolBarButton();
this.printDialog1 = new System.Windows.Forms.PrintDialog();
this.printPreviewDialog1 = new System.Windows.Forms.PrintPreviewDialog();
this.printDocument1 = new System.Drawing.Printing.PrintDocument();
this.imageAccount = new System.Windows.Forms.ImageList(this.components);
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.sbWeclome)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.sbTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.sbCpmputerName)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.sbIp)).BeginInit();
this.SuspendLayout();
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1,
this.menuItem2,
this.menuItem3,
this.menuItem16});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem7,
this.menuItem8,
this.menuItem9,
this.menuItem10,
this.menuItem11,
this.menuItem12,
this.menuItem13,
this.menuItem14,
this.menuItem15});
this.menuItem1.Text = "文件(F)";
//
// menuItem7
//
this.menuItem7.Index = 0;
this.menuItem7.Text = "收取当前邮箱邮件";
//
// menuItem8
//
this.menuItem8.Index = 1;
this.menuItem8.Text = "收取所有邮箱邮件";
//
// menuItem9
//
this.menuItem9.Index = 2;
this.menuItem9.Text = "发送所有待发邮件";
//
// menuItem10
//
this.menuItem10.Index = 3;
this.menuItem10.Text = "-";
//
// menuItem11
//
this.menuItem11.Index = 4;
this.menuItem11.Text = "打印机设置";
this.menuItem11.Click += new System.EventHandler(this.menuItem11_Click);
//
// menuItem12
//
this.menuItem12.Index = 5;
this.menuItem12.Text = "打印预览";
this.menuItem12.Click += new System.EventHandler(this.menuItem12_Click);
//
// menuItem13
//
this.menuItem13.Index = 6;
this.menuItem13.Text = "打印";
//
// menuItem14
//
this.menuItem14.Index = 7;
this.menuItem14.Text = "-";
//
// menuItem15
//
this.menuItem15.Index = 8;
this.menuItem15.Text = "退出";
this.menuItem15.Click += new System.EventHandler(this.menuItem15_Click);
//
// menuItem2
//
this.menuItem2.Index = 1;
this.menuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem20});
this.menuItem2.Text = "查看(V)";
//
// menuItem20
//
this.menuItem20.Index = 0;
this.menuItem20.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem21,
this.menuItem22,
this.menuItem23,
this.menuItem24,
this.menuItem25});
this.menuItem20.Text = "邮件文字大小";
//
// menuItem21
//
this.menuItem21.Index = 0;
this.menuItem21.Text = "最大";
//
// menuItem22
//
this.menuItem22.Index = 1;
this.menuItem22.Text = "较大";
//
// menuItem23
//
this.menuItem23.Index = 2;
this.menuItem23.Text = "中等";
//
// menuItem24
//
this.menuItem24.Index = 3;
this.menuItem24.Text = "较小";
//
// menuItem25
//
this.menuItem25.Index = 4;
this.menuItem25.Text = "最小";
//
// menuItem3
//
this.menuItem3.Index = 2;
this.menuItem3.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem4,
this.menuItem5,
this.menuItem26,
this.menuItem27});
this.menuItem3.Text = "邮箱(B)";
//
// menuItem4
//
this.menuItem4.Index = 0;
this.menuItem4.Text = "修改邮箱属性";
//
// menuItem5
//
this.menuItem5.Index = 1;
this.menuItem5.Text = "新建邮箱帐户";
this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
//
// menuItem26
//
this.menuItem26.Index = 2;
this.menuItem26.Text = "-";
//
// menuItem27
//
this.menuItem27.Index = 3;
this.menuItem27.Text = "删除邮箱";
this.menuItem27.Click += new System.EventHandler(this.menuItem27_Click);
//
// menuItem16
//
this.menuItem16.Index = 3;
this.menuItem16.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem17,
this.menuItem18,
this.menuItem19});
this.menuItem16.Text = "帮助(H)";
//
// menuItem17
//
this.menuItem17.Index = 0;
this.menuItem17.Text = "帮助主题";
//
// menuItem18
//
this.menuItem18.Index = 1;
this.menuItem18.Text = "-";
//
// menuItem19
//
this.menuItem19.Index = 2;
this.menuItem19.Text = "关于";
this.menuItem19.Click += new System.EventHandler(this.menuItem19_Click);
//
// treeView1
//
this.treeView1.Dock = System.Windows.Forms.DockStyle.Left;
this.treeView1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.treeView1.ImageList = this.imageAccount;
this.treeView1.Location = new System.Drawing.Point(0, 43);
this.treeView1.Name = "treeView1";
this.treeView1.Size = new System.Drawing.Size(121, 462);
this.treeView1.TabIndex = 1;
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
//
// splitter1
//
this.splitter1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(255)));
this.splitter1.Location = new System.Drawing.Point(121, 43);
this.splitter1.Name = "splitter1";
this.splitter1.Size = new System.Drawing.Size(5, 462);
this.splitter1.TabIndex = 2;
this.splitter1.TabStop = false;
//
// panel1
//
this.panel1.Controls.Add(this.statusBar1);
this.panel1.Controls.Add(this.richTextBox1);
this.panel1.Controls.Add(this.splitter2);
this.panel1.Controls.Add(this.ltReceive);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(126, 43);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(762, 462);
this.panel1.TabIndex = 3;
//
// statusBar1
//
this.statusBar1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.statusBar1.Location = new System.Drawing.Point(0, 430);
this.statusBar1.Name = "statusBar1";
this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
this.sbWeclome,
this.sbTime,
this.sbCpmputerName,
this.sbIp});
this.statusBar1.ShowPanels = true;
this.statusBar1.Size = new System.Drawing.Size(762, 32);
this.statusBar1.TabIndex = 3;
//
// sbWeclome
//
this.sbWeclome.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
this.sbWeclome.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
this.sbWeclome.Text = "欢迎使用ArgentSwan邮件管理系统";
this.sbWeclome.Width = 186;
//
// sbTime
//
this.sbTime.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
this.sbTime.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
this.sbTime.Width = 186;
//
// sbCpmputerName
//
this.sbCpmputerName.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
this.sbCpmputerName.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
this.sbCpmputerName.Width = 186;
//
// sbIp
//
this.sbIp.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
this.sbIp.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
this.sbIp.Width = 186;
//
// richTextBox1
//
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBox1.Location = new System.Drawing.Point(0, 141);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(762, 321);
this.richTextBox1.TabIndex = 2;
this.richTextBox1.Text = "";
//
// splitter2
//
this.splitter2.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(255)));
this.splitter2.Dock = System.Windows.Forms.DockStyle.Top;
this.splitter2.Location = new System.Drawing.Point(0, 136);
this.splitter2.Name = "splitter2";
this.splitter2.Size = new System.Drawing.Size(762, 5);
this.splitter2.TabIndex = 1;
this.splitter2.TabStop = false;
//
// ltReceive
//
this.ltReceive.Dock = System.Windows.Forms.DockStyle.Top;
this.ltReceive.Location = new System.Drawing.Point(0, 0);
this.ltReceive.MultiSelect = false;
this.ltReceive.Name = "ltReceive";
this.ltReceive.Size = new System.Drawing.Size(762, 136);
this.ltReceive.TabIndex = 0;
this.ltReceive.View = System.Windows.Forms.View.Details;
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem6});
//
// menuItem6
//
this.menuItem6.Index = 0;
this.menuItem6.Text = "默认连接";
//
// imageList1
//
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// toolBarRecive
//
this.toolBarRecive.DropDownMenu = this.contextMenu1;
this.toolBarRecive.ImageIndex = 0;
this.toolBarRecive.Style = System.Windows.Forms.ToolBarButtonStyle.DropDownButton;
this.toolBarRecive.Text = "收取";
//
// toolBarSend
//
this.toolBarSend.ImageIndex = 1;
this.toolBarSend.Text = "发送";
//
// toolBarWrite
//
this.toolBarWrite.ImageIndex = 2;
this.toolBarWrite.Text = "写邮件";
//
// toolBar1
//
this.toolBar1.Appearance = System.Windows.Forms.ToolBarAppearance.Flat;
this.toolBar1.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] {
this.toolBarRecive,
this.toolBarSend,
this.toolBarButton1,
this.toolBarWrite});
this.toolBar1.ButtonSize = new System.Drawing.Size(70, 37);
this.toolBar1.Divider = false;
this.toolBar1.DropDownArrows = true;
this.toolBar1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.toolBar1.ImageList = this.imageList1;
this.toolBar1.Location = new System.Drawing.Point(0, 0);
this.toolBar1.Name = "toolBar1";
this.toolBar1.ShowToolTips = true;
this.toolBar1.Size = new System.Drawing.Size(888, 43);
this.toolBar1.TabIndex = 0;
this.toolBar1.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar1_ButtonClick);
//
// toolBarButton1
//
this.toolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.Separator;
//
// printPreviewDialog1
//
this.printPreviewDialog1.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.printPreviewDialog1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.printPreviewDialog1.ClientSize = new System.Drawing.Size(400, 300);
this.printPreviewDialog1.Enabled = true;
this.printPreviewDialog1.Icon = ((System.Drawing.Icon)(resources.GetObject("printPreviewDialog1.Icon")));
this.printPreviewDialog1.Location = new System.Drawing.Point(44, 58);
this.printPreviewDialog1.MinimumSize = new System.Drawing.Size(375, 250);
this.printPreviewDialog1.Name = "printPreviewDialog1";
this.printPreviewDialog1.TransparencyKey = System.Drawing.Color.Empty;
this.printPreviewDialog1.Visible = false;
//
// imageAccount
//
this.imageAccount.ImageSize = new System.Drawing.Size(16, 16);
this.imageAccount.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageAccount.ImageStream")));
this.imageAccount.TransparentColor = System.Drawing.Color.Transparent;
//
// SystemManage
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(888, 505);
this.Controls.Add(this.panel1);
this.Controls.Add(this.splitter1);
this.Controls.Add(this.treeView1);
this.Controls.Add(this.toolBar1);
this.Menu = this.mainMenu1;
this.Name = "SystemManage";
this.Text = "邮件管理系统";
this.Load += new System.EventHandler(this.Form1_Load);
this.panel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.sbWeclome)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.sbTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.sbCpmputerName)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.sbIp)).EndInit();
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new SystemManage());
}
PrintDocument print=new PrintDocument ();
private void menuItem11_Click(object sender, System.EventArgs e)
{
this.printDialog1 .Document =print;
if(this.printDialog1 .ShowDialog ()==DialogResult.OK )
{
print.Print ();
}
}
private void printDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawString(this.richTextBox1 .Text ,
new Font("Arial", 80, FontStyle.Bold), Brushes.Black, 150, 125);
}
private void menuItem12_Click(object sender, System.EventArgs e)
{
try
{
this.printDocument1.PrintPage += new
System.Drawing.Printing.PrintPageEventHandler
(this.printDocument1_PrintPage);
this.printPreviewDialog1 .Document =this.printDocument1 ;
this.printPreviewDialog1 .ShowDialog ();
}
catch(Exception ex)
{
// MessageBox.Show ("请确定你已经安装了打印机");
MessageBox.Show (ex.ToString ());
}
}
//退出应用程序
private void menuItem15_Click(object sender, System.EventArgs e)
{
Application.Exit ();
}
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
switch(toolBar1.Buttons .IndexOf (e.Button ))
{
case 0:
break;
case 1:
break;
default:
if(AccountName==null)
{
MessageBox.Show ("请先注册帐号!");
return;
}
SendMailForm send=new SendMailForm ();
send.Show ();
break;
}
}
private void menuItem5_Click(object sender, System.EventArgs e)
{
try
{
NewAccount newaccount=new NewAccount ();
newaccount.Show ();
}
catch(Exception ee)
{
MessageBox.Show (ee.ToString ());
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
extra=new AddExtra();
this.sbCpmputerName.Text ="主机名:"+extra.GetName ();
this.sbTime .Text =extra.GetTime ();
this.sbIp .Text ="IP地址:";
string []IpAddress=extra.GetIP ();
for(int i=0;i<IpAddress.Length/2;i++)
{
this.sbIp .Text+=IpAddress[i];
}
LoadAccount();
}
//再加载窗口的同时加载已经注册的帐户
public void LoadAccount()
{
try
{
AccountOperate acOperate=new AccountOperate();
ArrayList Array=acOperate.ReadFromDataBase ("select AccountName from Users","AccountName");
for( int i=0;i<Array.Count ;i++)
{
TreeNode Nodes=new TreeNode (Array[i].ToString (),0,0);
treeView1 .Nodes .Add (Nodes);
TreeNode SubNode1=new TreeNode ("收信箱",1,1);
Nodes.Nodes .Add (SubNode1);
TreeNode SubNode2=new TreeNode ("发件箱",2,2);
Nodes.Nodes .Add (SubNode2);
TreeNode SubNode3=new TreeNode ("已发送邮件箱",3,3);
Nodes.Nodes .Add (SubNode3);
TreeNode SubNode4=new TreeNode ("垃圾邮件箱",4,4);
Nodes.Nodes .Add (SubNode4);
TreeNode SubNode5=new TreeNode ("废件箱",5,5);
Nodes.Nodes .Add (SubNode5);
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
this.ltReceive.Columns .Add("作者",100,HorizontalAlignment.Center);
this.ltReceive.Columns .Add ("主题",150,HorizontalAlignment.Center);
this.ltReceive.Columns .Add ("日期",200,HorizontalAlignment.Center);
this.ltReceive.Columns .Add ("大小",120,HorizontalAlignment.Center);
}
//在新建一个帐户的同时将它加载到TreeView控件中
public void addNewAccount()
{
try
{
TreeNode Nodes=new TreeNode (AccountName);
treeView1 .Nodes .Add (Nodes);
TreeNode SubNode1=new TreeNode ("收信箱",1,1);
Nodes.Nodes .Add (SubNode1);
TreeNode SubNode2=new TreeNode ("发件箱",2,2);
Nodes.Nodes .Add (SubNode2);
TreeNode SubNode3=new TreeNode ("已发送邮件箱",3,3);
Nodes.Nodes .Add (SubNode3);
TreeNode SubNode4=new TreeNode ("垃圾邮件箱",4,4);
Nodes.Nodes .Add (SubNode4);
TreeNode SubNode5=new TreeNode ("废件箱",5,5);
Nodes.Nodes .Add (SubNode5);
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
private void menuItem19_Click(object sender, System.EventArgs e)
{
//调用关于窗口
Assembly ass=Assembly.GetExecutingAssembly();
FileVersionInfo myVersion=FileVersionInfo.GetVersionInfo(ass.Location );
ShellAbout(this.Handle ,"邮件收发系统#","版本"+myVersion.FileMajorPart +"."+myVersion.FileMinorPart+"." +myVersion.CompanyName ,this.Icon .Handle );
}
private void timer1_Tick(object sender, System.EventArgs e)
{
//新建帐号的时候
if(flag)
{
addNewAccount();
}
flag=false;
}
//在选中一个帐户的时候,所有的相关信息跟着改变(主要是发送邮件的参数)
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
//帐户操作的有关类
AccountOperate acOperate=new AccountOperate();
try
{
//判断是否是根节点
if(e.Node .Parent==null)
{
AccountName =e.Node.Text ;
}
else if(e.Node .Parent !=null)
{
AccountName=e.Node .Parent .Text ;
}
string []accountInfo=acOperate.AccountFileInfo("Select userName,PassW, MailAddress,Smtp,Port from users where AccountName='"+AccountName +"'");
UserName=accountInfo[0];
PassWd=accountInfo[1];
MailAddress=accountInfo[2];
SmtpName=accountInfo[3];
SmtpPort=int.Parse (accountInfo[4]);
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
//删除选定帐户的操作
private void menuItem27_Click(object sender, System.EventArgs e)
{
try
{
AccountOperate acOperate=new AccountOperate();
acOperate.AddDelAccount("delete * from users where AccountName='"+AccountName+"'");
if(this.treeView1.SelectedNode !=null)
{
if(MessageBox.Show ("你确定要删除吗?","请确认",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
{
this.treeView1.Nodes .Remove(this.treeView1 .SelectedNode );
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}

View File

@ -0,0 +1,641 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="mainMenu1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="mainMenu1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</data>
<data name="mainMenu1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem7.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem7.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem8.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem8.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem9.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem9.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem10.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem10.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem11.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem11.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem12.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem12.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem13.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem13.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem14.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem14.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem15.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem15.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem20.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem20.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem21.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem21.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem22.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem22.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem23.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem23.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem24.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem24.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem25.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem25.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem5.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem26.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem26.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem27.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem27.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem16.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem16.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem17.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem17.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem18.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem18.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem19.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem19.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="treeView1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Public</value>
</data>
<data name="treeView1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="treeView1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="splitter1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="splitter1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="splitter1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="panel1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="panel1.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="panel1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="panel1.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="panel1.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="panel1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="statusBar1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="statusBar1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="statusBar1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbWeclome.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbWeclome.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbTime.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbTime.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbCpmputerName.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbCpmputerName.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbIp.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="sbIp.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="richTextBox1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="richTextBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="richTextBox1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="splitter2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="splitter2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="splitter2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="ltReceive.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="ltReceive.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="ltReceive.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="contextMenu1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="contextMenu1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>124, 17</value>
</data>
<data name="contextMenu1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem6.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem6.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imageList1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imageList1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imageList1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>213, 58</value>
</data>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw
MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT
eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA
AABWCgAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQC
AAEoAwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB
3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IB
AAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8B
MwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYC
AAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMC
AAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQAB
ZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8B
AAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQAB
MwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQAB
MwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQAB
MwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMB
mQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQAB
ZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYB
zAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMB
mQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgAB
mQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwB
AAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB
/wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQAB
mQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYC
AAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYB
AAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8C
AAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQAB
mQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMB
AAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB
/wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC
/wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC
/wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gB
AAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wYAAosBZgH4Ae4K
AAEHAW4BZwFEAfgKAAGuARkBuwG1Ae4cAAGuAYsBrgFmAYsBbAGSCAABvAFuAmcBDAFEAfgBBwgAAZED
GQEJArUBvBgAAa4BiwG7ARkDuwFsAesBBwUAAe0BbgFnAbYBtwGNAbcBbgFEAW0GAAHvAQkFGQIJAbUB
7xUAAZEBiwG7AwkBuwK0AYsBbAGSAwAB7wGNAWcBjgO3AY4CsQFnAesBBwQAAa4GGQHdAgkBuwK1AQcR
AAH3AYsBkQMJAbQBrgOLAWwBFQHsAgAB7wFnAY0DtwGOAW4DjgFvAUQB9wMAAZEEGQLxARkDCQG7ArUQ
AAHuAYsBrgIJAbUBbAEUAxUBFAETAmwC7gFnAWgDtwGOAUQDaAJvAWgBEwIAAQcB8AHzAxkCWQEHArUB
CQG7ArUQAAHvAYsC3AG0AYsB7AO1AQkBtQESAWYBbAL3AWgCtwGOAWgBbgEQAQ4BRAFnAUQBDgJEAgAB
rgEaAVkBmgEZAfIBWQGZARkBCQG7AbUBkQK1EAAB7wEJAdwBugJsBbUBrgEOAWwBrgEHAe8CtwGOAkQB
mQEcAUoDDgFLAWcBkwEAAQcBrgH0AXoBWQEaAfMBegHyARkB8QHwAQkCuwG0EAABuwEJAtwBtAGLAbQC
tQEHAQkB7AEVAQ4B7QEAAbYBlAKxAY4BcwLDARoBcwFEAUoBeQEcAgABrgEJARkB8wGZAfMDGQF6AlkB
3QG7AbUB7xEAAbwB7gEJAbsBugO1AQcB3QEZAfcBEwEOARIBAAG8Ae4BkwF0AqADwwEcAXQBwwFLAgAB
BwHuAfMBGwH0BBkBmgGZAfABkQFsAbQWAAG8AbsDtQEJAd0B9AHuAeoBDgMAAbwBmQGaB6ABcwG8AQAB
8AGaAlkBeQEHAbsBCQHxAfMCCQG0AYsBtRcAAbwDtQEJAd0BGQH0AfEB6gUAAbwBmQaaAXkBBwEAAbwB
eQF6AXkDGgEbAlkBGgEHAbUBtAHvGAAB9wHtAe8BCQLdAfMB8gH3BwABHAF5AXoCmgF6AZoBcwEAAbwB
8AEaAfABGwJZARsBmQJZARoeAAEHAQkB3QHxAfcHAAG8AUoBdAV6AUsFAAEaAeUBmgEbAfACGgG8HwAB
BwHdAfcIAAEHCJkFAAEbAVgBGgG8JAAB7wG8FwACvBkAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEB
AAEBBQABgBcAA/+XAAs=
</value>
</data>
<data name="timer1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="timer1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>326, 58</value>
</data>
<data name="timer1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarRecive.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarRecive.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarSend.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarSend.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarWrite.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarWrite.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBar1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="toolBar1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBar1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarButton1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="toolBarButton1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="printDialog1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="printDialog1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="printDialog1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>415, 58</value>
</data>
<data name="printPreviewDialog1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="printPreviewDialog1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>44, 58</value>
</data>
<data name="printPreviewDialog1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="printPreviewDialog1.Icon" type="System.Drawing.Icon, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIiI
iIiIiIiIiIiIiIAACAAAAAjMzMzMzMzIAAiAAAgAAAAIzubm5ubmyAAIgAAIAAAACM5ubm5ubsgACIAA
CAAAAAjO5ubm5ubIAAiAAAgAAAAIzm5ubm5uyAAIgAAIAAAACM7m5ubm5sgACIiIiIiIiIjObm5ubm7I
AAiBEREREREYzu7u7u7uyAAIgdlZWVlZGMzMzMzMzMgACIHVlZWVlRiIiIiIiIiIiIiB2VlZWVkYMzMz
MzMzMzM4gdWVlZWVGD+4uLi4uLi4OIHZWVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZ
GD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHd
3d3d3Rg/u4uLi4uLiziBEREREREYP7i4uLi4uLg4iIiIiIiIiD+7i4uLi4uLOIAAAAAAAAg/uLi4uLi4
uDiAAAAAAAAIP7uLi4uLi4s4gAAAAAAACD+4uLi4uLi4OIAAAAAAAAg/u7u7u7u7uziAAAAAAAAIP///
//////84gAAAAAAACDMzMzMzMzMzOIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAA////////
//8AAAAAe/gADnv4AA57+AAOe/gADnv4AA57+AAOAAAADgAAAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gAAH/4AAB/+AAAf/gAAH/4AAB/+AAAAAAAAP//
//8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAiIiIiIiI
iIiACACMzMzICIAIAIzmZsgIiIiIjO7uyAiBERGMzMzICIHZkYiIiIiIgdmRgzMzMziB2ZGD+7u7OIHd
0YP7u7s4gRERg/u7uziIiIiD+7u7OIAAAIP7u7s4gAAAg////ziAAACDMzMzOIiIiIiIiIiI//8AAAAA
AABsAgAAbAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAAAAAAA==
</value>
</data>
<data name="printDocument1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="printDocument1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>541, 58</value>
</data>
<data name="printDocument1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imageAccount.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imageAccount.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="imageAccount.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>250, 17</value>
</data>
<data name="imageAccount.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw
MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT
eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA
AACeDwAAAk1TRnQBSQFMAgEBBgEAAQoBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQC
AAEoAwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB
3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IB
AAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8B
MwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYC
AAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMC
AAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQAB
ZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8B
AAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQAB
MwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQAB
MwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQAB
MwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMB
mQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQAB
ZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYB
zAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMB
mQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgAB
mQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwB
AAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB
/wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQAB
mQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYC
AAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYB
AAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8C
AAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQAB
mQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMB
AAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB
/wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC
/wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC
/wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gB
AAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ABQAQ
/zAABP8BvAHvAfcBkgFzASsDJAGZAv8FAAG8AZIB7wHrARMB6gFtAbwB9CIAA/8BBwHtAewBbQErASQB
MQJTAisBHAH/AwAB8wHtAewBEwH3AeoBEwLqAW0B7SIAA/8BkgFtAesB6gEkAisDUwErASQBmQMAAfAB
bQH4AW0B7AHrARMB6gITAW0B8CEAA/8B7AFtAewBSwExATICKwNTAisDAAEHAW0B7AH4Ae8B+AESAesB
FAHqARQBByEAA/8B+AFtAZIBJAEyATgBMgIrA1MBKwMAAe8BbQHxAe0B8wHsARIB7AEUAW0BFAHvIQAC
/wG8AW0B6wHvASsCMgE4ATICKwJTASQCAAHyAfcB+AHxAe8B8wHtARIB7AEUAeoBFAHtIQAC/wHvAesB
7AG8ASsBMQEyAzgCKwExASQCAAHxAW0B7QHxAbwB/wH3ARIB7AHqAewBFAH4IQAC/wH3AfgB7QHwAXMB
KwEyBDgBKwIkAgAB7wH4AfcB9AHxAf8B7wESAhQB7AEUAW0hAAL/AZIB7AHvAfAB7QFzASsBMQIyATEC
JAH/AgABkgLsAQcBbQHrAQcCEwEUARIBFAHqIQAC/wHsAfgC7wHsAfcBcwFKAioBJAFKAv8BAALvAfcB
kgLtAvgB7QHrAeoBQwERAkMgAAH/AbwC7AEHAe8B7QHsAuoBFAEVARABQwH3Af8BAAHvAQcEeQGZAXkB
HAF5AVIBSwFSAXkBQyAAAf8BkgHvAbwE/wHyAQcB+AFtARIBFQEUAf8CAAFSBHkBSwN5AVIBSwFSAnkg
AAH/Ae8BkgHvAQcB8gH/AfQB8AHtAuwB6wFtAewB/wIAAVICGgJ5AVIBvAEaAXkCUgJLAVIgAAP/AQcB
7wGSAe0B7wGSAvgB7AGSAbwC/wMAAxoCeQEAAhoBeQFSAXkBSyEABv8B7wH/AQcBbQb/BAADGgMAAxoB
UioAARsBmgFYATEBSwgAAQcBiwHsDQABBwFoAewIAAX/AQcBSwHsCP8FAAHzARoBmgF6AVkCMQEqAfMH
AAGLAWYBZQFsAQcLAAFoAUQBPgFnAQcGAAX/AUsBSgEVARIBBwb/AgAB8wEaBJoBegFZATgBMQEqARwG
AAOLAWUCbAHsCQADaAE+AmcB7AUABP8CSwFRAUQCSgHtBf8B8wIaBMMCegFZATgBMgEqAUsFAAGuAYsB
ugHhAboBtAHbAYsBbQcAAW4BaAGwAdgBsAGOAdIBaAFtBAAD/wFuAUsBeQEaAXkBdAGZAUsB6gT/AZoD
wwGaA1ICWQI4ASoBSwHzAwABrgGLAbQC4QHcA9sBswFmAZIEAAFuAWgBjgLYAbcD0gGIAUQBkgIAAv8B
cwFKAXQDGgEcApkBUgFKAZIC/wGaAqABmgFSA3oBWQF6AaABGgFLASoBHAIAAe0BZgGzA9wC2wLVAdsB
tAGLAW0CAAHtAUQBiAO3AtICsQHSAY4BaAFtAQAB/wEcAUoBUgMaAvEBBwIcAXQBSwHrAf8EegLlAqAC
mQGSAewBeQEqAVECAAKLAtwB2wGtA4sCZgGLAdUBiwH4AQACaAO3CLEBaAH4Af8BSgFRAZkBGgHuA/EC
8AEHAZIBcwFLAfgDegKgAZkBHAHvA+0B7AF0ASsBSwHzAe8BiwHbAdwBugGLARIB6gKuAbUBrgKtAYsB
bAHvAWgB0gG3AbABaQGIAUQBDwFoAo4BZwJoAWcB7wFLAZkBGgEcAfMB8gLxAfABvAIHAe8BkgHqAlkB
WAFSAe8B9wQHAe8B9wEcAVIBKgGZAZEBugHcAboBiwFmAc8CtQEJAbUBEQGLAa0BswG0AY0BsAG3AbAB
aAE+AUsBdAFKAQ4CRAEVAWgBiAGOAXMBeQGZAe0B8APyAfEB8AG8AQcC7wGSAXMBegFYASsBSwHvAfMB
8gHxAfIB8QHyAfABBwFYASsBmQG0AtsBtAGLAWYBrgK1AQkBtQFDAQ4BiwG7AQABjgLSAY4BaAFEAXQB
wwGgAXMCIgFSAW8BtgEAAXQBmQHsAfgB8wPyAvEBvAIHAe8BkgH/AQABegFSATEBbgH0A/8B9AEHAW8B
RQFMATEBdAIJAtsB1QG0Ac8DtQHdAQcBEwEOAW0BAAG9AbcC0gGxAXQB5QOgAXkBdAGgAXMCAAEaARwC
9wLzAvIB8QHwAbwBBwLvAfcB/wIAARoBUgFLAZMB/wEaAW8BRgHpASAB6QFMATEBdAMAAfABCQHbAbQD
tQHdARkB8QFtAQ8EAAHwAbcBkwF6AeUEoAHlAXQCAAH/AewC7wIHAfAD8QHwAQcBbQHqAbwB/wMAARoB
WAFuA28BRgFpAW4BiwGuAVgBUgYAAQkBrgHPAbUBCQHdAfQB8wGuBwABGgGaBXoBeQEcAQAB/wHsAQcF
7wOSAfcC7QL/BAABGgF0AW4BbwGNAYsCtAK6AXkBUgcAAfcBAAHvAQkB3QEZAgcJAAFLBXoBcwEAAf8B
vAEHBe8B9wGSARIBEwEHA/8FAAEaAe0BiwGzAroBuwGZAXoBWQFYCgAB7wEJAbUBBwkAAQcBUgV6AXQB
AAb/AbwBBwLvAuwE/wYAARoBugG7AZkBeQFZARoB9A0AAe8B9xMAEP8BQgFNAT4HAAE+AwABKAMAAUAD
AAEwAwABAQEAAQEFAAGAAQEWAAP/gwAC/wYAAfgBAwYAAeABAwYAAeABAQYAAeABAQYAAeABAQYAAcAB
AQYAAcABAQYAAcABAQYAAcABAQYAAYAHAAGABwABwAcAAcAHAAHgAYEGAAHxAcMEAAH/AQcB+AH/AfgB
/wIAAfgBAwH4AT8B+AE/AgABwAEDAfABHwHwAR8DAAEDAeABDwHgAQ8DAAEBAcABAwHAAQMDAAEBAYAB
AQGAAQEDAAEBAYABAAGAFgABAQEAAQECAAGAAgABAQEAAQMCAAHAAQAB4AEBAeABAwIAAeABAAH8AQEB
/AEBAgAB8AEAAf4BgQH/AQECAAH4AQAB/wHDAf4BAQIAAfwBAwH/AecC/wIACw==
</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.Name">
<value>SystemManage</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,99 @@
using System;
using System.Globalization ;
using System.Net ;
using System.IO ;
using System.Collections ;
namespace MailSend
{
/// <summary>
/// AddExtra 的摘要说明。
/// </summary>
public class AddExtra
{
public AddExtra()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private string []Attachment;
/// <summary>
/// 重载的构造函数,以便把相关的附件信息传入
/// </summary>
/// <param name="array"></param>
public AddExtra(ArrayList array)
{
Attachment=new string [array.Count ];
for(int i=0;i<array.Count ;i++)
{
Attachment[i]=array[i].ToString ();
}
}
/// <summary>
/// 获得当前时间
/// </summary>
/// <returns></returns>
public string GetTime()
{
string time=DateTime.Now .ToString ("F",DateTimeFormatInfo.InvariantInfo );
return time;
}
/// <summary>
/// 获得本机名
/// </summary>
/// <returns></returns>
public string GetName()
{
string cpuName=Dns.GetHostName ();
return cpuName;
}
/// <summary>
/// 获得本机IP地址
/// </summary>
/// <returns></returns>
public string[] GetIP()
{
IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
string []ipAddress=new string [addressList.Length ];
for(int i=0;i<ipAddress.Length ;i++)
{
ipAddress[i]=addressList[i].ToString ();
}
return ipAddress;
}
/// <summary>
/// 保存信件
/// </summary>
/// <param name="fileName">要保存为的文件名</param>
/// <param name="Text">要保存的信件内容</param>
public void SaveLetter(string fileName,string Text)
{
StreamWriter sw=new StreamWriter (fileName,true);
sw.WriteLine (Text);
if(Attachment.Length !=0)
{
sw.WriteLine("此封邮件的附件的路径如下:");
}
else
{
sw.Write ("此封邮件没有附件!");
}
for(int i=0;i<Attachment.Length ;i++)
{
sw.WriteLine(Attachment[i]);
}
sw.Flush ();
sw.Close ();
}
}
}

View File

@ -0,0 +1,58 @@
using System.Reflection;
using System.Runtime.CompilerServices;
//
// 有关程序集的常规信息是通过下列
// 属性集控制的。更改这些属性值可修改与程序集
// 关联的信息。
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//
// 程序集的版本信息由下列 4 个值组成:
//
// 主版本
// 次版本
// 内部版本号
// 修订号
//
// 您可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,方法是按
// 如下所示使用 '*':
[assembly: AssemblyVersion("1.0.*")]
//
// 要对程序集进行签名,必须指定要使用的密钥。有关程序集签名的更多信息,请参考
// Microsoft .NET Framework 文档。
//
// 使用下面的属性控制用于签名的密钥。
//
// 注意:
// (*) 如果未指定密钥,则程序集不会被签名。
// (*) KeyName 是指已经安装在计算机上的
// 加密服务提供程序(CSP)中的密钥。KeyFile 是指包含
// 密钥的文件。
// (*) 如果 KeyFile 和 KeyName 值都已指定,则
// 发生下列处理:
// (1) 如果在 CSP 中可以找到 KeyName则使用该密钥。
// (2) 如果 KeyName 不存在而 KeyFile 存在,则
// KeyFile 中的密钥安装到 CSP 中并且使用该密钥。
// (*) 要创建 KeyFile可以使用 sn.exe(强名称)实用工具。
// 在指定 KeyFile 时KeyFile 的位置应该相对于
// 项目输出目录,即
// %Project Directory%\obj\<configuration>。例如,如果 KeyFile 位于
// 该项目目录,应将 AssemblyKeyFile
// 属性指定为 [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
// (*) “延迟签名”是一个高级选项 - 有关它的更多信息,请参阅 Microsoft .NET Framework
// 文档。
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

View File

@ -0,0 +1,115 @@
<VisualStudioProject>
<CSHARP
ProjectType = "Local"
ProductVersion = "7.10.3077"
SchemaVersion = "2.0"
ProjectGuid = "{1ACAE300-785A-4819-89BD-18D2BB7400D3}"
>
<Build>
<Settings
ApplicationIcon = ""
AssemblyKeyContainerName = ""
AssemblyName = "MailSend"
AssemblyOriginatorKeyFile = ""
DefaultClientScript = "JScript"
DefaultHTMLPageLayout = "Grid"
DefaultTargetSchema = "IE50"
DelaySign = "false"
OutputType = "Library"
PreBuildEvent = ""
PostBuildEvent = ""
RootNamespace = "MailSend"
RunPostBuildEvent = "OnBuildSuccess"
StartupObject = ""
>
<Config
Name = "Debug"
AllowUnsafeBlocks = "false"
BaseAddress = "285212672"
CheckForOverflowUnderflow = "false"
ConfigurationOverrideFile = ""
DefineConstants = "DEBUG;TRACE"
DocumentationFile = ""
DebugSymbols = "true"
FileAlignment = "4096"
IncrementalBuild = "false"
NoStdLib = "false"
NoWarn = ""
Optimize = "false"
OutputPath = "bin\Debug\"
RegisterForComInterop = "false"
RemoveIntegerChecks = "false"
TreatWarningsAsErrors = "false"
WarningLevel = "4"
/>
<Config
Name = "Release"
AllowUnsafeBlocks = "false"
BaseAddress = "285212672"
CheckForOverflowUnderflow = "false"
ConfigurationOverrideFile = ""
DefineConstants = "TRACE"
DocumentationFile = ""
DebugSymbols = "false"
FileAlignment = "4096"
IncrementalBuild = "false"
NoStdLib = "false"
NoWarn = ""
Optimize = "true"
OutputPath = "bin\Release\"
RegisterForComInterop = "false"
RemoveIntegerChecks = "false"
TreatWarningsAsErrors = "false"
WarningLevel = "4"
/>
</Settings>
<References>
<Reference
Name = "System"
AssemblyName = "System"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
/>
<Reference
Name = "System.Data"
AssemblyName = "System.Data"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
/>
<Reference
Name = "System.XML"
AssemblyName = "System.Xml"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
/>
<Reference
Name = "System.Drawing"
AssemblyName = "System.Drawing"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
/>
<Reference
Name = "System.Windows.Forms"
AssemblyName = "System.Windows.Forms"
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
/>
</References>
</Build>
<Files>
<Include>
<File
RelPath = "AddExtra.cs"
SubType = "Code"
BuildAction = "Compile"
/>
<File
RelPath = "AssemblyInfo.cs"
SubType = "Code"
BuildAction = "Compile"
/>
<File
RelPath = "SendMail.cs"
SubType = "Code"
BuildAction = "Compile"
/>
</Include>
</Files>
</CSHARP>
</VisualStudioProject>

View File

@ -0,0 +1,48 @@
<VisualStudioProject>
<CSHARP LastOpenVersion = "7.10.3077" >
<Build>
<Settings ReferencePath = "" >
<Config
Name = "Debug"
EnableASPDebugging = "false"
EnableASPXDebugging = "false"
EnableUnmanagedDebugging = "false"
EnableSQLServerDebugging = "false"
RemoteDebugEnabled = "false"
RemoteDebugMachine = ""
StartAction = "Project"
StartArguments = ""
StartPage = ""
StartProgram = ""
StartURL = ""
StartWorkingDirectory = ""
StartWithIE = "false"
/>
<Config
Name = "Release"
EnableASPDebugging = "false"
EnableASPXDebugging = "false"
EnableUnmanagedDebugging = "false"
EnableSQLServerDebugging = "false"
RemoteDebugEnabled = "false"
RemoteDebugMachine = ""
StartAction = "Project"
StartArguments = ""
StartPage = ""
StartProgram = ""
StartURL = ""
StartWorkingDirectory = ""
StartWithIE = "true"
/>
</Settings>
</Build>
<OtherProjectSettings
CopyProjectDestinationFolder = ""
CopyProjectUncPath = ""
CopyProjectOption = "0"
ProjectView = "ProjectFiles"
ProjectTrust = "0"
/>
</CSHARP>
</VisualStudioProject>

View File

@ -0,0 +1,890 @@
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Runtime .InteropServices ;
using System.Windows.Forms ;
//正则表达式需要用到的命名空间(本程序中主要用于切割字符串)
using System.Text .RegularExpressions ;
namespace MailSend
{
public class SmtpMail
{
public SmtpMail()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//用来接收调用程序传来的附件路径
private string []FilePath;
// [DllImport("User32.dll")]
// public static extern int MessageBox(int h, string m, string c, int type);
//
/// <summary>
/// 重载的构造函数,以便把相关的附件信息传入
/// </summary>
/// <param name="array"></param>
public SmtpMail(ArrayList array)
{
//在重载构造函数的同时将FiilePath初始化
FilePath=new string [array.Count ];
Attachments = new System.Collections.ArrayList();
for(int i=0;i<array.Count ;i++)
{
FilePath[i]=array[i].ToString ();
}
if(FilePath!=null)
{
AddAttachment(FilePath);
}
}
private string enter="\r\n";
/// <summary>
/// 设定语言代码默认设定为GB2312如不需要可设置为""
/// </summary>
private string _charset="GB2312";
/// <summary>
/// 发件人地址
/// </summary>
private string _from="";
/// <summary>
/// 发件人姓名
/// </summary>
private string _fromName="";
/// <summary>
/// 回复邮件地址
/// </summary>
///public string ReplyTo="";
/// <summary>
/// 收件人列表
/// </summary>
private string Recipient;
/// <summary>
/// 邮件服务器域名
/// </summary>
private string mailserver="";
/// <summary>
/// 邮件服务器端口号
/// </summary>
private int mailserverport=25;
/// <summary>
/// SMTP认证时使用的用户名
/// </summary>
private string username="";
/// <summary>
/// SMTP认证时使用的密码
/// </summary>
private string password="";
/// <summary>
/// 是否需要SMTP验证
/// </summary>
private bool ESmtp=false;
/// <summary>
/// 是否Html邮件
/// </summary>
private bool _html=false;
/// <summary>
/// 邮件附件列表
/// </summary>
private IList Attachments;
/// <summary>
/// 邮件发送优先级,可设置为"High","Normal","Low"或"1","3","5"
/// </summary>
private string priority="Normal";
/// <summary>
/// 邮件主题
/// </summary>
private string _subject;
/// <summary>
/// 邮件正文
/// </summary>
private string _body;
/// <summary>
/// 错误消息反馈
/// </summary>
private string errmsg;
/// <summary>
/// TcpClient对象用于连接服务器
/// </summary>
private TcpClient tc;
/// <summary>
/// NetworkStream对象
/// </summary>
private NetworkStream ns;
/// <summary>
/// SMTP错误代码哈希表
/// </summary>
private Hashtable ErrCodeHT = new Hashtable();
/// <summary>
/// SMTP正确代码哈希表
/// </summary>
private Hashtable RightCodeHT = new Hashtable();
/// <summary>
/// 邮件主题
/// </summary>
public string Subject
{
get
{
return this._subject;
}
set
{
this._subject = value;
}
}
/// <summary>
/// 邮件正文
/// </summary>
public string Body
{
get
{
return this._body;
}
set
{
this._body = value;
}
}
/// <summary>
/// 发件人地址
/// </summary>
public string From
{
get
{
return _from;
}
set
{
this._from = value;
}
}
/// <summary>
/// 设定语言代码默认设定为GB2312如不需要可设置为""
/// </summary>
public string Charset
{
get
{
return this._charset;
}
set
{
this._charset = value;
}
}
/// <summary>
/// 发件人姓名
/// </summary>
public string FromName
{
get
{
return this._fromName;
}
set
{
this._fromName = value;
}
}
/// <summary>
/// 收件人姓名
/// </summary>
public string RecipientName
{
get
{
return this.Recipient;
}
set
{
this.Recipient = value;
}
}
/// <summary>
/// 邮件服务器域名和验证信息
/// 形如:"user:pass@www.server.com:25",也可省略次要信息。如"user:pass@www.server.com"或"www.server.com"
/// </summary>
public string MailDomain
{
set
{
mailserver=value;
}
}
/// <summary>
/// 邮件服务器端口号
/// </summary>
public int MailDomainPort
{
set
{
mailserverport=value;
}
}
/// <summary>
/// SMTP认证时使用的用户名
/// </summary>
public string MailServerUserName
{
set
{
if(value.Trim()!="")
{
username=value.Trim();
ESmtp=true;
}
else
{
username="";
ESmtp=false;
}
}
}
/// <summary>
/// SMTP认证时使用的密码
/// </summary>
public string MailServerPassWord
{
set
{
password=value;
}
}
/// <summary>
/// 邮件发送优先级,可设置为"High","Normal","Low"或"1","3","5"
/// </summary>
public string Priority
{
set
{
switch(value.ToLower())
{
case "high":
priority="High";
break;
case "1":
priority="High";
break;
case "normal":
priority="Normal";
break;
case "3":
priority="Normal";
break;
case "low":
priority="Low";
break;
case "5":
priority="Low";
break;
default:
priority="Normal";
break;
}
}
}
/// <summary>
/// 是否Html邮件
/// </summary>
public bool Html
{
get
{
return this._html;
}
set
{
this._html = value;
}
}
/// <summary>
/// 错误消息反馈
/// </summary>
public string ErrorMessage
{
get
{
return errmsg;
}
}
public bool eSmtp
{
get
{
return this.ESmtp;
}
set
{
this.ESmtp =value;
}
}
/// <summary>
/// 添加邮件附件
/// </summary>
/// <param name="FilePath">附件绝对路径</param>
public void AddAttachment(params string[] FilePath)
{
try
{
if(FilePath==null)
{
throw(new ArgumentNullException("FilePath"));
}
for(int i=0;i<FilePath.Length;i++)
{
Attachments.Add(FilePath[i]);
}
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
}
}
/// <summary>
/// 得到上传附件的文件流
/// </summary>
/// <param name="FilePath">附件的绝对路径</param>
private string GetStream(string FilePath)
{
try
{
//建立文件流对象
System.IO.FileStream FileStr=new System.IO.FileStream(FilePath,System.IO.FileMode.Open);
byte[] by=new byte[System.Convert.ToInt32(FileStr.Length)];
FileStr.Read(by,0,by.Length);
FileStr.Close();
return(System.Convert.ToBase64String(by));
}
catch
{
MessageBox.Show ("可能你要打开的文件的属性是只读的!","请检查权限");
return null;
}
}
/// <summary>
/// 发送邮件方法,所有参数均通过属性设置。
/// </summary>
public bool Send()
{
if(mailserver.Trim()=="")
{
MessageBox.Show ("必须指定SMTP服务器");
return false;
}
return SendEmail();
}
/// <summary>
/// 发送邮件方法
/// </summary>
/// <param name="smtpserver">smtp服务器信息如"username:password@www.smtpserver.com:25",也可去掉部分次要信
public bool Send(string smtpserver)
{
MailDomain=smtpserver;
return Send();
}
/// <summary>
/// 发送邮件方法
/// </summary>
/// <param name="smtpserver">smtp服务器信息如"username:password@www.smtpserver.com:25",也可去掉部分次要信
/// <param name="from">发件人mail地址</param>
/// <param name="fromname">发件人姓名</param>
/// <param name="to">收件人地址</param>
/// <param name="toname">收件人姓名</param>
/// <param name="html">是否HTML邮件</param>
/// <param name="subject">邮件主题</param>
/// <param name="body">邮件正文</param>
public bool Send(string smtpserver,string from,string fromname,string to,bool html,string
subject,string body)
{
MailDomain=smtpserver;
From=from;
FromName=fromname;
Recipient=to;
Html=html;
Subject=subject;
Body=body;
return Send();
}
void Dispose()
{
if(ns!=null)ns.Close();
if(tc!=null)tc.Close();
}
/// <summary>
/// SMTP回应代码哈希表
/// </summary>
private void SMTPCodeAdd()
{
ErrCodeHT.Add("500","邮箱地址错误");
ErrCodeHT.Add("501","参数格式错误");
ErrCodeHT.Add("502","命令不可实现");
ErrCodeHT.Add("503","服务器需要SMTP验证");
ErrCodeHT.Add("504","命令参数不可实现");
ErrCodeHT.Add("421","服务未就绪,关闭传输信道");
ErrCodeHT.Add("450","要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)");
ErrCodeHT.Add("550","要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)");
ErrCodeHT.Add("451","放弃要求的操作;处理过程中出错");
ErrCodeHT.Add("551","用户非本地,请尝试<forward-path>");
ErrCodeHT.Add("452","系统存储不足,要求的操作未执行");
ErrCodeHT.Add("552","过量的存储分配,要求的操作未执行");
ErrCodeHT.Add("553","邮箱名不可用,要求的操作未执行(例如邮箱格式错误)");
ErrCodeHT.Add("432","需要一个密码转换");
ErrCodeHT.Add("534","认证机制过于简单");
ErrCodeHT.Add("538","当前请求的认证机制需要加密");
ErrCodeHT.Add("454","临时认证失败");
ErrCodeHT.Add("530","需要认证");
RightCodeHT.Add("220","服务就绪");
RightCodeHT.Add("250","要求的邮件操作完成");
RightCodeHT.Add("251","用户非本地,将转发向<forward-path>");
RightCodeHT.Add("354","开始邮件输入,以<enter>.<enter>结束");
RightCodeHT.Add("221","服务关闭传输信道");
RightCodeHT.Add("334","服务器响应验证Base64字符串");
RightCodeHT.Add("235","验证成功");
}
/// <summary>
/// 将字符串编码为Base64字符串
/// </summary>
/// <param name="str">要编码的字符串</param>
private string Base64Encode(string str)
{
byte[] barray;
barray=Encoding.Default.GetBytes(str);
return Convert.ToBase64String(barray);
}
/// <summary>
/// 将Base64字符串解码为普通字符串
/// </summary>
/// <param name="str">要解码的字符串</param>
private string Base64Decode(string str)
{
byte[] barray;
barray=Convert.FromBase64String(str);
return Encoding.Default.GetString(barray);
}
/// <summary>
/// 发送SMTP命令
/// </summary>
private bool SendCommand(string str)
{
byte[] WriteBuffer;
if(str==null||str.Trim()==String.Empty)
{
return true;
}
WriteBuffer = Encoding.Default.GetBytes(str);
try
{
ns.Write(WriteBuffer,0,WriteBuffer.Length);
}
catch
{
errmsg="网络连接错误";
return false;
}
return true;
}
/// <summary>
/// 接收SMTP服务器回应
/// </summary>
private string RecvResponse()
{
int StreamSize;
string ReturnValue = String.Empty;
byte[] ReadBuffer = new byte[1024] ;
try
{
StreamSize=ns.Read(ReadBuffer,0,ReadBuffer.Length);
}
catch(Exception ex)
{
MessageBox.Show (ex.ToString ());
return "false";
}
if (StreamSize==0)
{
return ReturnValue ;
}
else
{
ReturnValue = Encoding.Default.GetString(ReadBuffer).Substring(0,StreamSize);
return ReturnValue;
}
}
/// <summary>
/// 与服务器交互,发送一条命令并接收回应。
/// </summary>
/// <param name="str">一个要发送的命令</param>
/// <param name="errstr">如果错误,要反馈的信息</param>
private bool Dialog(string str,string errstr)
{
if(str==null||str.Trim()=="")
{
return true;
}
if(SendCommand(str))
{
string RR=RecvResponse();
if(RR=="false")
{
return false;
}
try
{
string RRCode=RR.Substring(0,3);
if(RightCodeHT[RRCode]!=null)
{
return true;
}
else
{
if(ErrCodeHT[RRCode]!=null)
{
errmsg+=(RRCode+ErrCodeHT[RRCode].ToString());
errmsg+=enter;
}
else
{
errmsg+=RR;
}
errmsg+=errstr;
return false;
}
}
catch
{
MessageBox.Show ("发送的附件超过本服务器对个人软件的支持!","请检查附件的大小");
return false;
}
}
else
{
return false;
}
}
/// <summary>
/// 与服务器交互,发送一组命令并接收回应。
/// </summary>
private bool Dialog(string[] str,string errstr)
{
for(int i=0;i<str.Length;i++)
{
//如果在身份验证阶段有一个不成功,就返回错误标志位
if(!Dialog(str[i],""))
{
errmsg+=enter;
errmsg+=errstr;
return false;
}
}
//身份验证全部正确的话,则返回正确标志位
return true;
}
/// <summary>
/// SendEmail
/// </summary>
/// <returns></returns>
private bool SendEmail()
{
try
{
tc=new TcpClient(mailserver,mailserverport);
}
catch
{
MessageBox.Show ("连接失败","请确认");
return false;
}
ns = tc.GetStream();
SMTPCodeAdd();
//验证网络连接是否正确
if(RightCodeHT[RecvResponse().Substring(0,3)]==null)
{
errmsg="网络连接失败";
return false;
}
string[] SendBuffer;
string SendBufferstr;
//进行SMTP验证
if(ESmtp)
{
SendBuffer=new String[4];
SendBuffer[0]="EHLO " + mailserver + enter;
SendBuffer[1]="AUTH LOGIN" + enter;
SendBuffer[2]=Base64Encode(username) + enter;
SendBuffer[3]=Base64Encode(password) + enter;
if(!Dialog(SendBuffer,"SMTP服务器验证失败请核对用户名和密码。"))
{
MessageBox.Show ("SMTP服务器验证失败请核对用户名和密码。");
return false;
}
}
else
{
SendBufferstr="HELO " + mailserver + enter;
if(!Dialog(SendBufferstr,""))
return false;
}
//
SendBufferstr="MAIL FROM:<" + From + ">" + enter;
if(!Dialog(SendBufferstr,"发件人地址错误,或不能为空"))
{
MessageBox.Show("发件人地址错误,或不能为空");
return false;
}
//把传过来的收件人的地址分割然后提交给服务器
string split=",";
string []address=Regex.Split (RecipientName,split);
SendBuffer=new string [address.Length];
for(int i=0;i<SendBuffer.Length;i++)
{
SendBuffer[i]="RCPT TO:<" +address[i]+">" + enter;
}
if(!Dialog(SendBuffer,"收件人地址有误"))
{
MessageBox.Show("收件人地址有误");
return false;
}
SendBufferstr="DATA" + enter;
if(!Dialog(SendBufferstr,""))
return false;
SendBufferstr="From:" + FromName + "<" + From +">" +enter;
SendBufferstr += "To:<"+RecipientName+">"+enter;
SendBufferstr+=((Subject==String.Empty || Subject==null)?"Subject:":((Charset=="")?("Subject:" +
Subject):("Subject:" + "=?" + Charset.ToUpper() + "?B?" + Base64Encode(Subject) +"?="))) + enter;
SendBufferstr+="X-Priority:" + priority + enter;
SendBufferstr+="X-Mailer: ArgentSwan Mail Sender" + enter;
SendBufferstr+="MIME-Version: 1.0" + enter;
//MIME定义了5个新的信头字段可以与原有信头字段一样用在RF822邮件的首部中。
//1MIME版本信头字段 格式MIME-Version:1.0 <CRLF>
//2邮件唯一标识信头字段 格式Content-ID唯一标识信件的字符串 <CRLF>
//3邮件内容描述信头字段 格式Content-Description:描述文本 <CRLF>
//4MIME邮件的内容类型信头字段 格式Content-Type:主类别标识符/子类别标识符 [;参数列表] <CRLF>
//5内容传送编码方式信头字段 格式Content-Transfer-Encoding:编码方式标识符 <CRLF>
if(Attachments.Count!=0)
{
//mixed 按照特定顺序的几个独立部分
SendBufferstr+="Content-Type: multipart/mixed;" + enter;
SendBufferstr += " boundary=\"***"+
(Html?"001_yinhu19821115":"001_yinhu19831115")+"***\""+enter+enter;
}
if(Html)
{
if(Attachments.Count==0)
{
//multipart多部分 alternative 不同格式的同一邮件
SendBufferstr += "Content-Type: multipart/alternative;"+enter;//内容格式和分隔符
SendBufferstr += " boundary=\"***003_yinhu19821115***\""+enter+enter;
SendBufferstr += "This is a multi-part message in MIME format."+enter+enter;
}
else
{
SendBufferstr +="This is a multi-part message in MIME format."+enter+enter;
SendBufferstr += "--***001_yinhu19821115***"+enter;
SendBufferstr += "Content-Type: multipart/alternative;"+enter;//内容格式和分隔符
SendBufferstr += " boundary=\"***003_yinhu19821115***\""+enter+enter;
}
SendBufferstr += "--***003_yinhu19821115***"+enter;
SendBufferstr += "Content-Type: text/plain;"+ enter;
SendBufferstr += ((Charset=="")?(" charset=\"iso-8859-1\""):(" charset=\"" +
Charset.ToLower() + "\"")) + enter;
SendBufferstr+="Content-Transfer-Encoding: base64" + enter + enter;
SendBufferstr+= Base64Encode("邮件内容为HTML格式请选择HTML方式查看") + enter + enter;
SendBufferstr += "--***003_yinhu19821115***"+enter;
SendBufferstr+="Content-Type: text/html;" + enter;
SendBufferstr+=((Charset=="")?(" charset=\"iso-8859-1\""):(" charset=\"" +
Charset.ToLower() + "\"")) + enter;
SendBufferstr+="Content-Transfer-Encoding: base64" + enter + enter;
SendBufferstr+=Base64Encode(Body)+ enter + enter;
SendBufferstr += "--***003_yinhu19821115***--"+enter;
}
else
{
if(Attachments.Count!=0)
{
SendBufferstr += "--***001_yinhu19831115***"+enter;
}
SendBufferstr+="Content-Type: text/plain;" + enter;
SendBufferstr+=((Charset=="")?(" charset=\"iso-8859-1\""):(" charset=\"" +
Charset.ToLower() + "\"")) + enter;
SendBufferstr+="Content-Transfer-Encoding: base64" + enter + enter;
SendBufferstr+= Base64Encode(Body) + enter;
}
if(Attachments.Count!=0)
{
for(int i=0;i<Attachments.Count;i++)
{
string filepath = Attachments[i].ToString();
SendBufferstr += "--***"+
(Html?"001_yinhu19821115":"001_yinhu19831115") +"***"+enter;
//用于在电子邮件中传输一个含有任意数据的实体。内容是一个未解释的字节序列。
//当内容类型未知或者对数据没有具体定义媒体类别时,通常使用它描述
SendBufferstr += "Content-Type: application/octet-stream"+enter;
SendBufferstr += " name=\"=?"+Charset.ToUpper()+"?B?"+Base64Encode
(filepath.Substring(filepath.LastIndexOf("\\")+1))+"?=\""+enter;
SendBufferstr += "Content-Transfer-Encoding: base64"+enter;
SendBufferstr += "Content-Disposition: attachment;"+enter;
SendBufferstr += " filename=\"=?"+Charset.ToUpper()+"?B?"+Base64Encode
(filepath.Substring(filepath.LastIndexOf("\\")+1))+"?=\""+enter+enter;
SendBufferstr += GetStream(filepath)+enter+enter;
}
SendBufferstr += "--***"+ (Html?"001_yinhu19821115":"001_yinhu19831115")
+"***--"+enter+enter;
}
SendBufferstr += enter + "." + enter;
if(!Dialog(SendBufferstr,"错误信件信息"))
return false;
SendBufferstr="QUIT" + enter;
if(!Dialog(SendBufferstr,"断开连接时错误"))
return false;
ns.Close();
tc.Close();
return true;
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
src/毕业论文.doc Normal file

Binary file not shown.

Binary file not shown.