博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

这是一个后台发mail的类 ,用在 http://BugOnline.org 网站上,在系统中使用的很好,特拿出来共享。
用的是.net framework 2.0.

其中用到了.net2.0最新的System.Net.Mail空间,比.net 1.1好用多了。
还有线程类。有兴趣的朋友可以看看。

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

using System.Threading;

namespace com.XXX.SPMS.Common
{
    /// <summary>
    /// Mail 多进程发mail
    /// </summary>
    public class Mail
    {
        private string subject;
        private string body;
        private string[] mailTo;

        /// <summary>
        /// Mail
        /// </summary>
        /// <param name="mailTo"></param>
        /// <param name="subject"></param>
        /// <param name="body"></param>
        public Mail(string[] mailTo, string subject, string body)
        {
            this.mailTo = mailTo;
            this.subject = subject;
            this.body = body;
        }

        /// <summary>
        /// Send a mail no MultiThread
        /// </summary>
        /// <returns></returns>
        public void Send()
        {
            Send(mailTo, subject, body);
        }

        /// <summary>
        /// Send a mail MultiThread
        /// </summary>
        /// <param name="mailTo"></param>
        /// <param name="subject"></param>
        /// <param name="body"></param>
        /// <returns></returns>
        public static void SendAtBackground(string[] mailTo, string subject, string body)
        {
            Mail newMail = new Mail(mailTo, subject, body);
            Thread thread = new Thread(new ThreadStart(newMail.Send));
            thread.Start();
        }

        /// <summary>
        /// Send
        /// </summary>
        /// <returns></returns>
        private static bool Send(string[] mailTo, string subject, string body)
        {
            MailMessage msg = new MailMessage();
            try
            {
                msg.From = new MailAddress(SPMSConfiguration.MailSender);

                foreach (string address in mailTo)
                {
                    msg.To.Add(address);
                }

                msg.Subject = subject;
                msg.Body = body;

                System.Net.Mail.SmtpClient smtp = new SmtpClient(SPMSConfiguration.SmtpServer);
                smtp.Credentials = new NetworkCredential(SPMSConfiguration.SmtpCredential, SPMSConfiguration.CredentialPassword);

                smtp.Send(msg);
            }
            catch (Exception)
            {
            }
            return true;
        }
    }
}

------
http://BugOnline.org 在线的Bug管理网站
http://spaces.msn.com/fanciex/