Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        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;
            }
        }