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

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>");
            }
        }

(0)

相关推荐

  • c#调用qq邮箱smtp发送邮件修改版代码分享

    复制代码 代码如下: try            {                MailMessage mm = new MailMessage();                MailAddress Fromma = new MailAddress("xxxx@qq.com");                MailAddress Toma = new MailAddress("MMMMMMM@qq.com", null);              

  • C#实现SMTP邮件发送程序实例

    通常来说邮件发送功能在网站应用程序中经常会用到,包括大家经常看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,本文展示了一个客户端Demo,希望对有需要的朋友有所帮助.运行效果如下图所示: 核心代码如下: 复制代码 代码如下: using System; using System.Net; using System.Net.Mail; using System.Text; namespace HC.Email {     /// <summary>   

  • C# 邮件地址是否合法的验证

    复制代码 代码如下: /// <summary> /// 检测输入的邮件地址strEmail是否合法,非法则返回true. /// </summary> public bool CheckEmail(string strEmail) { int i, j; string strTmp, strResult; string strWords = "abcdefghijklmnopqrstuvwxyz_-.0123456789"; //定义合法字符范围 bool b

  • C# 邮件发送和接收实现代码

    邮件发送 方法一:使用System.Web.Mail命名空间(此方法我测试没有成功过)  复制代码 代码如下: #region 发送邮件:此方法失败 protected void SendFailed() { System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage(); mail.From = "test@ gmail.com"; mail.To = " test@ gmail.com "

  • C#使用windows服务发送邮件

    最近做了一个使用 C# 写了一个发送邮件的windows 服务,在这里记录一下. 首先使用 Visual Studio 2015 创建一个 windows 服务项目. 然后在设计器上面右击添加安装程序.如下图. 安装好后,选择安装程序设计界面,选择服务和安装程序右击选择属性修改一些属性值. PS:如果不给服务添加安装程序,后面是没法把服务安装至 windows 系统里的. 在数据库创建一个表,用于存储需要发送的邮件信息. create table MainInfo ( MainInfoID in

  • C#实现发送邮件的三种方法

    本文实例讲述了C#实现发送邮件的三种方法.分享给大家供大家参考.具体方法分析如下: 一.问题: 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大家共同学习学习. 二.实现代码: 通过.Net FrameWork 2.0下提供的"System.Net.Mail"可以轻松的实现,本文列举了3种途径来发送: 1.通过Localhost: 2.

  • c#实现服务器性能监控并发送邮件保存日志

    客户端代码 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;using System.Text;using System.Threading;using System.Management;using System.Configurat

  • C#中发送邮件代码

    始找的代码只能发送无SMTP验证的邮件,但现在很多EMAIL发送时都需要验证,后来查找了下MSDN的帮助,找到了发送验证的代码,贴出来希望对大家有所帮助! 复制代码 代码如下: public static int sendmail(string to, string body,string subject) { try { int nContain = 0; ///添加发件人地址 string from = "你的发送EMAIL"; MailMessage mailMsg = new

  • C#.NET采用HTML模板发送电子邮件完整实例

    本文实例讲述了C#.NET采用HTML模板发送电子邮件的方法,是非常实用的技巧.分享给大家供大家参考.具体方法如下: 要使用html模板进行发送邮件,需要准备以下几项工作: 1)HTML模板 2)替换函数(替换模板中绑定的变量) 3)邮件函数(发送邮件) 一.HTML模板 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

  • C#通过POP3获取邮件的代码(正文和附件)

    使用方法: 获取第1封邮件 复制代码 代码如下: Zgke.Net.POP3 _Popt = new Zgke.Net.POP3("192.168.0.1", 110); DataTable _Mail = _Popt.GetMail("zk", "zk", 1); 返回DataTable 数据内容为 Type为类型 Text为文字 如果是附件 为byte[] Name 如果是附件里存放的为文件名  下面是全部的类 复制代码 代码如下: usin

随机推荐