发送邮件类

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Net.Mail;
using System.Net.Mime;
using System.Web;
using MoShi.Common.Utilities.Log4Net;
using MoShi.UI.Common;

namespace SendService.Email
{
    /// <summary>
    /// 邮件发送类
    /// </summary>
    public class EmailManager
    {
        /// <summary>  
        /// 添加附件  
        /// </summary>  
        public void Attachments(string Path)
        {
            string[] path = Path.Split(',');
            Attachment data;
            ContentDisposition disposition;
            for (int i = 0; i < path.Length; i++)
            {
                data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化 附件  
                disposition = data.ContentDisposition;
                disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取 附件的创建日期  
                disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);// 获取附件的修改日期  
                disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附 件的读取日期  
                mailMessage.Attachments.Add(data);//添加到附件中  
            }
        }

        /// <summary>
        /// 异步发送邮件
        /// </summary>
        /// <param name="to"></param>
        /// <param name="title"></param>
        /// <param name="body"></param>
        /// <param name="CompletedMethod"></param>
        /// <returns></returns>
        public bool SendAsync(string to, string title, string body, SendCompletedEventHandler CompletedMethod)
        {
            var result = false;
            try
            {
                var mailMessage = new MailMessage()
           {
               From = new System.Net.Mail.MailAddress(AppSetting.EmailFromAddress),
               Subject = title,
               Body = body,
               IsBodyHtml = true,
               BodyEncoding = System.Text.Encoding.UTF8,
               Priority = System.Net.Mail.MailPriority.Normal
           };
                mailMessage.To.Add(to);

                if (mailMessage != null)
                {
                    var smtpClient = new SmtpClient();
                    smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
                    smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    smtpClient.Host = "smtp." + mailMessage.From.Host;
                    smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件  
                    smtpClient.SendAsync(mailMessage, mailMessage.Body);
                }
            }
            catch (Exception ex) { LogHelper.WriteLog(typeof(EmailManager), ex); }
            return result;
        }

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="to"></param>
        /// <param name="title"></param>
        /// <param name="body"></param>
        /// <returns></returns>
        public static bool Send(string to, string title, string body)
        {
            var result = false;
            try
            {
                var mailMessage = new MailMessage()
                {
                    From = new System.Net.Mail.MailAddress(AppSetting.EmailFromAddress),
                    Subject = title,
                    Body = body,
                    IsBodyHtml = true,
                    BodyEncoding = System.Text.Encoding.UTF8,
                    Priority = System.Net.Mail.MailPriority.Normal
                };
                mailMessage.To.Add(to);

                if (mailMessage != null)
                {
                    var smtpClient = new SmtpClient()
                     {
                         Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, AppSetting.EmailFromPassword),//设置发件人身份的票据  
                         DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
                         Host = "smtp." + mailMessage.From.Host
                     };
                    smtpClient.Send(mailMessage);
                    result = true;
                }
            }
            catch (Exception ex) { LogHelper.WriteLog(typeof(EmailManager), ex); }
            return result;
        }

    }
}

  

posted @ 2015-10-28 14:24  Czhipu  阅读(72)  评论(0)    收藏  举报