邮件发送

2019-01-19 11:57

科信学院

1、课程设计任务与要求

要求能够方便地编辑和发送电子邮件,并将带有附件的邮件发送至用户指定的邮箱(可以多个)。通过学习并掌握System.Net.Mail 命名空间中相关的类(包括Attachment、MailAddress、MailMessage、SmtpClient等)的使用。

并考虑不使用SmtpClient,而是直接使用TCP套接字,编程实现SMTP协议的客户端相关功能,最终实现简单邮件的发送。

(1)、深入理解电子邮件系统的构成和SMTP协议的工作原理。

(2)、学习并掌握System.Net.Mail 命名空间中相关的类的使用。 (3)、完成客户发送客户端软件的开发和测试。

2、软件总体设计

电子邮件(简称E-mai1)又称电子信箱、电子邮政是—种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是—个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。 2.1 软件分析

本设计发送程序采取了既可与发送邮件服务器连接又可以直接与接收邮件服务器连接的方式来实现电子邮件的发送。用户在“收件人邮箱”所对应的对话框中输入收件人的Email地址,并在“发件人邮箱”所对的对话框中输入发信人的Email地址,编辑信件的正文(本例还可以发送附件,只要填写真确的路径,就可以发送附件),然后单击“发送”按钮,便可完成电子邮件的发送。电子邮件发送成功,程序将弹出一个“发送成功”的消息对话框;若电子邮件发送失败,程序将给出失败的相关信息。 2.1.1 电子邮件系统构成

电子邮件系统由用户代理MUA(Mail User Agent)以及邮件传输代理MTA(Mail Transfer Agent),MDA(Mail Delivery Agent)邮件投递代理组成,MUA指用于收发Mail的程序,MTA指将来自MUA的信件转发给指定用户的程序,MDA就是将MTA接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),当用户从 MUA

1

科信学院

中发送一份邮件时,该邮件会被发送送到MTA,而后在一系列MTA中转发,直到它到达最终发送目标为止。 2.1.2 SMTP协议工作原理

SMTP协议,是英文Simple Mail Transfer Protocol的缩写,意为简单邮件传输协议,默认端口号为25。使用SMTP发送邮件时,有两种形式,一种是不使用客户端认证,即客户端可使用匿名方式发送邮件,这种方式是一般的SMTP;另一种要求客户端必须提供用户名和密码,这种方式称为ESMTP,或者叫扩展SMTP。

客户端发送电子邮件的过程是:先通过客户端软件,将邮件发送到SMTP服务器,然后再由SMTP服务器将其发送到目标SMTP服务器。客户端软件通常是Windows应用程序客户端软件或提供SMTP服务的公司提供的Web应用程序,该Web应用程序对邮件客户来说是服务器,但相对于SMTP服务器来说则是客户端。

对于邮件接收者来说,接受邮件时,首先通过POP3与SMTP邮件服务器连接,POP的意思是邮局协议,用于电子邮件的接受。通过POP3登陆到服务器后,可以对指定的邮件进行删除或是下载到本地。

在SMTP中,电子邮件有三部分组成,信封、首部和正文。 (1)信封

信封包括邮件收发者的邮件地址,用两条SMTP命令指明。

① MAIL FROM:<发信人的地址>,告诉SMTP服务器发信人的地址。 ② RCPT TO:<收信人的地址>,告诉SMTP服务器收信人地址。 (2)首部

首部中常用命令:

① FROM:<姓名><邮件地址>,表明邮件发送者是谁。 ② TO:<姓名><邮件地址>,表明邮件接收者是谁。 ③ SUBJECT:<邮件标题>,表明邮件的主题。 ④ DATE:<时间>,表明发邮件的时间。

⑤ REPLY-TO:<邮件地址>,表明邮件的回复地址。

⑥ Content-Type:<邮件类型>,表明邮件包含文本、HTML超文本和附件的哪些类型。

⑦ X-Priority:<邮件优先级>,表明邮件的发送优先级。

⑧ MIME-Version:<版本>,MIME的意思是Multipurpose Internet Mail Extensions,

2

科信学院

即多用途Internet邮件扩展标准,它对传输内容的消息、附件及其他的内容定义了格式。

(3)正文

正文是邮件的内容。首部以一个空行结束,再下面就是正文部分。 (4)结束符号 邮件以“.”结束。

2.1.3利用System.Net.Mail 命名空间中的SmtpClient类

从STMP的介绍可以看出,发送和接受邮件的内部实现过程还是比较复杂的,如果全部从底层进行编程,需要考虑的问题就比较多。因此在.NET框架2.0的System.NET.Mail命名空间中提供了专门对邮件进行处理的类,从而使邮件的发送变得非常简单。

对于运行在没有专用邮件服务器的大多数客户程序而言,向SMTP服务器发送邮件需要提供用户名和密码,服务器验证成功后,才能进行邮件的发送或接受。因此在应用程序中发送邮件,需要使用下面几个类:

(1)System.Net命名空间下的NetworkCredential类

该类用于提供客户端身份验证机制的凭据。其中包括标准Internet身份验证方法(基本、简要、协商、NTLM和Kerberos身份验证)以及可以创建的自定义方法。在邮件发送中,我们需要使用这个类向STMP服务器提供所需要的用户名和密码,用法为:

NetworkCredential myCredentials=new NetworkCredential(“发件人邮件地址”,“密码”); (2)System.Net.Mail命名空间下的MailAddress类 该类用于提供发件人和收件人的邮件地址,常用格式为: MailAddress from=new MailAddress(“发件人邮件地址”); MailAddress to=newMailAddress(“收件人邮件地址”); (3)System.Net.Mail命名空间下的MailMessage类

该类用于提供邮件的信息,包括主题、内容、附件和信息类型等,常用形式为: MailMessage message=new MailMessage(from,to); message.Subject=”主题”;

message.SubjectEncoding=System.Text.Encoding.UTF8; message.Body=”邮件内容”;

message.BodyEncoding=System.Text.Encoding.UTF8; (4)System.Net.Mail命名空间下的Attachment类 该类用于提供附件对象,常用形式为:

3

科信学院

Attachment attachFile=new Attachment(“文件名”); message.Attchment.Add(attachFile); (5)SmtpClient类

该类用于发送邮件,常用形式为:

SmtpClient client=new SmtpClient(“邮件服务器地址”); Client.Send(message); 2.2 软件设计

本设计是利用Windows应用程序,来实现发送邮件的功能,利用正则表达式验证用户输入的信息,当输入的信息符合要求时,才允许将邮件发送到邮件服务器。

创建一个名为SendMailExample的Windows应用程序,将Form1.cs改名为FormSendMail.cs,设计界面如图2来表示:

图2 发送窗口

2.3 程序设计

发送窗口的整体程序设计如下: using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

4

科信学院

using System.Drawing; using System.Text;

using System.Windows.Forms; using System.Text.RegularExpressions; using System.Net; using System.Net.Mail; namespace SendMail {

public partial class FormSendMail : Form {

public FormSendMail() {

InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) {

}

//发件人改变时触发

private void textBoxUserName_TextChanged(object sender, EventArgs e) {

//要求满足电子邮件的格式

BoxUserName.Visible = !Regex.IsMatch(textBoxUserName.Text, @\

}

// 密码改变时触发

private void textBoxPassWord_TextChanged(object sender, EventArgs e) {

//要求满足5~20个英文字母或者数字的组合

5


邮件发送.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:贾俊平统计学第四版课后答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: