这篇文章主要介绍如何使用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. [Python] UTF-8最好不要带BOM

    一.问题回顾: 问题: 在写一个脚本读入IP分区表文件到list并做比较的时候,发现该成立的语句总是不成立,经调试后发现开头是这样:\xef\xbb\xbf1.0.3.0,故比较不成功. 解决办法:经 ...

  2. [转载]socket下server端支持多客户端并发访问简单实现

    /*Author: wainiwann *Source: 博客园 http://www.cnblogs.com/wainiwann *Remarks:  转载请说明出处!!! */ 感觉很不错,可以学 ...

  3. eclipse中输入@符号自动提示Annotation

    将Eclipse中Content Assist中的Auto activation for java里.的后面加上@符号即可

  4. xss 和 csrf攻击详解

    在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 已经成了普遍用法,我们已经离 SQL 注入很远了.但是,历史同 ...

  5. google protobuf 简单实例

    1.定义proto文件: User.proto package netty; option java_package="myprotobuf"; option java_outer ...

  6. Eclipse中对Python代码自动格式化!

    在Eclipse中使用PyDev发现无法进行代码格式化,使用通常的"Ctrl+Shift+F"快捷键,没有任何变化,难道不能对python代码格式化了吗? 通过下面设置,就可以每次 ...

  7. [Flex] ButtonBar系列——简单布局

    <?xml version="1.0" encoding="utf-8"?> <!--通过layout属性,设置ButtonBar布局--&g ...

  8. 朗逸2011款 1.4t 清除保养告警灯

    朗逸2011款 1.4t 清除保养告警灯 Posted on 2015-03-01 21:06 编辑 仪表盘上有两个按钮 按住右边set键,钥匙旋转到通电状态,保持2s. 放掉set,按左边的切换按钮 ...

  9. 使用tcpdump+Wireshark(或Fiddler)做linux服务器的网络请求分析

    我们的服务器上,一般都没有窗口界面,这时候要抓包,用tcpdump是最方便的.而分析网络请求时,wireshark又是相当方便的,这时候我们就需要把它们两个一起来使用了. tcpdump 抓取数据 命 ...

  10. ZOJ 3329 【概率DP】

    题意: 给你三个均匀k面筛子. 分别有k1 k2 k3个面,每个面朝上的概率是相等的. 如果第一个筛子出现a第二个筛子出现b第三个筛子出现c那么置零. 否则在当前和加上三个点数之和. 求当前和大于n需 ...