这篇文章主要介绍如何使用C#的MailAddress类进行邮件的发送。

  1.首先引入命名空间using System.Net.Mail;

  2.将发送的邮件的功能封装成一个类,该类中包含了发送邮件的基本功能:收件人(多人),抄送(多人),发送人,主题,邮件正文,附件等,封装的Email类如下:

 public class Email     {         /// <summary>         /// 发送者         /// </summary>         public string mailFrom { get; set; }          /// <summary>         /// 收件人         /// </summary>         public string[] mailToArray { get; set; }          /// <summary>         /// 抄送         /// </summary>         public string[] mailCcArray { get; set; }          /// <summary>         /// 标题         /// </summary>         public string mailSubject { get; set; }          /// <summary>         /// 正文         /// </summary>         public string mailBody { get; set; }          /// <summary>         /// 发件人密码         /// </summary>         public string mailPwd { get; set; }          /// <summary>         /// SMTP邮件服务器         /// </summary>         public string host { get; set; }          /// <summary>         /// 正文是否是html格式         /// </summary>         public bool isbodyHtml { get; set; }          /// <summary>         /// 附件         /// </summary>         public string[] attachmentsPath { get; set; }          public bool Send()         {             //使用指定的邮件地址初始化MailAddress实例             MailAddress maddr = new MailAddress(mailFrom);             //初始化MailMessage实例             MailMessage myMail = new MailMessage();               //向收件人地址集合添加邮件地址             if (mailToArray != null)             {                 for (int i = 0; i < mailToArray.Length; i++)                 {                     myMail.To.Add(mailToArray[i].ToString());                 }             }              //向抄送收件人地址集合添加邮件地址             if (mailCcArray != null)             {                 for (int i = 0; i < mailCcArray.Length; i++)                 {                     myMail.CC.Add(mailCcArray[i].ToString());                 }             }             //发件人地址             myMail.From = maddr;              //电子邮件的标题             myMail.Subject = mailSubject;              //电子邮件的主题内容使用的编码             myMail.SubjectEncoding = Encoding.UTF8;              //电子邮件正文             myMail.Body = mailBody;              //电子邮件正文的编码             myMail.BodyEncoding = Encoding.Default;              myMail.Priority = MailPriority.High;              myMail.IsBodyHtml = isbodyHtml;              //在有附件的情况下添加附件             try             {                 if (attachmentsPath != null && attachmentsPath.Length > 0)                 {                     Attachment attachFile = null;                     foreach (string path in attachmentsPath)                     {                         attachFile = new Attachment(path);                         myMail.Attachments.Add(attachFile);                     }                 }             }             catch (Exception err)             {                 throw new Exception("在添加附件时有错误:" + err);             }              SmtpClient smtp = new SmtpClient();             //指定发件人的邮件地址和密码以验证发件人身份             smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd);               //设置SMTP邮件服务器             smtp.Host = host;              try             {                 //将邮件发送到SMTP邮件服务器                 smtp.Send(myMail);                 return true;              }             catch (System.Net.Mail.SmtpException ex)             {                 return false;             }          }     }

  3.页面调用发送邮件的类

protected void Send_Click(object sender, EventArgs e)         {             Email email = new Email();             email.mailFrom = "发送人的邮箱地址";             email.mailPwd = "发送人邮箱的密码";             email.mailSubject = "邮件主题";             email.mailBody = "邮件内容";             email.isbodyHtml = true;    //是否是HTML             email.host = "smtp.126.com";//如果是QQ邮箱则:smtp:qq.com,依次类推             email.mailToArray = new string[] { "******@qq.com","12345678@qq.com"};//接收者邮件集合             email.mailCcArray = new string[] { "******@qq.com" };//抄送者邮件集合             if (email.Send())             {                 Response.Write("<script type='text/javascript'>alert('发送成功!');history.go(-1)</script>");//发送成功则提示返回当前页面;              }             else             {                 Response.Write("<script type='text/javascript'>alert('发送失败!');history.go(-1)</script>");             }         }

  

  以上就完成了在C#中如何发送邮件。

  点击下载Demo

C# 发送邮件3的更多相关文章

  1. 利用SQLServer数据库发送邮件

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...

  2. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

  3. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  4. 技术笔记:Indy控件发送邮件

    工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...

  5. mono中发送邮件并保存本次收件人的地址

    在ios端mono开发中,发送邮件可以选择调用ios原生email程序.有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出. 首先第一种方式的代 ...

  6. Azure 上通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...

  7. 使用nodemailer发送邮件

    今天闲来无事,一时兴起看了下如果使用javascript来发送邮件.经过调研发现,nodeJs可以实现这个功能. 具体的步骤如下: 1.安装依赖 npm install nodemailer -g ( ...

  8. ASP.NET MVC 发送邮件(异步)

    最近写邮件发送搞死人了,最后的结果,真是醉了,现整理如下: 网上一搜一大把,到处都是.NET发送邮件的方法,我这里也大同小异的写了一个. 准备一个MailHelper.cs通用类,如下所示: 重要的命 ...

  9. MVC5发送邮件注册

    #region 发送邮件 //填写电子邮件地址,和显示名称 System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(&qu ...

  10. ASP.NET用QQ,网易发送邮件以及添加附件

    教程:ASP.NET用QQ,网易发送邮件以及添加附件 这是我用QQ邮箱出现的异常: 命令顺序不正确. 服务器响应为:Error: need EHLO and AUTH first !无法从传输连接中读 ...

随机推荐

  1. [技巧]实际项目中background-image应写在页面上

    摘自:http://www.zhangxinxu.com 因为实际项目中(数据对接时),这肯定是个动态的URL地址,css文件似乎不支持动态URL 地址. <img src="../i ...

  2. PLSQL_性能优化系列05_Oracle Hint提示

    2014-06-20 Created By BaoXinjian

  3. PKU 2406 Power Strings(KMP最长循环不重叠字串)

    题意:给一个字符串S长度不超过10^6,求最大的n使得S由n个相同的字符串a连接而成,如:"ababab"则由n=3个"ab"连接而成,"aaaa&q ...

  4. python(15)提取字符串中的数字

    python 提取一段字符串中去数字 ss = “123ab45” 方法一:filter filter(str.isdigit, ss) 别处copy的filter的用法: # one>> ...

  5. 转--简单工厂模式 Simple Factory

    简单工厂模式的作用就是定义一个用于创建对象的接口 在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化.         先来看看它的组成: 1) 工厂类角色 ...

  6. ipython and bpython

    ipython: 1.安装easy_install工具 wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py 2 ...

  7. java虚拟机参数设置

    -Xms8000M  初始化的堆大小   -Xmx8000M  堆的最大值 -XX:+HeapDumpOnOutOfMemoryError 堆溢出时Dump出当前内存堆转储快照以便事后分析 -XX:P ...

  8. NPOI高效匯出Excel

    using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using NPOI. ...

  9. JSON序列化和反序列化

    public class JSONHelper { public static string Serialize<T>(T obj)//序列化为JSON { System.Runtime. ...

  10. delphi 调用百度地图WEBSERVICE转换GPS坐标 转

    http://www.cnblogs.com/happyhills/p/3789864.html   百度地图的API说明 使用方法 第一步,申请密钥(ak),作为访问服务的依据: 第二步,按照请求参 ...