C# Mail 发送邮件

using System;
using System.Net.Mail;
using System.Net;

namespace AmwITx.Framework.Components
{
    public class MailPass
    {
        /// <summary>
        /// 发送邮件服务器
        /// </summary>
        public string SmtpServer { get; set; }
        /// <summary>
        /// 发送邮箱帐号
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 发送邮箱密码
        /// </summary>
        public string PassWord { get; set; }
        /// <summary>
        /// 发送地址
        /// </summary>
        public string FromMail { get; set; }
    }

    public class MailParameter
    {
        /// <summary>
        /// 邮件主题
        /// </summary>
        public string Subject { get; set; }
        /// <summary>
        /// 发件人公司
        /// </summary>
        public string IncName { get; set; }
        /// <summary>
        /// 接收地址
        /// </summary>
        public string ToMail { get; set; }
        /// <summary>
        /// 抄送"邮箱名,邮箱名......"
        /// </summary>
        public string BccMail { get; set; }
        /// <summary>
        /// 邮件内容
        /// </summary>
        public string MailContent { get; set; }
    }

    public class MailService
    {
        /// <summary>
        /// 发送邮件
        /// </summary>
        public static MailResult Send(MailPass pass, MailParameter parameter)
        {
            if (string.IsNullOrEmpty(pass.SmtpServer))
                throw new Exception("parameter server not null");
            var sendResult = new MailResult();
            try
            {
                var frommail = parameter.IncName + "<" + pass.FromMail + ">";
                var mail = new MailMessage(pass.FromMail, parameter.ToMail);

                mail.Subject = parameter.Subject;
                mail.IsBodyHtml = true;
                mail.Body = parameter.MailContent;

                //抄送给多人
                if (!string.IsNullOrEmpty(parameter.BccMail))
                {
                    var bccmails = parameter.BccMail.Split(',');
                    foreach (var bcc in bccmails)
                    {
                        mail.Bcc.Add(bcc);
                    }
                }

                mail.Sender = new MailAddress(frommail);
                mail.SubjectEncoding = System.Text.Encoding.GetEncoding("utf-8");

                var client = new SmtpClient(pass.SmtpServer);

                client.Credentials = new NetworkCredential(pass.UserName, pass.PassWord);
                client.UseDefaultCredentials = true;
                client.Send(mail);

                sendResult.IsSuccess = true;
            }
            catch (Exception ex)
            {
                sendResult.IsSuccess = false;
                sendResult.ErrorMessage = ex.Message;
            }
            return sendResult;
        }
    }
    public class MailResult
    {
        /// <summary>
        /// 是否发送成功
        /// </summary>
        public bool IsSuccess { get; set; }
        /// <summary>
        /// 错误信息
        /// </summary>
        public string ErrorMessage { get; set; }
        /// <summary>
        /// 字符串
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return IsSuccess + "|" + ErrorMessage;
        }
    }
}
posted @ 2010-07-15 17:02  黄靖洆  阅读(349)  评论(0编辑  收藏  举报