首页 > 代码库 > 发送邮件

发送邮件

一、调用发送邮件

public void SendEmail()        {            SendEmailParam param = new SendEmailParam();            param.Host = "smtp.163.com";//如果是QQ邮箱则:smtp:qq.com,依次类推            param.IsBodyHtml = true;            param.MailBody = "<h1>哈哈哈,我是正文</h1>";            param.MailFrom = "********@163.com";            param.MailPwd = "*********";            param.MailSubject = "我是Subject";            //收件集合人            param.ReceiverList = new List<string>();            param.ReceiverList.Add("********@qq.com");            //抄送人集合            param.MailCcArray = new List<string>();            param.MailCcArray.Add("*********@qq.com");            //附件            param.AttachmentList = new List<string>();            param.AttachmentList.Add(@"G:\11111.sql");            //同步发送一个            MailHelper.DefaultMail.SyncSendEmail(param);            //异步发送一个            MailHelper.DefaultMail.AsyncSendEmail(param);        }

 

二、邮件辅助

public class MailHelper    {        public static readonly MailHelper DefaultMail = new MailHelper();        private object obj = new object();        private Thread thread = null;        /// <summary>        /// 同步发送邮件        /// </summary>        /// <param name="param"></param>        /// <returns></returns>        public bool SyncSendEmail(SendEmailParam param)        {            if (param.ReceiverList == null                 || param.ReceiverList.Count <= 0)            {                new Exception("请提供收件人.");            }            MailAddress mailAddress = new MailAddress(param.MailFrom);            MailMessage mailMessage = new MailMessage();            //收件人集合            if (param.ReceiverList!=null)            {                foreach (var item in param.ReceiverList)                {                    mailMessage.To.Add(item);                }            }            //抄送收件人集合            if (param.MailCcArray!=null)            {                foreach (var item in param.MailCcArray)                {                    mailMessage.CC.Add(item);                }            }            //发件人地址            mailMessage.From = mailAddress;            //邮件标题            mailMessage.Subject = param.MailSubject;            //邮件标题编码            mailMessage.SubjectEncoding = Encoding.UTF8;            //邮件正文            mailMessage.Body = param.MailBody;            //邮件正文编码            mailMessage.BodyEncoding = Encoding.UTF8;            mailMessage.Priority = MailPriority.High;            mailMessage.IsBodyHtml = param.IsBodyHtml;            //添加附件            try            {                if (param.AttachmentList != null && param.AttachmentList.Count > 0)                {                    foreach (var item in param.AttachmentList)                    {                        if (!System.IO.File.Exists(item))                        {                            continue;                        }                        Attachment attachFile = new Attachment(item);                        mailMessage.Attachments.Add(attachFile);                    }                }            }            catch (Exception ex)            {                throw new Exception("添加附件时出错:" + ex.Message);            }            SmtpClient smtp = new SmtpClient();            //指定发件人的邮件地址和密码以验证发件人身份            smtp.Credentials = new System.Net.NetworkCredential(param.MailFrom, param.MailPwd);            //设置SMTP邮件服务器            smtp.Host = param.Host;            //发送邮件            try            {                lock (obj)                {                    smtp.Send(mailMessage);                }                return true;            }            catch (Exception ex)            {                throw ex;            }        }        /// <summary>        /// 异步发送邮件        /// </summary>        /// <param name="param"></param>        /// <returns></returns>        public void AsyncSendEmail(SendEmailParam param)        {            thread = new Thread(new ParameterizedThreadStart(AsyncSendEmail));            thread.Start(param);        }        private void AsyncSendEmail(object obj)        {            try            {                this.SyncSendEmail(obj as SendEmailParam);            }            catch (Exception ex) { }        }    }

 

三、实体类

public class SendEmailParam    {        /// <summary>        /// 发送者邮箱        /// </summary>        public string MailFrom { get; set; }        /// <summary>        /// 发送者邮箱密码        /// </summary>        public string MailPwd { get; set; }        /// <summary>        /// 邮件主题        /// </summary>        public string MailSubject { get; set; }        /// <summary>        /// 邮件正文        /// </summary>        public string MailBody { get; set; }        /// <summary>        /// 正文是否是HTML格式        /// </summary>        public bool IsBodyHtml { get; set; }        /// <summary>        /// 邮件服务器        /// </summary>        public string Host { get; set; }        /// <summary>        /// 收件人邮件集合        /// </summary>        public List<string> ReceiverList { get; set; }        /// <summary>        /// 抄送者邮件集合        /// </summary>        public List<string> MailCcArray { get; set; }        /// <summary>        /// 附件集合        /// </summary>        public List<string> AttachmentList { get; set; }    }

 

发送邮件