C#成魔之路<14> 网络编程技术(3 )System.Net.Mail命名空间

原创 2016年03月15日 14:12:59

System.Net.Mail命名空间包含用于将电子邮件发送到简单邮件传输协议(SMTP)服务器进行传输的类。其中MailMessage类用来表示邮件的内容;Attachment类用来创建邮件附件;SmtpClient类用来将电子邮件传输到指定用于邮件传送的SMTP主机。

1、MialMessage类
MialMessage类表示可以使用SmptClient类发送的电子邮件,它主要用于指定邮件的发送地址、收件人地址、邮件正文及附件等。
常用属性和方法:
Attachments:获取用于存储附加到电子邮件的数据的附件合集。
Body:获取或者设置邮件正文。
From:获取或设置此电子邮件的发信人地址。
Sender:获取或设置电子邮件的发件人地址。
Subject:获取或设置此电子邮件的主题行。
To: 获取包含此电子邮件的收件人的地址集合。

注意:MialMessage类的实例用于构造可使用SmtpClient类传输到SMTP服务器的电子邮件。

示例程序:实例化一个邮件发送类对象。

 MailAddress from = new MailAddress("1795959147@qq.com");
            //设置邮件的发送人
            MailAddress to = new MailAddress("192928715@qq.com");
            //设置邮件的收件人
            MailMessage mess = new MailMessage(from,to);
            //实例化一个类对象
            mess.Subject = "屁眼交易";
            //设置发送邮件的主题
            mess.Body = "肮脏的";
            //设置发送信息的内容

2、Attachment类
Attachment类表示电子邮件的附件,他需要与MailMessage类一起使用。创建完电子邮件的附件之后,若要将附件添加到邮件中,需要将附件添加到MailMessage.Attachments集合中。

Attachment类的常用属性、方法及说明如下:
ContentDisposition属性:获取附件的MIME内容标头信息。
Name属性:获取或设置和附件关联的内容类型中的MIME内容类型名称值。
TransferEncoding属性:获取或设置附件的编码 。
CreateAttacthmentFromString方法:用字符串创建附件。

示例程序:

 string strFile = "C#.txt";
            MailAddress from = new MailAddress("1795959147@qq.com");
            //设置邮件的发送人
            MailAddress to = new MailAddress("192928715@qq.com");
            //设置邮件的收件人
            MailMessage mess = new MailMessage(from,to);
            //实例化一个类对象
            Attachment att = new Attachment(Server.MapPath(ddlAccessories.Items[i].Value),
                System.Net.Mime.MediaTypeNames.Application.Octet);
            //为发送的邮件创建附件信息。
            System.Net.Mime.ContentDisposition dis = att.ContentDisposition;
            //为邮件添加时间信息
            dis.CreationDate = System.IO.File.GetCreationTime(strFile);
            dis.ModificationDate = System.IO.File.GetLastWriteTime(strFile);
            dis.ReadDate = System.IO.File.GetLastAccessTime(strFile);
            mess.Attachments.Add(att);
            //创建的附件添加到邮件中

3、SmtpClient类
SmtpClient类用于将电子邮件发送到SMTP服务器以便传递,使用它实现发送电子邮件功能的时候必须指定一下信息:
(1)用来发送电子邮件的SMTP主机服务器。
(2)身份验证凭据。
(3)发件人和收件人的邮件地址。
(4)邮件内容。

该类的常见属性方法:

Credentials属性:获取或设置用于验证发件人身份的凭据。
Host属性:获取或者设置用于SMTP事务的主机的名称或IP地址。
Port属性:获取或设置用于SMTP事务的端口。
Send属性:将电子邮件发送到SMTP服务器以便传递,该方法在传输邮件的过程中将阻止其他操作。

注意:当正在传输电子邮件的过程中,再次调用SendAsync或Send方法的时候,会触发InvaildOperationException异常。

 string strFile = "C#.txt";
            MailAddress from = new MailAddress("1795959147@qq.com");
            //设置邮件的发送人
            MailAddress to = new MailAddress("192928715@qq.com");
            //设置邮件的收件人
            MailMessage mess = new MailMessage(from,to);
            //实例化一个类对象
            Attachment att = new Attachment(strFile,
                System.Net.Mime.MediaTypeNames.Application.Octet);
            //为发送的邮件创建附件信息。
            System.Net.Mime.ContentDisposition dis = att.ContentDisposition;
            //为邮件添加时间信息
            dis.CreationDate = System.IO.File.GetCreationTime(strFile);
            dis.ModificationDate = System.IO.File.GetLastWriteTime(strFile);
            dis.ReadDate = System.IO.File.GetLastAccessTime(strFile);
            mess.Attachments.Add(att);
            //创建的附件添加到邮件中
            SmtpClient smtp = new SmtpClient("192.168.1.51",25);
            //实例化邮件发送类对象。
            smtp.Credentials = new System.Net.NetworkCredential("zhd","111");
            //设置用于验证发件人身份的凭据
            smtp.Send(mess);
            //发送邮件

4、 POP3协议
POP3协议用于收发电子邮件。通过POP协议,客户机登录到服务器之后,可以对自己的邮件进行删除或下载到本地的操作。 POP3协议的常用命令以及描述:

USER :此命令与下面的PASS命令如果都发送成功,将使状态转换。
PASS:用户名所对应的密码。
APOP:Digest是MD5消息摘要。
STAT:请求服务器发回关于邮箱统计资料(邮件总数和总字节数)。
DELE:服务器将由参数标识的邮件标记为删除,有QUIT命令执行。
RSET:服务器将重置所有标记为删除的邮件,用于撤销DELE命令。
QUIT:退出。

注意:SMTP服务器使用的端口号一般为25,POP服务器使用的端口号一般为110。
所有域都在本机上分出一定的空间来存放信息,默认位置为”C:\Inetpub\mailroof\Mailbox“。

版权声明:本文为博主原创文章,未经博主允许不得转载。

C#成魔之路<14> 网络编程技术(2 )System.Net.Sockets命名空间

System.Net.Sockets命名空间主要是提供制作Sockets网络应用程序的相关类,其中Socket类,TcpClient类、TcpListener类、UdpClient类较为常用,下面对其...
  • memories_sunset
  • memories_sunset
  • 2016年03月14日 20:19
  • 372

C#成魔之路<13> 网络编程技术(1)System.Net命名空间

1、网络编程基础 System.Net、System.Net.Sockets和System.Net.Mail这三个命名空间提供了网络编程中用到的多数类,下面对这三个命名空间及他们包含的主要类进行详细...
  • memories_sunset
  • memories_sunset
  • 2016年03月11日 12:02
  • 639

C#成魔之路<开篇>

关于C#,前面已经开了一个栏目,介绍了关于C#的相关基础知识和相关程序架构。其中文章是参考《面向对象编程C#3.0》进行编写的。外国人对于语言的讲解十分到位,对于打基础非常有用。但是上一个栏目对于C#...
  • memories_sunset
  • memories_sunset
  • 2016年03月03日 18:55
  • 170

System.Net.Mail 详细讲解

System.Net.Mail命名空间是在.NET Framework中新增的,该命名空间提供了发送电子邮件的功能。通过对本章的学习,读者可以轻松地使用.NET Framework提供的类库来发送电子...
  • liyanwwww
  • liyanwwww
  • 2010年04月20日 16:26
  • 15081

C#成魔之路<16> C#新技术

本章中出现的一些东西,对于小白来说非常有用,会解释一些一般教材都略过的一些常识,下面进行相关的介绍。 (1)使用隐式类型var声明变量 C#技术提供了一个特殊的关键字—var,允许程序使用var关...
  • memories_sunset
  • memories_sunset
  • 2016年03月21日 15:29
  • 207

C#成魔之路<3>C#面向对象高级技术(1)

C#中不支持多重继承。为了避免传统的多重继承给程序带来复杂性的问题,同时保证多重继承给程序员带来的好处,提出了接口的概念。1、接口(1)接口的概念以及声明 接口提出了一种契约,让使用接口的程序设计人...
  • memories_sunset
  • memories_sunset
  • 2016年03月05日 10:45
  • 171

C#成魔之路<11> GDI+绘图

用户界面上的窗体和控件,需要使用颜色和图形对象。或者使用线条或者弧线进行游戏开发,或者使用很多图形来开发屏幕保护程序。在这种情况下使用窗体控件是不够的,还需要图形功能。GDI+是图形设备接口的高级版本...
  • memories_sunset
  • memories_sunset
  • 2016年03月09日 16:43
  • 430

C#成魔之路<15> 注册表技术

注册表是一个庞大的数据库系统,其记录了用户安装在计算机上的软件,硬件信息和每一个程序的相互关系。注册表中存放着很多参数,直接控制着整个系统的启动、硬件驱动程序的装载以及应用程序的运行。1、注册表基础(...
  • memories_sunset
  • memories_sunset
  • 2016年03月16日 16:36
  • 193

C#成魔之路<10>文件及数据流技术(3)

1、数据流操作 数据流提供了一种向后被存储写入字节和从后被存储读取字节的方式,他是在.NET中执行读写文件操作时的一种非常重要的介质。(1)流操作类介绍 .NET使用流来支持读取和写入文件,开发人...
  • memories_sunset
  • memories_sunset
  • 2016年03月08日 20:38
  • 427

网络编程的技术要点

首先向云风致敬, 他的 skynet 给了我很多启发. skynet 的核心是多线程环境下的消息管理, 如何让消息安全高效的从一个服务传递到另一个服务. 服务在线程池中运行.  skynet 实现了...
  • chengangdzzd
  • chengangdzzd
  • 2016年04月05日 11:01
  • 1764
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#成魔之路<14> 网络编程技术(3 )System.Net.Mail命名空间
举报原因:
原因补充:

(最多只允许输入30个字)