基本信息
源码名称:C# 邮件群发 示例代码
源码大小:3.60KB
文件格式:.cs
开发语言:C#
更新时间:2015-07-15
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
C#群发邮件
using System;
using System.Collections.Generic;
using System.Text;
using MassSendEmail.model;
using System.Net;
using System.Net.Mail;
using MassSendEmail.util;
using System.Threading;
using System.Collections;
namespace MassSendEmail.control
{
public class ResultArgs:EventArgs
{
private EmailAddressInfo resultEmailInfo = null;
public EmailAddressInfo ResultEmailInfo
{
get { return resultEmailInfo; }
}
public ResultArgs(EmailAddressInfo info)
{
resultEmailInfo = info;
}
}
public class EmailManager
{
private bool _isdisposed_ = false;
private bool _issend_right_now_ = false;
private Thread thread_;
private List<string> emailList = new List<string>();
private MailMessage myMail;
private SmtpClient smtp;
public event EventHandler<ResultArgs> SendCompleted;
public EmailManager()
{
thread_ = new Thread(new ThreadStart(SendEmailSync));
thread_.Start();
}
private void OnSendCompleted(EmailAddressInfo info)
{
if (SendCompleted != null)
{
SendCompleted(this,new ResultArgs(info));
}
}
private bool sendEmail(string info)
{
try
{
myMail = new MailMessage();
myMail.From = new MailAddress(ConfigHandle.addressfrom, ConfigHandle.displayname);
myMail.To.Add(new MailAddress(info));
myMail.Subject = "武汉宜家美居装饰工程";
myMail.SubjectEncoding = Encoding.UTF8;
myMail.Body = ConfigHandle.sendcontent;
myMail.BodyEncoding = Encoding.UTF8;
myMail.IsBodyHtml = true;
smtp = new SmtpClient();
smtp.Host = "smtp.qq.com";
smtp.Credentials = new NetworkCredential(ConfigHandle.addressfrom, ConfigHandle.password);
smtp.Send(myMail);
return true;
}
catch(Exception ex) {
return false;
}
}
public void AddEmail(List<string> list)
{
lock (((ICollection)(emailList)).SyncRoot)
{
foreach (var temp in list)
{
emailList.Add(temp);
}
}
}
public void dispose()
{
_isdisposed_ = true;
thread_.Abort();
}
private void SendEmailSync()
{
bool flag = false;
while (true)
{
if (_isdisposed_)
break;
lock (((ICollection)(emailList)).SyncRoot)
{
if (emailList.Count != 0)
{
try
{
flag = sendEmail(emailList[0]);
OnSendCompleted(new EmailAddressInfo()
{
Address_content = emailList[0],
Successed = flag
});
emailList.RemoveAt(0);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
}
}