private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (DateTime.Now.Hour == dailyreport && today != DateTime.Now.ToString("yyyy-MM-dd")) { dynamic result = HttpHelper.GetWebApi(dailyreportapi); today = DateTime.Now.ToString("yyyy-MM-dd"); } try { LogFile = path + DateTime.Now.ToString("yyyyMMddHH") + ".log"; if (!File.Exists(LogFile)) { file.newFile(LogFile); } string status = "?Status=-1"; if (readsending) { status = "?Status=10";// &id="+MsgId; } dynamic result = HttpHelper.GetWebApi(readapi + status); if (result != null) { string rowid = result.RowId; MailList mail = new MailList(); mail.RowId = rowid; mail.Data = result; maillist.Insert(maillist.Count, mail); var where = new { RowId = rowid }; HttpHelper.PostWebApi(sendapi, JsonConvert.SerializeObject(where), 18000); } if (sendstatus) { sendmail(); } } catch (Exception ex) { file.addLine(LogFile, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":数据错误:" + ex.Message); sendMailList.Items.Insert(0, ex.Message); } }
public void sendmail() { sendstatus = false; try { ThreadPool.QueueUserWorkItem(h => { Control.CheckForIllegalCrossThreadCalls = false; Serial_Data_Calback sdc = new Serial_Data_Calback(like); this.Invoke(sdc); while (maillist.Count > 0) { MailList mail = maillist[0]; dynamic data = mail.Data; string sendmessage = "from:" + MailHelper.MailAddress + "; to:" + data.MailTo + "; cc:" + data.CC + "; bcc:" + data.BCC + "; subject:" + data.Title + "; body:" + data.Body; List <dynamic> list = new List <dynamic>(); list.Add(new { to = data.MailTo, cc = data.CC, bcc = data.BCC, subject = data.Title, body = data.Body, file = data.Source }); dynamic sendlog = MailHelper.SendMail(list, ssl); if (sendlog.status) { var where = new { RowId = data.RowId }; HttpHelper.PostWebApi(completeapi, JsonConvert.SerializeObject(where), 18000); if (sendMailList.Items.Count > 20) { sendMailList.Items.RemoveAt(sendMailList.Items.Count - 1); sendMailList.Items.Insert(0, sendmessage); } else { sendMailList.Items.Insert(0, sendmessage); } file.addLine(LogFile, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":" + sendmessage); maillist.Remove(mail); } else { file.addLine(LogFile, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":邮件发送失败:RowId" + mail.RowId + ":" + data.MailTo); file.addLine(LogFile, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":邮件发送失败:" + sendlog.message); if (sendMailList.Items.Count > 20) { sendMailList.Items.RemoveAt(sendMailList.Items.Count - 1); sendMailList.Items.Insert(0, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":邮件发送失败:RowId" + mail.RowId + ":" + data.MailTo); } else { sendMailList.Items.Insert(0, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":邮件发送失败:RowId" + mail.RowId + ":" + data.MailTo); } maillist.Remove(mail); } Thread.Sleep(5000); } sendstatus = true; }); }catch (Exception ex) { file.addLine(LogFile, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":数据错误:" + ex.Message); if (sendMailList.Items.Count > 20) { sendMailList.Items.RemoveAt(sendMailList.Items.Count - 1); sendMailList.Items.Insert(0, ex.Message); } else { sendMailList.Items.Insert(0, ex.Message); } sendstatus = true; } }