作者c邮件群发系统代码解析

邮件群发系统  时间:2021-01-31  阅读:()

概要

子线程工作发送成功邮件做标记逐条提取数据气泡提示信息最小化到托盘实时进度条

代码us ing System;us ing System.Collections;us ing System.Collections.Generic;using System.ComponentModel;using System.Data;us ing System.Data.OleDb;us ing System.Threading;using System.Text;using System.Windows.Forms;us ing System.Net.Mail;us ing System.Net;us ing System.Text.RegularExpress ions;names pace M ailGroup Sends

{public partial class Form1 :Form

{public Form1()

{

Initialize Comp onent();

}private string subject=string.Empty;private string mailto=string.Empty;private string body=string.Empty;private int sucNum=0;private int TotalDate

{get

{if(this.txtDateCount.Text.Trim().Length>0)return Convert.ToInt32(this.txtDateCount.Text.Trim());return 4;

}set { this.txtDateCount.Text=value.ToString(); }

}private string ConnString

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

{get

{string pathFull=

Sys tem.Diagn ostics.Pro ces s.GetCurrentPro ces s().M ainModu le.FileName;string path=pathFull.Substring(0,pathFull.LastIndexOf(@"\"));return@"Provider=Micros oft.Jet.OLEDB.4.0;Data Source="+path+@"\mail.mdb";

}

}private bool mailSent=false; //邮件是否发送成功private int mailTotalCount=0;private int CategoryId=0;private int SentCount=0; //已发送数private int UnitConversion=1; //默认为秒

///<summary>

///发送间隔

///</summary>private int Interval

{get

{int timer=0;int totalMis=(TotalDate*UnitConvers ion* 1000);timer=to talM is / (mailTo talCount-S entCount);return timer;

}

}

///<summary>

///提取邮件

///</summary>private void InitMailList()

{

O leDbConnection Conn=new OleDbConnection(ConnString);try

{string strWhere=CategoryId==1000? "" : "and categoryid="+CategoryId+"orderby isSend,uyx";string sqlStr=@"select top 1 uyxfrom[usermail]where isDelete=0 and IsSend=0"+strWhere;if(Conn.State==ConnectionState.Clos ed)Conn.Open();

OleDb Command cmd=new OleDb Command(s qlStr,Conn);

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

OleDbDataReader reader=cmd.ExecuteReader();mailto=string.Empty;wh ile(re ad er.Re ad())

{mailto+=reader[0].To String()+",";

}reader.Clos e();if(reader!=null)reader.Dispos e();mailto=mailto.Trim(",".ToCharArray());

}catch(Exception ex)

{

Mess ageBox.Show(ex.Mess age,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);

}fin a lly

{if(Conn.State==Connection State.Open)Conn.Clo se();if(Conn!=null)Conn.Disp ose();

}

}

///<summary>

///加载邮件列表

///</summary>private void LoadMailList()

{this.dataGridView 1.Co lumn s.Clear();if(this.dataGridView 1.Rows.Count>0)this.dataGridView 1.Rows.Cle ar();dataGridView1.RowHeadersWidth=21;

DataGridViewTextBo xColumn column=new DataGridViewTextBo xColumn();column.ReadOnly=true;column.HeaderText="邮箱列表";column.DisplayIndex=0;column.Name="邮箱列表";column.Width=120;dataGrid View1.Columns.Add(column);column=new DataGridViewTextBo xColumn();column.ReadOnly=true;column.HeaderText="状态";column.DisplayIndex=1;

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

dataGrid View1.Columns.Add(column);

O leDbConnection Conn=new OleDbConnection(ConnString);try

{string strWhere=CategoryId==1000?"" : "and categoryid="+CategoryId+"orderby isSend,uyx";string sql=@"select uyx,Is Send fromusermail where isDelete=0"+strWhere;if(Conn.State==ConnectionState.Clos ed)Conn.Open();

OleDbCommand cmd=new OleDbCommand(s ql,Conn);

OleDbDataReader reader=cmd.ExecuteReader();mai lTo talCo unt=0;wh ile(re ad er.Re ad())

{

DataGridViewRow dgvr=new DataGridViewRow();

DataGridViewTextBo xCell cell=new DataGridViewTextBo xCe ll();cell.Value=reader[0].To String();dgvr.Ce lls.A dd(c e ll);cell=new DataGridViewTextBo xCell();cell.Value="●";c ell.Style.ForeCo lor=Convert.To Int32(reader[1])==0?

Sys tem.Drawin g.Co lo r.Ye l lo w:Sy s t em.Drawin g.Co lo r.Gre en;dgvr.Ce lls.A dd(c e ll);dataGridView 1.Rows.Add(dgvr);ma ilT o t a lCo un t++;

}reader.Clos e();if(reader!=null)reader.Dispos e();this.lb lmai lCount.Text=" "+SentCount+"/"+mailTotalCount+" ";

}catch

{

}fin a lly

{if(Conn.State==Connection State.Open)Conn.Clo se();if(Conn!=null)Conn.Dispose();

}

}

///<summary>

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

///已发送邮件个数

///</summary>private void SentMailCount()

{

O leDbConnection Conn=new OleDbConnection(ConnString);try

{string strWhere=CategoryId==1000? "" : "and categoryid="+CategoryId;string sqlStr=@"select uyxfrom[usermail]where isDelete=0 and IsSend=1 "+strWhere;if(Conn.State==ConnectionState.Clos ed)Conn.Open();

OleDbDataAdapter adapter=new OleDbDataAdapter(sqlStr,Conn);

DataSet ds=new DataSet();a d ap te r.F ill(d s);

SentCount=ds.Tab les[0].Ro ws.Count;

}catch(Exception ex)

{

Mess ageBox.Show(ex.Mess age,"错误",MessageBoxButtons.OK,

MessageBoxIcon.Error);

}fin a lly

{if(Conn.State==Connection State.Open)Conn.Clo se();if(Conn!=null)Conn.Dispose();

}

}

///<summary>

///标记出错的邮箱

///</summary>

///<p aram name="mail"></p aram>private void MarkErrorMail(string mail)

{

O leDbConnection Conn=new OleDbConnection(ConnString);try

{string sql="update usermail set IsDelete=10 where uyx='"+mail+"' ";if(Conn.State==ConnectionState.Clos ed)Conn.Open();

OleDb Command cmd=new OleDbCommand(s ql,Conn);cmd.ExecuteNonQuery();

}catch

{ }

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

{if(Conn.State==Connection State.Open)Conn.Clo se();if(Conn!=null)Conn.Disp ose();

}

}

///<summary>

///修改已发送邮件状态

///</summary>

///<p aram name="mail"></p aram>private void UpdateMailState(string mail, int state)

{

O leDbConnection Conn=new OleDbConnection(ConnString);try

{string where=string.Empty;if(ma il.Length>0)

{

WriteToTxt(DateTime.Now+" Success "+mail, txtLogPath);if(ma il.In d e xO f(",")>-1)'")+"' ";where="and uyx='"+mail+"'";

}e ls e

{where="and IsSend=1";

}string category=CategoryId==1000? "" : "and categoryid="+CategoryId;string sql="update usermail set Is Send="+state+"where IsDelete=0"+category+wh e re;if(Conn.State==ConnectionState.Clos ed)Conn.Open();

OleDb Command cmd=new OleDbCommand(s ql,Conn);cmd.ExecuteNonQuery();

}catch

{ }fin a lly

{if(Conn.State==Connection State.Open)Conn.Clo se();if(Conn!=null)Conn.Disp ose();

}

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

}

///<summary>

///邮件发送

///</summary>

///<p aram n ame="mailTo"></p aram>

///<p aram name="subject"></p aram>

///<p aram name="body"></param>

///<re tu rns></re tu rns>private bool Send(string mailTo, string subject,string body)

{try

{if(!Is Ema il(mailTo))

{

WriteToTxt(DateTime.Now+" Faild "+mailTo, txtLogPath+"Error Message:邮箱格式不正确");

M arkErro rM ail(mai lT o);return fals e;

}if(ma ilTo.Substring(mailTo.Length- 1)=="." | |mai lTo.Substring(mailTo.Length- 1)==",")

{

WriteToTxt(DateTime.Now+" Faild "+mailTo, txtLogPath+"Error Message:邮箱格式不正确");

M arkErro rM ail(mai lT o);return fals e;

}

MailMessage msg=new MailMessage();ms g.From=new MailAddress("***@****","xiaoyaos r",Enco ding.UTF8);if(ma ilT o.In d e xO f(",")>-1)ms g.Bc c.Add(mailTo);e ls ems g.To.A dd(mailTo);msg.Subject=subject;ms g.Body=body;

ArrayList annexList=ReadTxt(txtAnnexPath);for(int i=0; i<annexList.Count; i++)

{msg.Attachments.Add(new Attachment(annexList[i].ToString()));

}

S mtpClient s mtp=new SmtpClient("mail.163.com");

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

s mtp.Credentials=new NetworkCredential("***@****", "*******");smtp.Send(msg);mailSent=true;sucNum++;

}catch(Exception ex)

{if(ex.Mess age.IndexOf("http://www.ipmotor.com/smtp_err.htm")>-1)

{

WriteToTxt(DateTime.Now+" Faild Error Message:"+ex.Message,txtLogPath);this.notifyIcon 1.ShowBallo onTip(Interval, "",ex.Me ssage,Too lTip Icon.None);

System.Threading.Thread.Sleep(Interval*2);base.Dispose(true);

App lication.ExitThread();

Ki llTh re a d();

}

WriteToTxt(DateTime.Now+" Faild "+mailTo+" Error Message:"+ex.Message, txtLogPath);

M ark Erro rM a il(ma ilT o);mailSent=false;

}return mailSent;

}

//*******************************************************************//

//开始发送public void StartMailSend()

{

MailSend mailSend=new MailSend();ma i lS e n d.iT ot a lCount=ma ilT o t a lCo unt;ma i lS e n d.int e rva l=In t e rva l;mailSend.iSentCount=SentCount;mai lSend.onM ailSendProgres s+=new

M ailS end.dM ailS endProgres s(mailS en d_o nM ailS endProgres s);mailSend.Start();

}

//同步更新void mailSend_onMailSendProgress(int total, int current)

{try

作者逍遥散人 Blog:http://xiaoyaosrblog 51cto com

个人网站备案流程及注意事项(内容方向和适用主机商)

如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...

PhotonVPS:美国Linux VPS半价促销2.5美元/月起,可选美国洛杉矶/达拉斯/芝加哥/阿什本等四机房

photonvps怎么样?photonvps现在针对旗下美国vps推出半价促销优惠活动,2.5美元/月起,免费10Gbps DDoS防御,Linux系统,机房可选美国洛杉矶、达拉斯、芝加哥、阿什本。以前觉得老牌商家PhotonVPS贵的朋友可以先入手一个月PhotonVPS美国Linux VPS试试了。PhotonVPS允许合法大人内容,支持支付宝、paypal和信用卡,30天退款保证。Photo...

Hostodo:$19.99/年KVM-1GB/12GB/4TB/拉斯维加斯

Hostodo发布了几款采用NVMe磁盘的促销套餐,从512MB内存起,最低年付14.99美元,基于KVM架构,开设在拉斯维加斯机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,数据中心目前在拉斯维加斯和迈阿密,支持使用PayPal或者支付宝等付款方式。下面列出几款NVMe硬盘套餐配置信息。CPU:1core内存:512MB...

邮件群发系统为你推荐
电脑杀毒软件哪个好电脑什么杀毒软件最好电热水器和燃气热水器哪个好电热水器和燃气热水器哪个好?苹果手机助手哪个好iphone有什么比较好用的软件!海克斯皮肤哪个好诺手二周年皮肤好不好,和海克斯那个比哪个好,二周年属于稀有吗美国国际集团美国AIG股票,值得长远投资吗??qq空间登录不了登陆不了QQ空间qq空间登录界面强行进入别人qq空间qq网盘在哪里QQ网盘在哪??????网通dns服务器地址湖北省鄂州市葛店镇DNS服务器IP地址是多少360云存储360网盘好使吗?
vps是什么意思 国外vps主机 新通用顶级域名 国外主机 winhost 国外服务器网站 wordpress技巧 天猫双十一秒杀 免费ftp站点 柚子舍官网 移动服务器托管 网通服务器 linode支付宝 游戏服务器出租 中国域名 华为k3 摩尔庄园注册 学生服务器 杭州电信宽带 好看的空间 更多