private void UpdateMailActivity(MailActivity MailActiveList) { try { if (MailActiveList != null) { switch (MailActiveList.MailOn) { case "Weekly": MailActiveList.MailSentDate = MailActiveList.ScheduleNextDate; MailActiveList.ScheduleNextDate = MailActiveList.MailSentDate.AddDays(+7); break; case "Daily": MailActiveList.MailSentDate = MailActiveList.ScheduleNextDate; MailActiveList.ScheduleNextDate = MailActiveList.MailSentDate.AddDays(+1); break; case "Monthly": MailActiveList.MailSentDate = MailActiveList.ScheduleNextDate; DateTime dt = DateTime.Now; dt = dt.AddMonths(1); MailActiveList.ScheduleNextDate = new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month)); break; default: break; } EC.SaveOrUpdateMailActivity(MailActiveList); } } catch (Exception) {} }
public long SaveOrUpdateMailActivity(MailActivity Mt) { try { return(emailBC.SaveOrUpdateMailActivity(Mt)); } catch (Exception ex) { throw ex; } }
public long SaveOrUpdateMailActivity(MailActivity Mt) { try { if (Mt != null && Mt.ActivityId > 0) { PSF.Update <MailActivity>(Mt); } else { Mt.CreatedDate = DateTime.Now; PSF.Save <MailActivity>(Mt); } return(Mt.ActivityId); } catch (Exception ex) { throw ex; } }
public void CreateMailActivity(MailTemplate mt) { try { bool day = false; bool month = false; bool week = false; for (int i = 0; i < 3; i++) { MailActivity ma = new MailActivity(); ma.MailTemplateId = mt.MailTemplateId; ma.StartDate = mt.StartDate; ma.MailTo = mt.EmailList; ma.Subject = mt.ReportName; ma.MailSentDate = mt.StartDate; ma.CreatedDate = DateTime.Now; if (day == false) { ma.ScheduleNextDate = mt.StartDate.AddDays((double)1); ma.MailOn = "Daily"; day = true; if (mt.DailyMail == true) { ma.IsActive = true; } else { ma.IsActive = false; } MailActivity mailAct = ES.GetMailActivityDetailsByMailTemplateId(mt.MailTemplateId, ma.MailOn); if (mailAct == null) { ES.SaveOrUpdateMailActivity(ma); } } else if (week == false) { DateTime StartOfWeek = mt.StartDate.AddDays(-Convert.ToInt32(mt.StartDate.DayOfWeek)); DateTime EndOfLastWeek = StartOfWeek.AddDays(+7); ma.ScheduleNextDate = EndOfLastWeek; ma.MailOn = "Weekly"; week = true; if (mt.WeeklyMail == true) { ma.IsActive = true; } else { ma.IsActive = false; } MailActivity mailAct = ES.GetMailActivityDetailsByMailTemplateId(mt.MailTemplateId, ma.MailOn); if (mailAct == null) { ES.SaveOrUpdateMailActivity(ma); } } else if (month == false) { ma.ScheduleNextDate = new DateTime(mt.StartDate.Year, mt.StartDate.Month, DateTime.DaysInMonth(mt.StartDate.Year, mt.StartDate.Month)); ma.MailOn = "Monthly"; month = true; if (mt.MonthlyMail == true) { ma.IsActive = true; } else { ma.IsActive = false; } MailActivity mailAct = ES.GetMailActivityDetailsByMailTemplateId(mt.MailTemplateId, ma.MailOn); if (mailAct == null) { ES.SaveOrUpdateMailActivity(ma); } } else { ma.IsActive = false; } } } catch (Exception) {} }
private void SendEmailReport(MailConfig MailList, MailColumn mc, MailActivity MailActiveList, string MailBody, byte[] Attachment) { try { string[] EmailIds = MailList.EmailList.Split(','); string SendEmail = ConfigurationManager.AppSettings["SendEmailOption"]; string From = ConfigurationManager.AppSettings["From"]; if (SendEmail == "false") { return; } else { try { System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); switch (MailActiveList.MailOn) { case "Weekly": mail.Subject = MailList.ReportName + " For Week" + "(" + DateTime.Now + ")"; break; case "Daily": mail.Subject = MailList.ReportName + " For Today" + "(" + String.Format("{0:dd/MM/yy}", DateTime.Now) + ")"; break; case "Monthly": mail.Subject = MailList.ReportName + " For Month" + "(" + DateTime.Now.ToString("MMMM yyyy") + ")"; break; default: break; } string msg = ""; mail.To.Add(new MailAddress("*****@*****.**")); foreach (string s in EmailIds) { if (!string.IsNullOrWhiteSpace(s)) { string emailid = s.Trim(); mail.Bcc.Add(emailid); } } msg += "PFA for the " + MailActiveList.MailOn + " wise " + MailList.ReportName; MailBody = MailBody.Replace("{{DateTime}}", DateTime.Now.ToString()); MailBody = MailBody.Replace("{{Content}}", msg); //MailBody = MailBody.Replace("{{UserName}}", MailTempList[0].UserName); mail.Body = MailBody; Attachment MailAttach = null; MemoryStream memStream = new MemoryStream(Attachment); MailAttach = new Attachment(memStream, MailList.ReportName + ".xlsx"); mail.Attachments.Add(MailAttach); mail.IsBodyHtml = true; SmtpClient smtp = new SmtpClient("localhost", 25); smtp.Host = "smtp.gmail.com"; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.EnableSsl = true; if (From == "live") { try { mail.From = new MailAddress("*****@*****.**"); smtp.Credentials = new System.Net.NetworkCredential ("*****@*****.**", "Spring@2k14"); //smtp.Send(mail); } catch (Exception ex) { if (ex.Message.Contains("quota")) { mail.From = new MailAddress("*****@*****.**"); smtp.Credentials = new System.Net.NetworkCredential ("*****@*****.**", "Ginger@27"); smtp.Send(mail); } else { mail.From = new MailAddress("*****@*****.**"); smtp.Credentials = new System.Net.NetworkCredential ("*****@*****.**", "JohnSGrasiasXcd"); smtp.Send(mail); } } } else if (From == "test") { mail.From = new MailAddress("*****@*****.**"); smtp.Credentials = new System.Net.NetworkCredential ("*****@*****.**", "Spring@2k14"); //this is to send email to test mail only to avoid mis communication to the parent // mail.To.Add("*****@*****.**"); smtp.Send(mail); } EmailLog el = new EmailLog(); el.EmailFrom = mail.From.ToString(); el.EmailTo = mail.To.ToString(); el.EmailCC = mail.CC.ToString(); if (mail.Bcc.ToString().Length < 3990) { el.EmailBCC = mail.Bcc.ToString(); } el.Subject = mail.Subject.ToString(); if (mail.Body.ToString().Length < 3990) { el.Message = msg; } DateTime dt = DateTime.Now; el.EmailDateTime = dt; el.BCC_Count = mail.Bcc.Count; el.Module = "ReportingMail"; el.IsSent = true; el.Message = msg; //log the email to the database MC.CreateOrUpdateEmailLog(el); UpdateMailActivity(MailActiveList); } catch (Exception) {} } } catch (Exception ex) { throw ex; } }