多线程发Mail的代码,用了.net 2.0 新的Mail类和线程类,目前用在 http://BugOnline.org 网站上
Posted on 2006-03-20 10:22 fanciex 阅读(720) 评论(1) 编辑 收藏 举报这是一个后台发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/