邮件发送软件

上传人:飞*** 文档编号:43351794 上传时间:2018-06-05 格式:DOC 页数:13 大小:183KB
返回 下载 相关 举报
邮件发送软件_第1页
第1页 / 共13页
邮件发送软件_第2页
第2页 / 共13页
邮件发送软件_第3页
第3页 / 共13页
邮件发送软件_第4页
第4页 / 共13页
邮件发送软件_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《邮件发送软件》由会员分享,可在线阅读,更多相关《邮件发送软件(13页珍藏版)》请在金锄头文库上搜索。

1、1 1、设计要求、设计要求要求能够方便地编辑和发送电子邮件,并将带有附件的邮件发送至用户指定的邮箱(可以多个) 。通过学习并掌握 System.Net.Mail 命名空间中相关的类(包括Attachment、MailAddress、MailMessage、SmtpClient 等)的使用。并考虑不使用 SmtpClient,而是直接使用 TCP 套接字,编程实现 SMTP 协议的客户端相关功能,最终实现简单邮件的发送。(1)深入理解电子邮件系统的构成和 SMTP 协议的工作原理;(2)学习并掌握 System.Net.Mail 命名空间中相关的类的使用; (3)完成客户发送客户端软件的开发和测

2、试; (4)按照格式要求撰写设计报告。2 2、设计正文、设计正文2.1、电子邮件服务简介、电子邮件服务简介电子邮件服务是互联网提供的一项重要服务。它为互联网用户之间发送和接收消息提供了一种快捷、廉价的现代化通信手段。早期的电子邮件系统只能传输西文文本信息,而现在的电子邮件系统不但可以传输各种文字的文本信息,而且还可以传输图像、声音、视频等多媒体信息。与其他通信方式相比,电子邮件具有以下特点。电子邮件比人工邮件传递迅速,可到达的范围广,而且比较可靠。电子邮件与电话系统相比,它不要求通信双方都在现场,而且不需要知道通信对象在网络中的具体位置。电子邮件可以实现一对多的邮件发送,这样可以使一个用户向多

3、个人发出通知的过程变得很容易。电子邮件可以将文字、图像、语音等多种类型的信息集成在一个邮件中发送,因此它是多媒体信息传递的重要手段。2.1.1 电子邮件系统电子邮件系统电子邮件系统采用客户机服务器工作模式。一个电子邮件系统包括三个主要的构件:用户代理、邮件服务器和电子邮件使用的协议。用户代理是用户与电子邮件系统的接口,往往是运行于 PC 机上的一个程序,想用户提供友好的窗口界面,为用户发送或接受邮件。邮件服务器提供电子邮件的传输服务,往往是运行于远端计算机上的服务器软件。如果考虑到发件与收件是异步发生的两个过程,则又可以将其细分为邮件发送传输代理和邮件接收传输代理。电子邮件传输的客户机和服务器

4、进程之间进行通信的约定就是协议,主要有两个:一个是用于发送邮件,即 smtp,是 smtp 客户机与 smtp 服务器之间通信的约定;另一个用于接收邮件,即 pop3 协议,是 pop 客户机与 pop 服务器之间通信的约定。由于本设计只要求发送,所以只考虑 smtp 协议。邮件传送形象图示如下:2.1.22.1.2、SMTPSMTP 协议的工作原理:协议的工作原理:SMTP 是电子邮件系统中的一个重要协议,它负责将邮件从一个“邮局”传送到另一个“邮局” 。 SMTP 的最大特点就是简单和直观,它不规定邮件的接收程序如何存储邮件,也不规定邮件发送程序多长时间发送一次邮件,它只是规定发送程序和接

5、收程序之间的命令和应答。SMTP 邮件传输采用用客户机服务器模式,邮件的接收程序作为 SMTP 服务器在 TCP的 25 端口守候,邮件的发送程序作为 SMTP 客户机在发送前需要请求一条到 SMTP 服务器的连接。一旦连接建立成功,首发双方就可以传递命令、响应和邮件内容。SMTP 邮件传递过程大致分为如下 3 个阶段。连接建立阶段:在这一阶段,SMTP 客户机请求与服务器的 25 端口建立一个 TCP连接。一旦连接建立,SMTP 服务器和客户机就开始相互通报自己的域名,同时确认对方的域名。邮件传递阶段:利用 MAIL、RCPT 和 DATA 命令,SMTP 将邮件的源地址、目的地址和邮件的具

6、体内容传递给 SMTP 服务器。SMTP 服务器进行相应的响应并接收邮件。连接关闭阶段:SMTP 客户机发送 QUIT 命令,服务器在处理命令后进行响应,随后关闭 TCP 连接。SMTP 模型示意图:2.1.3、TCP PIPIP 互联网上电子邮件的传输过程互联网上电子邮件的传输过程在 TCPIP 互联网中,邮件服务器之间使用简单邮件传输协议(SMTP)相互传递电子邮件。用户需要发送电子邮件时,可以按照一定的格式起草、编辑一封邮件。在注明收件人的邮箱后提交给本机 SMTP 客户机进程,有本机 SMTP 客户机进程负责邮件的发送工作。本机 SMTP 客户机进程与本地邮件服务器的 SMTP 服务器

7、建立连接,并按照 SMTP 协议将邮件传递到该服务器。本机服务器检查收到邮件的收件人邮箱是否处于本服务器中,如果是,就将该邮件保存在这个邮箱中;如果不是,则将该邮件交由本地邮件服务器的 SMTP 客户机进程处理。本地服务器的 SMTP 客户机程序直接向拥有收件人邮箱的远程邮件服务器发出请求,远程 SMTP 服务器进程响应,并按照 SMTP 协议传递邮件。由于远程服务器拥有收件人的信箱,因此,邮件服务器将邮件保存在该信箱中。邮件通信图:2.22.2、System.Net.MailSystem.Net.Mail 命名空间中相关的类的使用命名空间中相关的类的使用2.2.12.2.1、Attachme

8、ntAttachment 表示电子邮件的附件表示电子邮件的附件Attachment 类与 MailMessage 类一起使用。所有邮件都包括 Body,它包含邮件的内容。除了正文外,您可能还想发送其他文件。这些作为附件发送并表示为 Attachment 实例。若要将附件添加到邮件中,请将附件添加到 MailMessage.Attachments 集合中。附件内容可以是 String、Stream 或文件名。可以使用任何 Attachment 构造函数来指定附件中的内容。附件的 MIME Content-Type 标头信息由 ContentType 属性表示。Content-Type 标头指定媒

9、体类型和子类型以及任何关联的参数。使用 ContentType 获取与附件关联的实例。MIME Content-Disposition 标头由 ContentDisposition 属性表示。Content-Disposition 标头指定附件的表示和文件时间戳。仅当附件是文件时才发送 Content-Disposition 标头。使用 ContentDisposition 属性可获取与附件关联的实例。MIME Content-Transfer-Encoding 标头由 TransferEncoding 属性表示。2.2.22.2.2、MailAddressMailAddress 表示电子邮件

10、发件人或收件人的地址表示电子邮件发件人或收件人的地址SmtpClient 和 MailMessage 类使用 MailAddress 类来存储电子邮件的地址信息。一个邮件地址由 User 名称、Host 名称和可选的 DisplayName 组成。如果将非 ASCII 字符编码,则 DisplayName 可以包含这些字符。2.2.32.2.3、MailMessageMailMessage 表示可以使用表示可以使用 SmtpClientSmtpClient 类发送的电子邮件类发送的电子邮件MailMessage 类的实例用于构造可使用 SmtpClient 类传输到 SMTP 服务器以便传递的

11、电子邮件。 若要指定电子邮件的发件人、收件人和内容,请使用 MailMessage 类的关联属性。邮件部分邮件部分属性属性发件人From 收件人To 抄送 (CC)CC 密件抄送 (BCC)Bcc 附件 Attachments 主题Subject 邮件正文Body 使用 AlternateViews 属性指定一个电子邮件不同格式的副本。例如,如果您发送 HTML 格式的邮件,您可能希望同时提供邮件的纯文本格式,以防一些收件人使用的电子邮件阅读程序无法显示 HTML 内容。有关演示如何用替代视图创建邮件的示例,请参见 AlternateViews。组织好电子邮件后,可以使用 Send 或 Sen

12、dAsync 方法发送邮件。 2.2.42.2.4、SmtpClientSmtpClient 允许应用程序使用简单邮件传输协议允许应用程序使用简单邮件传输协议 (SMTP)(SMTP) 来发送电子邮件来发送电子邮件SmtpClient 类用于将电子邮件发送到 SMTP 服务器以便传递。下表中显示的类用于构造可以使用 SmtpClient 发送的电子邮件。类类说明说明Attachment 表示文件附件。此类允许您将文件、流或文本附加到电子邮件中。MailAddress 表示发件人和收件人的电子邮件地址。MailMessage 表示电子邮件。若要使用 SmtpClient 构造并发送电子邮件,必须

13、指定以下信息:用来发送电子邮件的 SMTP 主机服务器。身份验证凭据(如果 SMTP 服务器要求)。发件人的电子邮件地址。收件人的电子邮件地址。邮件内容。若要在电子邮件中包括附件,首先使用 Attachment 类创建附件,再使用 MailMessage.Attachments 属性将附件添加到邮件中。根据收件人使用的电子邮件阅读程序和附件的文件类型,某些收件人可能无法阅读附件。对于那些无法以附件的原始格式显示附件的客户端,可以通过使用 MailMessage.AlternateViews 属性来指定替代视图。可以使用应用程序或计算机配置文件来指定所有 SmtpClient 对象的默认主机、端

14、口和凭据值。若要发送电子邮件并在等待电子邮件传输到 SMTP 服务器期间阻止其他操作,请使用一个同步 Send 方法。若要允许程序的主线程在传输电子邮件的过程中继续执行,请使用一个异步 SendAsync 方法。SendAsync 操作完成时会引发 SendCompleted 事件。若要接收此事件,必须将 SendCompletedEventHandler 委托添加到 SendCompleted 中。SendCompletedEventHandler 委托必须引用处理 SendCompleted 事件通知的回调方法。若要取消异步电子邮件传输,请使用 SendAsyncCancel 方法。 注意

15、注意如果正在传输电子邮件时再次调用 SendAsyncSendAsync 或 SendSend,则会接收到 InvalidOperationException。 2.3、程序设计、程序设计设计中要求考虑不使用 SmtpClient,而是直接使用 TCP 套接字,编程实现 SMTP 协议的客户端相关功能,最终实现简单邮件的发送。可是由于能力有限,没有完成该要求。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using

16、System.Text;using System.Windows.Forms;using System.Text.RegularExpressions;using System.Net;using System.Net.Mail;namespace SendMailpublic partial class FormSendMail : Formpublic FormSendMail()InitializeComponent();/发件人地址改变时触发private void textBoxUserName_TextChanged(object sender, EventArgs e)/要求满足电子邮件格式labelUserName.Visible = !Regex.IsMatch(textBoxUserName.Text.Trim(), “w+(-+.w+)*w+(-.w+)*.com$“);private void textBoxPassword_TextChanged(obj

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号