private void TimeSendSms_Tick(object sender, EventArgs e) { TimeSendSms.Enabled = false; TimeSms(); var warndetailbll = new WarnDetailBll(); var dtemail = warndetailbll.FindByEmail(); if (dtemail != null && dtemail.Rows.Count > 0) { var count = dtemail.Rows.Count; var modellist = new List <EmailAndSmsModel>(); for (var i = 0; i < count; i++) { Service.Sms smsService = new Service.Sms(); var model = new EmailAndSmsModel() { Id = dtemail.Rows[i]["id"].ToString(), Address = dtemail.Rows[i]["address"].ToString(), Title = "充电桩告警邮件", //dtemail.Rows[i]["title"].ToString(), Body = smsService.ResplaceTemplateStr(dtemail.Rows[i]["body"].ToString(), dtemail.Rows[i]["warnrecid"].ToString()) }; modellist.Add(model); } var email = new Emails(); email.SendMailtoDes(modellist);//发送邮件 } TimeSendSms.Enabled = true; }
/// <summary> /// /// </summary> public void SendMailtoDes(List <EmailAndSmsModel> list) { if (list == null) { throw new ArgumentNullException("list"); } _smtp.UseDefaultCredentials = false; _smtp.Credentials = new NetworkCredential(UserMail, Password); foreach (var t in list) { _objMailMessage = new MailMessage { Priority = MailPriority.Normal, From = new MailAddress(UserMail) }; _objMailMessage.To.Add(new MailAddress(t.Address)); _objMailMessage.IsBodyHtml = true; _objMailMessage.Subject = t.Title; _objMailMessage.Body = t.Body; try { _smtp.Send(_objMailMessage); var warndetailbll = new WarnDetailBll(); var warndetail = new WarnDetail { ProcessFlag = 1 }; warndetailbll.Modify(warndetail); } catch (Exception e) { } } }
public void Send() { while (true) { try { var warndetailbll = new WarnDetailBll(); var dtemail = warndetailbll.FindByEmail(); if (dtemail != null && dtemail.Rows.Count > 0) { var count = dtemail.Rows.Count; var modellist = new List <EmailAndSmsModel>(); for (var i = 0; i < count; i++) { var model = new EmailAndSmsModel() { Id = dtemail.Rows[i]["id"].ToString(), Address = dtemail.Rows[i]["address"].ToString(), Title = dtemail.Rows[i]["title"].ToString(), Body = dtemail.Rows[i]["body"].ToString() }; modellist.Add(model); } var email = new Emails(); email.SendMailtoDes(modellist);//发送邮件 } var dtsms = warndetailbll.FindBySms(); if (dtsms != null && dtsms.Rows.Count > 0) { var count = dtsms.Rows.Count; var modellist = new List <EmailAndSmsModel>(); for (var i = 0; i < count; i++) { var model = new EmailAndSmsModel() { Address = dtsms.Rows[i]["address"].ToString(), Title = dtsms.Rows[i]["title"].ToString(), Body = dtsms.Rows[i]["body"].ToString() }; modellist.Add(model); } var sms = new Sms(); //sms.SendSms(modellist);//发送短信 } } catch (Exception e) { } Thread.Sleep(60 * 1000);//线程睡眠60秒 } }
/// <summary> /// 替换模板数据 /// </summary> /// <param name="replacedContent">将要替换内容</param> /// <param name="warnId">告警id</param> /// <returns></returns> public string ResplaceTemplateStr(string replacedContent, string warnId) { var warnDetailBll = new WarnDetailBll(); var nameStr = replacedContent; if (replacedContent.IndexOf("充电站简称", StringComparison.Ordinal) >= 0) { var data = warnDetailBll.FindZhanJc(warnId); if (data.Rows.Count > 0) { var str = data.Rows[0]["zhan_jc"].ToString(); nameStr = nameStr.Replace("充电站简称", str); } } if (replacedContent.IndexOf("桩编号", StringComparison.Ordinal) >= 0 || replacedContent.IndexOf("装编号", StringComparison.Ordinal) >= 0) { var data = warnDetailBll.FindZhuanBh(warnId); if (data.Rows.Count > 0) { var str = data.Rows[0]["yunxing_bh"].ToString(); nameStr = nameStr.Replace("桩编号", str).Replace("装编号", str); } } if (replacedContent.IndexOf("数据项", StringComparison.Ordinal) >= 0) { var data = warnDetailBll.FindItemName(warnId); if (data.Rows.Count > 0) { var str = data.Rows[0]["itemname"].ToString(); nameStr = nameStr.Replace("数据项", str); } } if (replacedContent.IndexOf("告警原因", StringComparison.Ordinal) >= 0) { var data = warnDetailBll.FindWarn(warnId); if (data.Rows.Count > 0) { var str1 = data.Rows[0]["m_value"].ToString(); var str2 = data.Rows[0]["logdesc"].ToString(); nameStr = nameStr.Replace("告警原因", str1 + str2); } } return(nameStr); }
/// <summary> /// 发送短信 /// </summary> public string SendSms() { var warndetailBll = new WarnDetailBll(); var smsSuccessList = new Dictionary <uint, string>(); var data = warndetailBll.FindBySms(); if (data.Rows.Count <= 0) { return("没有短信数据。"); } foreach (DataRow dataRow in data.Rows)//这里是全部的信息 { var id = dataRow["id"].ToString(); var warnid = dataRow["WARNRECID"].ToString(); var warncontext = dataRow["WARNCONTEXT"].ToString(); var strContent = ResplaceTemplateStr(warncontext, warnid); var warntarget = dataRow["ADDRESS"].ToString(); var warntargetList = warntarget.Split(';'); foreach (var s in warntargetList)//这里是全部的电话 { try { var num = SmsApi.SMSSendMessage(strContent, s); smsSuccessList.Add(num, id); Thread.Sleep(100); } catch (Exception) { continue; } } } var successNum = 0; var sendingNum = 0; var failureNum = 0; foreach (var u in smsSuccessList) { var queryData = SmsApi.SMSQuery(u.Key); WarnDetail warndetail = null; switch (queryData) { //发送成功 case 1: warndetail = new WarnDetail { Id = u.Value, ProcessFlag = 1, IsSuccess = 1, SendDT = DateTime.Now, UpdateDT = DateTime.Now }; successNum++; break; //正在发送中 case -1: warndetail = new WarnDetail { Id = u.Value, IsSuccess = 0, ProcessFlag = 1, SendDT = DateTime.Now, UpdateDT = DateTime.Now }; sendingNum++; break; //发送失败 case 0: warndetail = new WarnDetail { Id = u.Value, ProcessFlag = 1, IsSuccess = 2, SendDT = DateTime.Now, UpdateDT = DateTime.Now }; failureNum++; break; default: break; } warndetailBll.Modify(warndetail); } return("全部已发送:" + smsSuccessList.Count + "条(其中,成功:" + successNum + "条,失败:" + failureNum + "条,正在发送:" + sendingNum + "条)"); }