示例#1
0
        public EmailNotificationsModel GetEmailNotificationsModel()
        {
            var emailNotificationsModel = new EmailNotificationsModel();

            emailNotificationsModel.SmtpHost           = ConfigurationManager.AppSettings["Host"];
            emailNotificationsModel.EmailFrom          = ConfigurationManager.AppSettings["UserName"];
            emailNotificationsModel.EmailPassword      = ConfigurationManager.AppSettings["Password"];
            emailNotificationsModel.EnableSSL          = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
            emailNotificationsModel.PortNumber         = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]);
            emailNotificationsModel.EnableEmailSending = Convert.ToString(ConfigurationManager.AppSettings["EnableEmailSending"]);
            return(emailNotificationsModel);
        }
示例#2
0
        public void SendEmailNotification(string mailTo, string template, Object model = null, EmailNotificationsModel emailNotificationsModel = null, OutgoingEmailLogModel outgoingEmailLogModel = null)
        {
            //System.Web.Mail.MailMessage Msg = new System.Web.Mail.MailMessage();
            //Msg.From = emailNotificationsModel.EmailFrom;
            //Msg.To = mailTo;
            //Msg.Bcc = outgoingEmailLogModel.ExternalEmail;
            //Msg.Subject = outgoingEmailLogModel.EmailSubject;
            //Msg.Body = GenerateEmailBody(template, model, outgoingEmailLogModel);
            //// your remote SMTP server IP.
            //System.Web.Mail.SmtpMail.SmtpServer = "67.225.221.112";//your ip address
            //System.Web.Mail.SmtpMail.Send(Msg);

            var emailNotificationBA = new EmailNotifications();
            var serialization       = new Serialization();
            var smtpClient          = new SmtpClient();
            var smtpClientOrg       = new SmtpClient(emailNotificationsModel.SmtpHost);

            smtpClient = smtpClientOrg;
            var    mailClient   = new MailMessage();
            var    HashCriteria = new Hashtable();
            string actualCriteria;

            mailClient.From = new MailAddress(emailNotificationsModel.EmailFrom, "Synoptek");
            mailClient.To.Add(new MailAddress(mailTo));
            List <EmailAddress> mailRecipients = new List <EmailAddress>();

            mailRecipients.Add(new Mandrill.EmailAddress()
            {
                email = mailTo
            });
            mailClient.Subject = outgoingEmailLogModel.EmailSubject;
            if (outgoingEmailLogModel.ExternalEmail != null)
            {
                mailClient.Bcc.Add(new MailAddress(outgoingEmailLogModel.ExternalEmail));
            }
            mailClient.Body         = GenerateEmailBody(template, model, outgoingEmailLogModel);
            mailClient.BodyEncoding = System.Text.Encoding.UTF8;
            mailClient.IsBodyHtml   = true;

            smtpClientOrg.Credentials        = new System.Net.NetworkCredential(emailNotificationsModel.EmailFrom, emailNotificationsModel.EmailPassword);
            smtpClientOrg.EnableSsl          = emailNotificationsModel.EnableSSL;
            smtpClientOrg.Port               = emailNotificationsModel.PortNumber;
            smtpClientOrg.Host               = emailNotificationsModel.SmtpHost;
            smtpClient.UseDefaultCredentials = true;
            if (emailNotificationsModel.EnableEmailSending == "true")
            {
                //SendEmailAsync(mailClient, 1, smtpClient);         // Email sent here ''
                MandrillAPI.SendEmail(mailRecipients, mailClient.Subject, emailNotificationsModel.EmailFrom, "Pixere Team", mailClient.Body);
            }

            var notifications = new OutgoingEmailLogModel();

            notifications.Token = outgoingEmailLogModel.Token;
            if (outgoingEmailLogModel.EmailFrom != null)
            {
                notifications.EmailFrom = outgoingEmailLogModel.EmailFrom;
            }
            else
            {
                notifications.EmailFrom = emailNotificationsModel.EmailFrom;  // if sender is null then email From will be email address from web config.
            }
            HashCriteria.Add("EmailTo", mailTo);
            HashCriteria.Add("EmailBody", mailClient.Body);
            HashCriteria.Add("EmailSubject", outgoingEmailLogModel.EmailSubject);
            HashCriteria.Add("TemplateCode", template);
            HashCriteria.Add("EmailFrom", notifications.EmailFrom);
            HashCriteria.Add("Token", outgoingEmailLogModel.Token);
            actualCriteria = serialization.SerializeBinary((object)HashCriteria);
            var result  = emailNotificationBA.SaveOutgoingMessageLog(actualCriteria);
            var emailID = Convert.ToInt64(serialization.DeSerializeBinary(Convert.ToString(result)));
        }