C#使用MailAddress类发送html格式邮件的实例代码

 更新时间:2013年11月27日 14:50:30   作者:  
这篇文章主要介绍如何使用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#实现拼图游戏

    C#实现拼图游戏

    这篇文章主要为大家详细介绍了C#实现拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C#版Windows服务安装卸载小工具

    C#版Windows服务安装卸载小工具

    这篇文章主要为大家推荐了一款C#版Windows服务安装卸载小工具,小巧灵活的控制台程序,希望大家喜欢,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • C#多维数组学习使用

    C#多维数组学习使用

    当下, 由于存储结构需要, 用多维数组, 顺便学习了一下, 将学习经过备忘如下
    2012-09-09
  • C#实现文件操作(复制,移动,删除)的方法详解

    C#实现文件操作(复制,移动,删除)的方法详解

    File类提供了常见的文件操作函数,包括复制、移动、删除、创建快捷方式等,本文将通过一些简单的示例为大家详细讲讲具体的使用,希望对大家有所帮助
    2023-05-05
  • C# wpf使用DockPanel实现制作截屏框

    C# wpf使用DockPanel实现制作截屏框

    做桌面客户端的时候有时需要实现截屏功能,能够在界面上框选截屏,本文就来为大家介绍一下wpf如何使用DockPanel制作截屏框吧,感兴趣的可以了解下
    2023-09-09
  • c#实现在图上画汉字

    c#实现在图上画汉字

    这篇文章主要介绍了c#实现在图上画汉字方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • C# FileStream实现大文件复制

    C# FileStream实现大文件复制

    这篇文章主要为大家详细介绍了C# FileStream实现大文件复制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • C#中的委托和事件详解

    C#中的委托和事件详解

    本文详细讲解了C#中的委托和事件,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#实现创建标签PDF文件的示例代码

    C#实现创建标签PDF文件的示例代码

    标签PDF文件包含描述文档结构和各种文档元素顺序的元数据,是一种包含后端提供的可访问标记,管理阅读顺序和文档内容表示的逻辑结构的PDF文件。本文将用C#实现创建标签PDF文件,需要的可以参考一下
    2022-08-08
  • C# 对XML基本操作代码总结

    C# 对XML基本操作代码总结

    C# 对XML基本操作包括读取节点的数据,添加节点。读取节点属性,修改节点属性等
    2011-10-10

最新评论