/// <summary> /// 期刊发行测试,将期刊内容发给测试用户 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTest_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { DataSet ds = new DataSet(); String wheresql = "subscripted='T'"; if (db.GetCustomer(0, 0, "*", wheresql, "", ref ds)) { DataSet ds_Server = new DataSet(); if (db.GetMailServer(0, 0, "*", "", "", ref ds_Server) && ds_Server.Tables[0].Rows.Count > 0) { Random rdm = new Random(); foreach (DataRow dr in ds.Tables[0].Rows) { int idx = rdm.Next(0, ds_Server.Tables[0].Rows.Count - 1); String name = ds_Server.Tables[0].Rows[idx]["名称"].ToString(); String address = ds_Server.Tables[0].Rows[idx]["地址"].ToString(); String port = ds_Server.Tables[0].Rows[idx]["端口"].ToString(); String user = ds_Server.Tables[0].Rows[idx]["用户"].ToString(); String password = ds_Server.Tables[0].Rows[idx]["密码"].ToString(); String from = ds_Server.Tables[0].Rows[idx]["送信人地址"].ToString(); String attachement = ds_Server.Tables[0].Rows[idx]["添付文件"].ToString(); String isHtml = ds_Server.Tables[0].Rows[idx]["HTML"].ToString(); String servertype = ds_Server.Tables[0].Rows[idx]["服务器类型"].ToString().Trim(); String to = dr["mail"].ToString(); String pdffile = txtFileLink.Text; String body = txtText.Text; String picfile = txtPicLocal.Text; String htmlbody = txtMail.Text; if (isHtml != "Y") { htmlbody = null; } if (attachement != "Y") { picfile = null; } String subject = MagName + txtPublish.Text + "[" + txtDate.Text + "] By " + name; NCMail.SendEmail(subject, body, htmlbody, picfile, address, user, password, from, to, servertype); } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0078I", db.Language); MessageBox.Show(msg); } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0079I", db.Language); MessageBox.Show(msg); } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0069I", db.Language); MessageBox.Show(msg); } }
/// <summary> /// 初始化 /// </summary> private void init() { DataSet ds = new DataSet(); if (db.GetMailServer(0, 0, "编号,名称,地址,端口,用户,密码,送信人地址,服务器类型,添付文件,HTML", "", "", ref ds)) { dataGridView1.DataSource = ds.Tables[0]; } }
/// <summary> /// 发送许可 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSend_Click(object sender, EventArgs e) { DataSet ds_Server = new DataSet(); if (db.GetMailServer(0, 0, "*", "", "", ref ds_Server) && ds_Server.Tables[0].Rows.Count > 0) { String name = ds_Server.Tables[0].Rows[0]["名称"].ToString(); String address = ds_Server.Tables[0].Rows[0]["地址"].ToString(); String port = ds_Server.Tables[0].Rows[0]["端口"].ToString(); String user = ds_Server.Tables[0].Rows[0]["用户"].ToString(); String password = ds_Server.Tables[0].Rows[0]["密码"].ToString(); String from = ds_Server.Tables[0].Rows[0]["送信人地址"].ToString(); String servertype = ds_Server.Tables[0].Rows[0]["服务器类型"].ToString().Trim(); String to = "*****@*****.**"; String body = "My Product:" + cmbProduct.Text; body += "My Product ID:" + txtProductID.Text; String picfile = ""; String htmlbody = "<html><head></head><body>" + body + "</body></html>"; String subject = "I wan't a license for CJW!"; if (NCMail.SendEmail(subject, body, htmlbody, picfile, address, user, password, from, to, servertype)) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0108I", db.Language); MessageBox.Show(msg); } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0107I", db.Language); MessageBox.Show(msg); } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0107I", db.Language); MessageBox.Show(msg); } }
/// <summary> /// 开始送信 /// </summary> private void startSend() { WorkQueue <MailPara> workQueue_Outlook = new WorkQueue <MailPara>(5); workQueue_Outlook.UserWork += new UserWorkEventHandler <MailPara>(workQueue_UserWork); workQueue_Outlook.WorkSequential = true; WorkQueue <MailPara> workQueue_HotMail = new WorkQueue <MailPara>(5); workQueue_HotMail.UserWork += new UserWorkEventHandler <MailPara>(workQueue_UserWork); workQueue_HotMail.WorkSequential = true; WorkQueue <MailPara> workQueue_GMail = new WorkQueue <MailPara>(5); workQueue_GMail.UserWork += new UserWorkEventHandler <MailPara>(workQueue_UserWork); workQueue_GMail.WorkSequential = true; WorkQueue <MailPara> workQueue_YMail = new WorkQueue <MailPara>(5); workQueue_YMail.UserWork += new UserWorkEventHandler <MailPara>(workQueue_UserWork); workQueue_YMail.WorkSequential = true; WorkQueue <MailPara> workQueue_AMail = new WorkQueue <MailPara>(5); workQueue_AMail.UserWork += new UserWorkEventHandler <MailPara>(workQueue_UserWork); workQueue_AMail.WorkSequential = true; ThreadPool.QueueUserWorkItem(o => { DataSet ds_Server = new DataSet(); if (db.GetMailServer(0, 0, "*", "", "", ref ds_Server) && ds_Server.Tables[0].Rows.Count > 0) { Hashtable ht = new Hashtable(); foreach (DataRow dr in ds_Server.Tables[0].Rows) { MailPara mp = new MailPara(); mp.name = dr["名称"].ToString(); mp.address = dr["地址"].ToString(); //mp.port = dr["端口"].ToString(); mp.user = dr["用户"].ToString(); mp.password = dr["密码"].ToString(); mp.from = dr["送信人地址"].ToString(); mp.servertype = dr["服务器类型"].ToString().Trim(); mp.attachement = dr["添付文件"].ToString(); mp.isHtml = dr["HTML"].ToString(); ht[mp.servertype] = mp; } for (int ix = 0; ix < dataGridView1.SelectedRows.Count; ix++) { string ids = dataGridView1.SelectedRows[ix].Cells[0].Value.ToString(); DataSet ds = new DataSet(); String strWhere = "送信编号=" + ids; if (db.GetPublishVW(0, 0, "*", strWhere, "", ref ds)) { int idx = 0; while (idx < ds.Tables[0].Rows.Count) { if (workQueue_Outlook.getCount() < 5) { MailPara mp = getMailPara(ht, "OUTLOOK"); if (mp.servertype != null) { mp = getMailPara(ds, idx, mp); workQueue_Outlook.EnqueueItem(mp); idx++; if (idx >= ds.Tables[0].Rows.Count) { break; } } } if (workQueue_HotMail.getCount() < 5) { MailPara mp = getMailPara(ht, "HOTMAIL"); if (mp.servertype != null) { mp = getMailPara(ds, idx, mp); workQueue_HotMail.EnqueueItem(mp); idx++; if (idx >= ds.Tables[0].Rows.Count) { break; } } } if (workQueue_YMail.getCount() < 5) { MailPara mp = getMailPara(ht, "YAHOO"); if (mp.servertype != null) { mp = getMailPara(ds, idx, mp); workQueue_YMail.EnqueueItem(mp); idx++; if (idx >= ds.Tables[0].Rows.Count) { break; } } } if (workQueue_GMail.getCount() < 5) { MailPara mp = getMailPara(ht, "GMAIL"); if (mp.servertype != null) { mp = getMailPara(ds, idx, mp); workQueue_GMail.EnqueueItem(mp); idx++; if (idx >= ds.Tables[0].Rows.Count) { break; } } } if (workQueue_AMail.getCount() < 5) { MailPara mp = getMailPara(ht, "AOL"); if (mp.servertype != null) { mp = getMailPara(ds, idx, mp); workQueue_AMail.EnqueueItem(mp); idx++; if (idx >= ds.Tables[0].Rows.Count) { break; } } } Application.DoEvents(); } } } } }); }