发送邮件方法提取(MailHelper)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace  Common.Helper
{
    public class MailHelper
    {
        private static string MAIL_HOST = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["MailIP"]);                         //邮件发送服务器
        private static string MAIL_FROM_PASSWORD = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["SendMailPWD"]);           //发送邮件账号密码
        private static string MAIL_FROM_ADDRESS = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["SendMailAddress"]);        //发送邮件地址
        private static string MAIL_FROM_DISPLAYNAME = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["SendMailDisplayName"]);//发送邮件账号密码
        /// <summary>
        /// 发送电子邮件函数
        /// </summary>
        /// <param name="mailHost">电子邮件服务主机名称</param>
        /// <param name="mailFrom">发送人地志</param>
        /// <param name="mailFromPWD">发信人密码</param>
        /// <param name="mailTo">收信人地址</param>
        /// <param name="mailTitle">邮件标题</param>
        /// <param name="mailContent">邮件内容</param>
        /// <param name="isHtml">是否采用HTML编码</param>
        /// <param name="files">附件</param>
        /// <returns>操作结果</returns>
        public static string SendMail(string mailHost, string mailFrom, string mailFromPWD, string mailTo, string mailTitle, string mailContent, bool isHtml, string[] files)
        {
            string logMsg = string.Empty;
            logMsg = string.Format("发送邮件从{0}至:{1}, 邮件内容:{2}", mailFrom, mailTo, mailContent);
         

            #region 发送电子邮件
            //电子邮件附件
            Attachment data = null;
            //传送的电子邮件类
            //MailMessage message = new MailMessage(mailFrom, mailTo);
            MailMessage message = new MailMessage();
            string[] mailToList = mailTo.Split(',');
            foreach (string mailAddress in mailToList)
            {
                if (!string.IsNullOrEmpty(mailAddress.Trim()))
                {
                    message.To.Add(mailTo);
                }
            }
            message.From = new MailAddress(mailFrom, MAIL_FROM_DISPLAYNAME);
            message.Subject = mailTitle;                                       //设置标题
            message.Body = mailContent;                                        //设置内容
            message.IsBodyHtml = isHtml;                                       //是否采用HTML编码
            message.Priority = MailPriority.Normal;                            //电子邮件的优先级别
            message.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312"); //内容采用的编码方式
            try
            {
                //添加附件
                if (files != null && files.Length > 0)
                {
                    for (int i = 0; i < files.Length; i++)
                    {
                        //实例话电子邮件附件,并设置类型
                        data = new Attachment(files[i], System.Net.Mime.MediaTypeNames.Application.Octet);
                        System.Net.Mime.ContentDisposition disposition = data.ContentDisposition; //实例邮件内容
                        disposition.CreationDate = System.IO.File.GetCreationTime(files[i]);//取得建档日期
                        disposition.ModificationDate = System.IO.File.GetLastWriteTime(files[i]);//取得附件修改日期
                        disposition.ReadDate = System.IO.File.GetLastAccessTime(files[i]); //取得读取日期
                        System.IO.FileInfo fi = new System.IO.FileInfo(files[i]);
                        disposition.FileName = fi.Name.ToString();//设定文件名称
                        message.Attachments.Add(data);//添加附件
                    }
                }

                SmtpClient client = new SmtpClient();  //实例从送电子邮件类
                client.Host = mailHost; //设置电子邮件主机名称
                client.Credentials = new NetworkCredential(mailFrom, mailFromPWD); //取得寄信人认证
                //发送电子邮件
                client.Send(message);
                return "邮件发送成功";
            }
            catch (Exception Err)
            {
                //返回错误信息
                return Err.Message;
            }
            finally
            {
                //销毁电子邮件附件
                if (data != null)
                {
                    data.Dispose();
                }
                //销毁传送的电子邮件实例
                message.Dispose();
            }
            #endregion
        }
        /// <summary>
        /// 发送电子邮件
        /// </summary>
        /// <param name="mailHost">电子邮件服务主机名称</param>
        /// <param name="mailFrom">发送人地志</param>
        /// <param name="mailFromPWD">发信人密码</param>
        /// <param name="mailTo">收信人地址</param>
        /// <param name="mailTitle">邮件标题</param>
        /// <param name="mailContent">邮件内容</param>
        /// <param name="isHtml">是否采用HTML编码</param>
        /// <returns></returns>
        public static string SendMail(string mailHost, string mailFrom, string mailFromPWD, string mailTo, string mailTitle, string mailContent, bool isHtml)
        {
            return SendMail(mailHost, mailFrom, mailFromPWD, mailTo, mailTitle, mailContent, isHtml, null);
        }

        /// <summary>
        /// 发送电子邮件
        /// </summary>
        /// <param name="mailTo">收信人地址</param>
        /// <param name="mailTitle">邮件标题</param>
        /// <param name="mailContent">邮件内容</param>
        /// <param name="isHtml">是否采用HTML编码</param>
        /// <param name="files">附件</param>
        /// <returns></returns>
        public static string SendMail(string mailTo, string mailTitle, string mailContent, bool isHtml, string[] files)
        {
            return SendMail(MAIL_HOST, MAIL_FROM_ADDRESS, MAIL_FROM_PASSWORD, mailTo, mailTitle, mailContent, isHtml, files);
        }

        /// <summary>
        /// 发送电子邮件
        /// </summary>
        /// <param name="mailTo">收信人地址</param>
        /// <param name="mailTitle">邮件标题</param>
        /// <param name="mailContent">邮件内容</param>
        /// <param name="isHtml">是否采用HTML编码</param>
        /// <returns></returns>
        public static string SendMail(string mailTo, string mailTitle, string mailContent, bool isHtml)
        {
            return SendMail(MAIL_HOST, MAIL_FROM_ADDRESS, MAIL_FROM_PASSWORD, mailTo, mailTitle, mailContent, isHtml, null);
        }

        /// <summary>
        /// 发送电子邮件
        /// </summary>
        /// <param name="mailTo">收信人地址</param>
        /// <param name="mailTitle">邮件标题</param>
        /// <param name="mailContent">邮件内容</param>
        /// <returns></returns>
        public static string SendMail(string mailTo, string mailTitle, string mailContent)
        {
            return SendMail(MAIL_HOST, MAIL_FROM_ADDRESS, MAIL_FROM_PASSWORD, mailTo, mailTitle, mailContent, false, null);
        }
    }
}

 

posted @ 2017-05-27 10:14  王宝会  阅读(250)  评论(0)    收藏  举报