예제 #1
0
 static void Main(string[] args)
 {
     try
     {
         Debug.WriteLine("Starting!");
         EmailSerializer emailSerializer = new EmailSerializer();
         emailSerializer.ReadEmails();
     }
     finally
     {
         Debug.WriteLine("Done.");
     }
 }
예제 #2
0
 static private void ResendThread()
 {
     while (cmdStop == false)
     {
         try
         {
             ParameterServices.Neologize();
             Log.WriteMsgLogs("Email Resending Process ...");
             Factory.CreateObject();
             Factory.SuEmailResendingQuery.DeleteSuccessItem();
             IList <SuEmailResending> ResendMails = Factory.SuEmailResendingQuery.FindAllEmailResending();
             EmailSerializer          serailer    = new EmailSerializer();
             SMSSerializer            smsserialer = new SMSSerializer();
             foreach (SuEmailResending item in ResendMails)
             {
                 bool success;
                 if (item.emailtype.Contains("SMS"))
                 {
                     success     = false;
                     item.status = "Retry";
                     try
                     {
                         SMSContainer sms = smsserialer.DeSerializeObject(item.mailcontent);
                         if (item.emailtype == "SMS")
                         {
                             success = Factory.SMSService.ReSend(sms.sms);
                         }
                         else if (item.emailtype == "SMS+Log")
                         {
                             success = Factory.SMSService.ReSend(sms.sms, sms.SMSLogid);
                         }
                         else if (item.emailtype == "SMS+Notify")
                         {
                             success = Factory.SMSService.ReSend(sms.sms, sms.NotifySMS);
                         }
                         if (success)
                         {
                             item.status = "Success";
                         }
                     }
                     catch (Exception e)
                     {
                         Log.WriteLogs(e);
                     }
                 }
                 else
                 {
                     try
                     {
                         EmailDTO email = serailer.DeSerializeObject(item.mailcontent);
                         email.Status = 2;
                         item.status  = "Retry";
                         if (IsEmptyMailList(email.MailSendTo))
                         {
                             AddMailSendTo sendto = new AddMailSendTo();
                             sendto.Email = SS.DB.Query.ParameterServices.AdminEmailAddress;
                             sendto.Name  = SS.DB.Query.ParameterServices.AdminName;
                             email.MailSendTo.Clear();
                             email.MailSendTo.Add(sendto);
                             email.Remark = "Send to email addresses is empty or invalid email format.";
                         }
                         email.IsMultipleReceiver = true;
                         success = Factory.EmailService.SendEmail(email);
                         if (success)
                         {
                             email.Status = 1;
                             item.status  = "Success";
                         }
                         //send completed then must keep log
                         AddEmailLog(email);
                     }
                     catch (Exception e)
                     {
                         Log.WriteLogs(e);
                     }
                 }
                 item.lastsenddate = DateTime.Now;
                 if (item.status == "Retry")
                 {
                     item.retry++;
                     if (item.retry > ParameterServices.MaxRetry)
                     {
                         item.status = "Fail";
                     }
                 }
                 Factory.SuEmailResendingService.Update(item);
             }
             Log.WriteMsgLogs("Finish");
             Thread.Sleep(SS.DB.Query.ParameterServices.EmailFlushingDuration * 60000);
         }
         catch (Exception e)
         {
             Log.WriteLogs(e);
             Thread.Sleep(SS.DB.Query.ParameterServices.EmailFlushingDuration * 60000);
             continue;
         }
     }
 }