C#邮件发送

  这篇文章主要介绍如何使用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","[email protected]"};//接收者邮件集合

            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

 

 

 

你可能感兴趣的:(邮件发送)