c# MailHelper 发送邮件

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
/*****************************
 * 概要:邮箱
 * 设计者:DuanXuWen
 * 设计时间:20180309
 * 版本:0.1
 * 修改者:
 * 修改时间:
 * ***************************/

namespace Common
{
    public class MailHelper
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public MailHelper() { }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="mailSubject"></param>
        /// <param name="host"></param>
        /// <param name="port"></param>
        /// <param name="mailFrom"></param>
        /// <param name="mailFromPwd"></param>
        /// <param name="mailTo"></param>
        public MailHelper(string mailSubject, string host, int port, string mailFrom, string mailFromPwd, string mailTo)
        {
            MailSubject = mailSubject;
            Host = host;
            Port = port;
            MailFrom = mailFrom;
            MailFromPwd = mailFromPwd;
            MailTo = mailTo;
        }

        #region  邮箱配置

        //邮件主题
        private static string _mailSubject = ConfigurationManager.AppSettings["MailSubject"].ToString();
        /// <summary>
        /// 邮件主题
        /// </summary>
        public static string MailSubject
        {
            get
            {
                return _mailSubject;
            }
            set
            {
                _mailSubject = value;
            }
        }

        //邮箱服务器地址
        private static string _host = ConfigurationManager.AppSettings["Host"].ToString();
        /// <summary>
        /// 邮箱服务器地址
        /// </summary>
        public static string Host
        {
            get
            {
                return _host;
            }
            set
            {
                _host = value;
            }
        }

        //邮箱端口
        private static int _port = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]);
        /// <summary>
        /// 邮箱端口
        /// </summary>
        public static int Port
        {
            get
            {
                return _port;
            }
            set
            {
                _port = value;
            }
        }

        //邮箱发件人
        private static string _mailFrom = ConfigurationManager.AppSettings["MailFrom"].ToString();
        /// <summary>
        /// 邮箱发件人
        /// </summary>
        public static string MailFrom
        {
            get
            {
                return _mailFrom;
            }
            set
            {
                _mailFrom = value;
            }
        }

        //邮箱发件人密码
        private static string _mailFromPwd = ConfigurationManager.AppSettings["MailFromPwd"].ToString();
        /// <summary>
        /// 邮箱发件人密码
        /// </summary>
        public static string MailFromPwd
        {
            get
            {
                return _mailFromPwd;
            }
            set
            {
                _mailFromPwd = value;
            }
        }

        //邮件接收人
        private static string _mailTo = ConfigurationManager.AppSettings["MailTo"].ToString();
        /// <summary>
        /// 邮件接收人
        /// </summary>
        public static string MailTo
        {
            get
            {
                return _mailTo;
            }
            set
            {
                _mailTo = value;
            }
        }

        #endregion

        /// <summary>
        /// 发送邮箱(默认配置)
        /// </summary>
        /// <param name="Subject">主题</param>
        /// <param name="strMailBody">内容</param>
        public static void SendMsg(string strMailBody)
        {
            List<string> mailList = new List<string>();
            string[] mailToArray = MailTo.Split(',');
            foreach (var item in mailToArray)
            {
                mailList.Add(item);
            }
            MailMessage mailMessage = MailHelper.CreateMail(MailSubject, strMailBody, MailFrom, mailList, false, null, null);
            MailHelper.Send(mailMessage, Port, Host, MailFrom, MailFromPwd);
        }

        /// <summary>
        /// 创建邮件
        /// </summary>
        /// <param name="Subject">主题</param>
        /// <param name="strMailBody">内容</param>
        /// <param name="From">发件人</param>
        /// <param name="mailTo">收件人</param>
        /// /// <param name="IsBodyHtml">邮件正文是否为html格式</param>
        /// <param name="mailBcc">密抄人</param>
        /// <param name="Attachments">附件</param>
        /// <returns></returns>
        public static MailMessage CreateMail(string subject, string strMailBody, string from, List<string> mailTo, bool isBodyHtml, List<string> mailBcc = null, Attachment attachment = null)
        {
            try
            {
                MailMessage mailMessage = new MailMessage();
                mailMessage.Subject = subject;
                mailMessage.Body = strMailBody;
                mailMessage.From = new MailAddress(from);
                foreach (var to in mailTo)
                {
                    mailMessage.To.Add(to);
                }
                if (mailBcc != null && mailBcc.Count > 0)
                {
                    foreach (var bcc in mailBcc)
                    {
                        mailMessage.Bcc.Add(bcc);
                    }
                }
                if (attachment != null)
                {
                    mailMessage.Attachments.Add(attachment);
                }
                mailMessage.Priority = MailPriority.Normal;
                mailMessage.IsBodyHtml = isBodyHtml;
                return mailMessage;
            }
            catch (Exception ex)
            {
                string msg = "邮件相关错误!详细信息:主题:" + subject + "内容:" + strMailBody + "发件人:" + from + "收件人:" + mailTo + "邮件正文是否为html格式:" + isBodyHtml + "密抄人:" + mailBcc + "附件:" + attachment + "";
                string logAddress = System.Windows.Forms.Application.StartupPath + "\\Log\\ErrorMsg\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
                LogHelper.WriteLog(ex, logAddress, false, msg);
                return null;
            }
        }

        /// <summary>
        /// 发送
        /// </summary>
        /// <param name="mailMsg">邮件主体</param>
        /// <param name="Port">端口</param>
        /// <param name="Host">服务器</param>
        /// <param name="From">发送人</param>
        /// <param name="Pwd">发送人密码</param>
        public static void Send(MailMessage mailMsg, int port, string host, string from, string Pwd)
        {
            try
            {
                if (mailMsg.To.Count > 0)
                {
                    SmtpClient smtpClient = new SmtpClient();
                    smtpClient.Port = port;
                    smtpClient.Host = host;
                    smtpClient.Credentials = new System.Net.NetworkCredential(from, Pwd);
                    smtpClient.Send(mailMsg);
                }
            }
            catch (Exception ex)
            {
                string msg = "邮件相关错误!详细信息:邮件主体:" + mailMsg + "端口:" + port + "服务器:" + host + "发送人:" + from + "发送人密码:" + Pwd + "";
                string logAddress = System.Windows.Forms.Application.StartupPath + "\\Log\\ErrorMsg\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
                LogHelper.WriteLog(ex, logAddress, false, msg);
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值