示例#1
0
        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)
            {}
        }
示例#5
0
        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;
            }
        }