Пример #1
0
 public MailFacade(ClientContext clientContext)
     : base(clientContext)
 {
     if (_EmailTemplateDataAccess == null)
     {
         _EmailTemplateDataAccess = (EmailTemplateDataAccess)_ClientContext[typeof(EmailTemplateDataAccess)];
     }
     if (_EmailHistoryDataAccess == null)
     {
         _EmailHistoryDataAccess = (EmailHistoryDataAccess)_ClientContext[typeof(EmailHistoryDataAccess)];
     }
 }
Пример #2
0
        private bool SentEmailRemainder(Hashtable TemplateValue, string TemplateKey, List <Attachment> Attachments)
        {
            EmailTemplateDataAccess maildata      = new EmailTemplateDataAccess();
            EmailHistoryDataAccess  mailhistory   = new EmailHistoryDataAccess();
            EmailTemplate           emailTemplate = maildata.GetByQuery("TemplateKey='" + TemplateKey + "'").FirstOrDefault();
            EmailParser             parser        = null;
            string toEmailAddress = "";

            if (emailTemplate == null || emailTemplate.Id == 0)
            {
                //Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception("Template not found for key :" + TemplateKey));
                return(false);
            }
            if (!string.IsNullOrWhiteSpace(emailTemplate.BodyFile))
            {
                string FilePath = emailTemplate.BodyFile;
                FilePath = System.Web.Hosting.HostingEnvironment.MapPath(FilePath);
                parser   = new EmailParser(FilePath, TemplateValue, true);
                //parser = new EmailParser(HttpContext.Current.Server.MapPath(emailTemplate.BodyFile), TemplateValue, true);
            }
            else if (!string.IsNullOrWhiteSpace(emailTemplate.BodyContent))
            {
                parser = new EmailParser(emailTemplate.BodyContent, TemplateValue, false);
            }

            MailMessage message = new MailMessage();

            message.Body = parser.Parse();

            if (emailTemplate.ToEmail.IndexOf("##") > -1)
            {
                EmailParser ToEmailParser = new EmailParser(emailTemplate.ToEmail, TemplateValue, false);
                message.To.Add(new MailAddress(ToEmailParser.Parse()));
                toEmailAddress = message.To[0].ToString();
            }
            else
            {
                message.To.Add(emailTemplate.ToEmail);
                toEmailAddress = message.To[0].ToString();
            }
            if (emailTemplate.ReplyEmail.IndexOf("##") > -1)
            {
                EmailParser ToEmailParser = new EmailParser(emailTemplate.ReplyEmail, TemplateValue, false);
                message.ReplyTo = new MailAddress(ToEmailParser.Parse());
                toEmailAddress  = message.To[0].ToString();
            }
            else
            {
                message.ReplyTo = new MailAddress(emailTemplate.ReplyEmail);
            }

            if (emailTemplate.FromEmail.IndexOf("##") > -1)
            {
                EmailParser ToEmailParser = new EmailParser(emailTemplate.FromEmail, TemplateValue, false);
                message.From = new MailAddress(ToEmailParser.Parse());
            }
            else
            {
                message.From = new MailAddress(emailTemplate.FromEmail);
            }

            if (!string.IsNullOrWhiteSpace(emailTemplate.BccEmail))
            {
                message.Bcc.Add(emailTemplate.BccEmail);
            }

            if (!string.IsNullOrWhiteSpace(emailTemplate.CcEmail))
            {
                message.CC.Add(emailTemplate.CcEmail);
            }

            if (emailTemplate.Subject.IndexOf("##") > -1)
            {
                EmailParser SubjectParser = new EmailParser(emailTemplate.Subject, TemplateValue, false);
                message.Subject = SubjectParser.Parse();
            }
            else
            {
                message.Subject = emailTemplate.Subject;
            }
            if (Attachments != null)
            {
                if (Attachments.Count > 0)
                {
                    foreach (var attachment in Attachments)
                    {
                        message.Attachments.Add(attachment);
                    }
                }
            }
            message.IsBodyHtml   = true;
            message.BodyEncoding = System.Text.Encoding.UTF8;


            try
            {
                //if (HttpContext.Current!=null && HttpContext.Current.Request.IsLocal)
                //{
                //SmtpClient client = new SmtpClient();
                //client.Credentials = new System.Net.NetworkCredential("*****@*****.**", "piiscenter.com");
                //client.EnableSsl = false;
                //client.Send(message);
                //}
                SmtpClient smtp = new SmtpClient
                {
                    Host = "smtp.gmail.com",
                    //change the port to prt 587. This seems to be the standard for Google smtp transmissions.
                    Port = 587,
                    //enable SSL to be true, otherwise it will get kicked back by the Google server.
                    EnableSsl = true,
                    //The following properties need set as well
                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials           = new NetworkCredential("*****@*****.**", "Inf0rmrcl@ud")
                };
                smtp.Send(message);


                EmailHistory emailHistory = new EmailHistory();
                emailHistory.TemplateKey      = TemplateKey;
                emailHistory.ToEmail          = toEmailAddress;
                emailHistory.CcEmail          = message.CC.ToString();
                emailHistory.BccEmail         = message.Bcc.ToString();
                emailHistory.FromEmail        = message.From.ToString();
                emailHistory.EmailBodyContent = message.Body;
                emailHistory.EmailSubject     = message.Subject;
                emailHistory.EmailSentDate    = DateTime.Now;
                emailHistory.LastUpdatedDate  = DateTime.Now;
                mailhistory.Insert(emailHistory);
                return(true);
            }
            catch (Exception ex)
            {
                EmailHistory emailHistory = new EmailHistory();
                emailHistory.TemplateKey      = TemplateKey;
                emailHistory.ToEmail          = toEmailAddress;
                emailHistory.CcEmail          = message.CC.ToString();
                emailHistory.BccEmail         = message.Bcc.ToString();
                emailHistory.FromEmail        = message.From.ToString();
                emailHistory.EmailBodyContent = message.Body;
                emailHistory.EmailSubject     = message.Subject;

                emailHistory.LastUpdatedDate = DateTime.Now;
                mailhistory.Insert(emailHistory);
                //Logger.AddElmah(ex);
            }


            return(false);
        }