/// <summary>
        ///     Creates a MailMessage for the current MailAttribute instance.
        /// </summary>
        protected EmailMessage GenerateProspectiveMailMessage(MailAttributes mail)
        {
            //create base message
            var message = new EmailMessage
            {
                from_name = mail.From.DisplayName,
                from_email = mail.From.Address,
                to = mail.To.Union(mail.Cc).Select(t => new EmailAddress(t.Address, t.DisplayName)),
                bcc_address = mail.Bcc.Any() ? mail.Bcc.First().Address : null,
                subject = mail.Subject,
                important = mail.Priority == MailPriority.High ? true : false
            };

            // We need to set Reply-To as a custom header
            if (mail.ReplyTo.Any())
            {
                message.AddHeader("Reply-To", string.Join(" , ", mail.ReplyTo));
            }

            // Adding content to the message
            foreach (var view in mail.AlternateViews)
            {
                var reader = new StreamReader(view.ContentStream, Encoding.UTF8, true, 1024, true);
                
                    var body = reader.ReadToEnd();

                    if (view.ContentType.MediaType == MediaTypeNames.Text.Plain)
                    {
                        message.text = body;
                    }
                    if (view.ContentType.MediaType == MediaTypeNames.Text.Html)
                    {
                        message.html = body;
                    }      
            }

            // Going through headers and adding them to the message
            mail.Headers.ToList().ForEach(h => message.AddHeader(h.Key, h.Value));

            // Adding the attachments
            var attachments = new List<email_attachment>();
            foreach (var mailAttachment in mail.Attachments.Select(attachment => Utils.AttachmentCollection.ModifyAttachmentProperties(attachment.Key, attachment.Value, false)))
            {
                using (var stream = new MemoryStream())
                {
                    mailAttachment.ContentStream.CopyTo(stream);
                    var base64Data = Convert.ToBase64String(stream.ToArray());
                    attachments.Add(new email_attachment
                    {
                        content = base64Data,
                        name = mailAttachment.Name,
                        type = mailAttachment.ContentType.MediaType,
                    });
                }
            }

            message.attachments = attachments;

            return message;
        }
        public void TaskResponsibleChanged(TaskResponsibleChangedData data)
        {
            if (!_setting.UseMandrill)
            {
                return;
            }

            var message = new EmailMessage
            {
                to = new[] { new EmailAddress(data.EmployeeEmail) },
                from_email = _setting.MandrillFrom,
                subject = _setting.MandrillTaskResponsibleChangedNotificationSubject
            };

            message.AddGlobalVariable("TASKNAME", data.TaskTitle);
            message.AddGlobalVariable("TASKROLE", data.Role);

            _api.SendMessage(message, _setting.MandrillTaskResponsibleNotificationTemplate, null);
        }
        public void SendEmail()
        {
            //create a new message object
            var message = new MandrillApi(Apikey, true);

            //send the mail
            try
            {
                var emailMessage = new EmailMessage()
                {
                    to = To,
                    subject = Subject,
                    raw_message = Message,
                    from_email = From.email,
                    from_name = From.name
                };

                //message.SendRawMessage(emailMessage);

                message.SendMessage(To, Subject, Message, From, new DateTime());
            }
            catch (System.Exception ex)
            {
                throw;
                // log the error
            }
        }
        public static List<EmailResult> SendMailTemplate(List<string> toMails, string templateName, List<merge_var> mergeVars, string subject)
        {
            try
            {
                var api = new MandrillApi(_mandrillApiKey);

                var email = new EmailMessage
                                {
                                    from_email = _senderEmail,
                                    subject = subject
                                };

                var to = toMails.Select(mailTo => new EmailAddress(mailTo)).ToList();

                email.to = to;
                foreach (merge_var item in mergeVars)
                {
                    email.AddGlobalVariable(item.name, item.content);
                }

                var result = api.SendMessageAsync(email, templateName, null);
                return result.Result;
            }
            catch (Exception ex)
            {
                EventLogger.Log(ex);
                return null;
                //ManagementBLL.LogError("SendMailMandrill", ex.Message, "EmailHelper", string.Empty);
            }
        }
        public string SendMail(string from, string passsword, string to, string bcc, string cc, string subject, string body, string MandrillUserName = "", string MandrillPassword = "")
        {
            string sendMailByMandrill = string.Empty;
            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name = from;
                message.html = body;
                message.subject = subject;
                message.to = new List<Mandrill.EmailAddress>()
                {
                  new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(MandrillPassword, false);
                var results = mandrillApi.SendMessage(message);

                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent || result.Status == Mandrill.EmailResultStatus.Queued)
                    {
                        sendMailByMandrill = "Success";
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return sendMailByMandrill;
        }
        public static List<EmailResult> SendMail(List<string> toMails, string subject, string htmlBody, bool async = false)
        {
            try
            {
                var api = new MandrillApi(_mandrillApiKey);

                var email = new EmailMessage()
                {
                    from_email = _senderEmail,
                    subject = subject,
                    html = htmlBody
                };
                var to = toMails.Select(mailTo => new EmailAddress(mailTo)).ToList();

                email.to = to;
                if (async)
                {
                    var result = api.SendMessageAsync(email);
                    return result.Result;
                }
                return api.SendMessage(email);
            }
            catch (Exception ex)
            {
                return null;
            }
        }
Beispiel #7
0
        public string SendMail(string from, string passsword, string to, string bcc, string cc, string subject, string body, string MandrillUserName = "", string MandrillPassword = "")
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name  = from;
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(MandrillPassword, false);
                var results = mandrillApi.SendMessage(message);

                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent || result.Status == Mandrill.EmailResultStatus.Queued)
                    {
                        sendMailByMandrill = "Success";
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(sendMailByMandrill);
        }
Beispiel #8
0
        /// <summary>
        /// SendMailByMandrill
        /// this function is used for Get Rejected Mail of Mandrill</summary></summary>
        /// the main parameter is
        /// <add key="host" value="smtp.mandrillapp.com" />
        /// <param name="port"></param>
        /// <add key="port" value="25" />
        /// <param name="from"></param>
        /// <add key="username" value="socioboard"/>
        /// <param name="passsword"></param>
        /// <add key="fromemail" value="*****@*****.**"/>
        /// <param name="to"></param>
        /// <add key="password" value="xyz" />
        /// <param name="bcc"></param>
        /// add key="tomail" value="*****@*****.**" />
        /// its return : List<RejectInfo> ie hardbouce , softbounce, rejected etc.
        /// /// <param name="subject"></param>
        /// <param name="body"></param>
        /// <param name="sendgridUserName"></param>
        /// <param name="sendgridPassword"></param>
        /// <returns></returns>
        public List<RejectInfo> GetListRejectInfoByMandrill(string Host, int port, string from, string passsword, string to, string bcc, string cc, string subject, string body, string sendgridUserName, string sendgridPassword)
        {
            string sendMailByMandrill = string.Empty;
            List<RejectInfo> ri = new List<RejectInfo>();
            try
            {

                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                //message.from_email = from;
                //message.from_name = from;//"AlexPieter";
                message.from_email = from;
                message.from_name = "Socioboard Support";
                message.html = body;
                message.subject = subject;
                message.to = new List<Mandrill.EmailAddress>()
                {
                  new Mandrill.EmailAddress(to)
                };

                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(sendgridPassword, false);

                ri = mandrillApi.ListRejects();

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);
                sendMailByMandrill = ex.Message;
            }

            return ri;
        }
        /// <summary>
        /// SendMailByMandrill
        /// this function is used for Get Rejected Mail of Mandrill</summary></summary>
        /// the main parameter is
        /// <add key="host" value="smtp.mandrillapp.com" />
        /// <param name="port"></param>
        /// <add key="port" value="25" />
        /// <param name="from"></param>
        /// <add key="username" value="socioboard"/>
        /// <param name="passsword"></param>
        /// <add key="fromemail" value="*****@*****.**"/>
        /// <param name="to"></param>
        /// <add key="password" value="xyz" />
        /// <param name="bcc"></param>
        /// add key="tomail" value="*****@*****.**" />
        /// its return : List<RejectInfo> ie hardbouce , softbounce, rejected etc.
        /// /// <param name="subject"></param>
        /// <param name="body"></param>
        /// <param name="sendgridUserName"></param>
        /// <param name="sendgridPassword"></param>
        /// <returns></returns>

        public List <RejectInfo> GetListRejectInfoByMandrill(string Host, int port, string from, string passsword, string to, string bcc, string cc, string subject, string body, string sendgridUserName, string sendgridPassword)
        {
            string            sendMailByMandrill = string.Empty;
            List <RejectInfo> ri = new List <RejectInfo>();

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                //message.from_email = from;
                //message.from_name = from;//"AlexPieter";
                message.from_email = from;
                message.from_name  = "Socioboard Support";
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };

                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(sendgridPassword, false);


                ri = mandrillApi.ListRejects();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);
                sendMailByMandrill = ex.Message;
            }

            return(ri);
        }
        public string ReplyForCareerMail(string from, string body, string subject, string to, string password)
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name  = "Socioboard Support";
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(password, false);
                var    results = mandrillApi.SendMessage(message);
                string status  = string.Empty;
                foreach (var result in results)
                {
                }
                sendMailByMandrill = "Success";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);
                sendMailByMandrill = ex.Message;
            }
            return(sendMailByMandrill);
        }
        private void CreateAndSendEmailMessageFromTemplate(WebHookEvent evt)
        {
            var metadata = ParseMetadataFromMandrill(evt);
            var message  = new Mandrill.EmailMessage();

            message.to = new List <Mandrill.EmailAddress>()
            {
                new EmailAddress {
                    email = "*****@*****.**"
                },
                new EmailAddress {
                    email = "*****@*****.**"
                }
            };

            message.subject    = String.Format("Bounced email notification", evt.Event);
            message.from_email = "*****@*****.**";


            if (metadata.ContainsKey("CustID"))
            {
                message.AddGlobalVariable("customerID", metadata["CustID"].ToUpper());
            }
            else
            {
                message.AddGlobalVariable("customerID", "Unknown");
            }
            message.AddGlobalVariable("bouncedEmailAddress", evt.Msg.Email);
            message.AddGlobalVariable("application", GetSendingApplicationName(evt));
            message.AddGlobalVariable("timesent", TimeZoneInfo.ConvertTimeFromUtc(evt.Msg.TimeStamp, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).ToString());

            _mandrillApi.SendMessage(message, "mandrill-email-bounce", null);
        }
        public string SendInvitationMailByMandrill(string SenderEmail, string SenderName, string FriendsEmail, string password, string body)
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = SenderEmail;
                message.from_name  = SenderName;
                message.html       = body;
                message.subject    = "Your friend " + SenderName + "has invited you to join socioboard";
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(FriendsEmail)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(password, false);
                var results = mandrillApi.SendMessage(message);
                foreach (var result in results)
                {
                    if (result.Status == Mandrill.EmailResultStatus.Sent || result.Status == Mandrill.EmailResultStatus.Queued)
                    {
                        sendMailByMandrill = "success";
                    }
                    else
                    {
                        sendMailByMandrill = "failed";
                    }
                }
            }
            catch (Exception ex)
            {
                sendMailByMandrill = "failed";
            }
            return(sendMailByMandrill);
        }
Beispiel #13
0
        //static string MandrillBaseUrl = ConfigurationManager.AppSettings["smtp.mandrillapp.com"];
        //static Guid MandrillKey = new Guid(ConfigurationManager.AppSettings["xBhdpEwsVOC689CTDqzlkw"]);

        public static void SendSingleMail(List <M.EmailAddress> argToAddress, string argSubject, string argContent, List <M.attachment> argAttachment)
        {
            try
            {
                //string activationLink = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/Register/Activation.aspx?id=" + "";

                Cursor.Current = Cursors.WaitCursor;

                DataTable dt = new DataTable();
                dt = CommFun.GetMandrillSetting(2);
                if (dt == null)
                {
                    return;
                }
                if (dt.Rows.Count == 0)
                {
                    return;
                }

                string sFromName     = CommFun.IsNullCheck(dt.Rows[0]["FromName"], CommFun.datatypes.vartypestring).ToString();
                string sUserId       = CommFun.IsNullCheck(dt.Rows[0]["UserId"], CommFun.datatypes.vartypestring).ToString();
                string sKeyId        = CommFun.IsNullCheck(dt.Rows[0]["KeyId"], CommFun.datatypes.vartypestring).ToString();
                string sTemplateName = CommFun.IsNullCheck(dt.Rows[0]["TemplateId"], CommFun.datatypes.vartypestring).ToString();

                M.MandrillApi api = new M.MandrillApi(sKeyId, true);

                M.EmailMessage emailmsg = new M.EmailMessage();
                emailmsg.from_name   = sFromName;
                emailmsg.from_email  = sUserId;
                emailmsg.to          = argToAddress;
                emailmsg.attachments = argAttachment;
                emailmsg.merge       = true;
                emailmsg.AddGlobalVariable("SUBJECT", argSubject);
                emailmsg.AddGlobalVariable("BODY", argContent);

                emailmsg.AddGlobalVariable("FlatNo", "5-102");
                emailmsg.AddGlobalVariable("PaidAmount", "0");
                emailmsg.AddGlobalVariable("Balance", "6,70,070.00");
                emailmsg.AddGlobalVariable("Project", "Sky Dugar");
                emailmsg.AddGlobalVariable("Company", "Dugar");

                List <M.TemplateContent> tempContent = new List <M.TemplateContent>();
                tempContent.Add(new M.TemplateContent()
                {
                    name = sTemplateName
                });

                List <M.EmailResult> errorMsg = api.SendMessage(emailmsg, sTemplateName, tempContent);

                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #14
0
        /// <summary>
        /// Send a new transactional message through Mandrill.
        /// </summary>
        /// <param name="recipients"></param>
        /// <param name="subject"></param>
        /// <param name="content"></param>
        /// <param name="from"></param>
        /// <returns></returns>
        public Task<List<EmailResult>> SendMessageAsync(IEnumerable<EmailAddress> recipients, string subject, string content, EmailAddress from)
        {
            var message = new EmailMessage()
            {
                to = recipients,
                from_name = from.name,
                from_email = from.email,
                subject = subject,
                html = content,
                auto_text = true,
            };

            return SendMessageAsync(message);
        }
Beispiel #15
0
        //vikash
        public string SendCareerMailByMandrill(string Host, int port, string from, string passsword, string to, string bcc, string cc, string subject, string body, string sendgridUserName, string sendgridPassword, string file, string filename, string filetype)
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                var fileBytes = File.ReadAllBytes(file);
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email  = from;
                message.from_name   = "Socioboard Support";
                message.html        = body;
                message.subject     = subject;
                message.attachments = new[]
                {
                    new attachment
                    {
                        content = Convert.ToBase64String(fileBytes),
                        name    = filename,
                        type    = filetype
                    }
                };
                message.to = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(sendgridPassword, false);
                var    results = mandrillApi.SendMessage(message);
                string status  = string.Empty;
                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent)
                    {
                        logger.Error(result.Email + " " + result.RejectReason);
                    }
                }

                sendMailByMandrill = "Success";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);
                sendMailByMandrill = ex.Message;
            }

            return(sendMailByMandrill);
        }
Beispiel #16
0
        public String EmailNewLogin(String name, String email, String deviceInfo, DateTime dateLogin, String deviceIP)
        {
            string result = "error";

            try
            {
                UserInfo user = new UserInfo();
                Mandrill.Models.TemplateInfo template = apimd.TemplateInfo("multiples_dispositivos");
                Mandrill.EmailMessage        msg      = new Mandrill.EmailMessage
                {
                    from_email = "*****@*****.**"
                    ,
                    from_name = "YoVendoRecarga.com"
                    ,
                    auto_text = false
                    ,
                    subject = "Nuevo Inicio de Sesión"
                    ,
                    to = new List <Mandrill.EmailAddress> {
                        new Mandrill.EmailAddress(email, name, "to")
                    }
                    ,
                    bcc_address = "*****@*****.**"
                    ,
                    merge_language = "mailchimp"
                    ,
                    merge = true
                };

                msg.AddGlobalVariable("NAME", name);
                msg.AddGlobalVariable("EMAIL", email);
                msg.AddGlobalVariable("MODELO", deviceInfo);
                msg.AddGlobalVariable("DATE", dateLogin.ToString("dd/MM/yy"));
                msg.AddGlobalVariable("TIME", dateLogin.ToString("hh:mm:ss tt"));
                msg.AddGlobalVariable("ADDRESS", deviceIP);

                apimd.SendMessage(msg, template.name, null);
                result = "success";
            }
            catch (Exception)
            {
                result = "error";
                throw;
            }

            return(result);
        }
        private static void CreateAndSendEmailMessage(WebHookEvent evt)
        {
            var metadata = ParseMetadataFromMandrill(evt);
            var message  = new Mandrill.EmailMessage();

            message.to = new List <Mandrill.EmailAddress>()
            {
                new EmailAddress {
                    email = "*****@*****.**"
                }
            };

            message.subject    = String.Format("TEST Bounced email notification", evt.Event);
            message.from_email = "*****@*****.**";

            StringBuilder body = new StringBuilder();

            body.AppendFormat("An email being sent to {0} has bounced.", evt.Msg.Email).AppendLine();
            body.AppendFormat("Email sent from address: {0}", evt.Msg.Sender).AppendLine();
            body.AppendFormat("Email subject line: {0}", evt.Msg.Subject).AppendLine();
            body.AppendLine();
            body.AppendLine("Please contact the customer and get an updated email address, or remove this email address from all systems.");
            body.AppendLine("This includes: Goldmine, JobTracker & SecureFTP");
            body.AppendFormat("Message sent at: {0}", TimeZoneInfo.ConvertTimeFromUtc(evt.Msg.TimeStamp, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"))).AppendLine();
            body.AppendLine("----");

            if (metadata.ContainsKey("CustID"))
            {
                body.AppendFormat("Customer ID: {0}", metadata["CustID"]);
                body.AppendLine();
            }

            if (evt.Msg.Tags != null)
            {
                body.Append("System Tags:");
                foreach (string tag in evt.Msg.Tags)
                {
                    body.Append(" " + tag);
                }
            }

            message.text = body.ToString();

            _api.SendMessage(message);
        }
        public void SendPasswordRecoveryEmail(string email, string link)
        {
            if (!_setting.UseMandrill)
            {
                return;
            }

            var message = new EmailMessage
            {
                to = new[] { new EmailAddress(email) },
                from_email = _setting.MandrillFrom,
                subject = "Jarbo password recovery"
            };

            message.AddGlobalVariable("QUESTIONLINK", link);

            _api.SendMessage(message, _setting.MandrillPasswordRecoveryTemplate, null);
        }
        private static void CreateAndSendEmailMessage(WebHookEvent evt)
        {
            var metadata = ParseMetadataFromMandrill(evt);
            var message = new Mandrill.EmailMessage();

            message.to = new List<Mandrill.EmailAddress>()
                    {
                        new EmailAddress{
                            email = "*****@*****.**"
                        }
                    };

            message.subject = String.Format("TEST Bounced email notification", evt.Event);
            message.from_email = "*****@*****.**";

            StringBuilder body = new StringBuilder();
            body.AppendFormat("An email being sent to {0} has bounced.", evt.Msg.Email).AppendLine();
            body.AppendFormat("Email sent from address: {0}", evt.Msg.Sender).AppendLine();
            body.AppendFormat("Email subject line: {0}", evt.Msg.Subject).AppendLine();
            body.AppendLine();
            body.AppendLine("Please contact the customer and get an updated email address, or remove this email address from all systems.");
            body.AppendLine("This includes: Goldmine, JobTracker & SecureFTP");
            body.AppendFormat("Message sent at: {0}", TimeZoneInfo.ConvertTimeFromUtc(evt.Msg.TimeStamp, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"))).AppendLine();
            body.AppendLine("----");

            if (metadata.ContainsKey("CustID"))
            {
                body.AppendFormat("Customer ID: {0}", metadata["CustID"]);
                body.AppendLine();
            }

            if (evt.Msg.Tags != null)
            {
                body.Append("System Tags:");
                foreach (string tag in evt.Msg.Tags)
                {
                    body.Append(" "+tag);
                }
            }

            message.text = body.ToString();

            _api.SendMessage(message);
        }
Beispiel #20
0
        public String EmailReferred(String email, String name, String phone, String issue)
        {
            string result = "error";

            try
            {
                UserInfo user = new UserInfo();
                //Mandrill.Models.TemplateInfo template = apimd.TemplateInfo("FRM_CONTACTO");
                Mandrill.EmailMessage msg = new Mandrill.EmailMessage
                {
                    from_email = "*****@*****.**"
                    ,
                    from_name = "YoVendoRecarga"
                    ,
                    auto_text = false
                    ,
                    subject = "Únete a nosotros"
                    ,
                    to = new List <Mandrill.EmailAddress> {
                        new Mandrill.EmailAddress(email, email, "to")
                    }
                    //to = new List<Mandrill.EmailAddress> { new Mandrill.EmailAddress("*****@*****.**", "*****@*****.**", "to"), new Mandrill.EmailAddress("*****@*****.**", "Carlos Geovanny", "to") }
                    ,
                    merge_language = "mailchimp"
                    ,
                    merge = true
                    ,
                    bcc_address = "*****@*****.**"
                    ,
                    text = name + " " + "quiere que te descargues la aplicación de YoVendoRecarga.com! Para descargarla y comenzar a vender recargas crea una cuenta usando el siguiente enlace: http://www.yovendorecarga.com/SV/Account/Registrate"
                };

                apimd.SendMessage(msg);
                result = "exito";
            }
            catch (Exception)
            {
                result = "error";
                throw;
            }


            return(result);
        }
Beispiel #21
0
        public String EmailTransferConfirmationReceived(String pUserEmail, String pNameDepositor, String pReferenceNumber, String pBank, String pAmount, String pUserNames, String pDate)
        {
            string result = "error";

            try
            {
                UserInfo user = new UserInfo();
                Mandrill.Models.TemplateInfo template = apimd.TemplateInfo("Confirmación_transferencia_recibida");
                Mandrill.EmailMessage        msg      = new Mandrill.EmailMessage
                {
                    from_email = "*****@*****.**"
                    ,
                    from_name = "YoVendoRecarga.com"
                    ,
                    auto_text = false
                    ,
                    subject = "Transferencia YoVendoRecarga"
                    ,
                    to = new List <Mandrill.EmailAddress> {
                        new Mandrill.EmailAddress(pUserEmail, pUserNames, "to")
                    }
                    ,
                    bcc_address = "*****@*****.**"
                    ,
                    merge_language = "mailchimp"
                    ,
                    merge = true
                };
                msg.AddGlobalVariable("NUMBER", pReferenceNumber);
                msg.AddGlobalVariable("BANK", pBank);
                msg.AddGlobalVariable("AMOUNT", "$ " + pAmount);
                msg.AddGlobalVariable("DATE", pDate);
                msg.AddGlobalVariable("NAME", pNameDepositor);
                msg.AddGlobalVariable("USER", pUserNames);
                apimd.SendMessage(msg, template.name, null);
            }
            catch (Exception)
            {
                result = "error";
                throw;
            }

            return(result);
        }
        public string SendMailByMandrill(string Host, int port, string from, string name, string passsword, string to, string bcc, string cc, string subject, string body, string sendgridUserName, string sendgridPassword)
        {
            string sendMailByMandrill = string.Empty;

            //GetStatusFromSendMailByMandrill(Host, port, from, passsword, to, bcc, cc, subject, body, sendgridUserName, sendgridPassword);

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                //message.from_email = from;
                //message.from_name = from;//"AlexPieter";
                message.from_email = from;
                message.from_name  = name;
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };

                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(sendgridPassword, false);
                var    results = mandrillApi.SendMessage(message);
                string status  = string.Empty;
                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent)
                    {
                        logger.Error(result.Email + " " + result.RejectReason);
                    }
                    //status = Mandrill.EmailResultStatus.Sent.ToString();
                    //  LogManager.Current.LogError(result.Email, "", "", "", null, string.Format("Email failed to send: {0}", result.RejectReason));
                }

                sendMailByMandrill = "Success";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);
                sendMailByMandrill = ex.Message;
            }

            return(sendMailByMandrill);
        }
Beispiel #23
0
        public String EmailRequestBalance(String masterEmail, String sellerName, String masterName)
        {
            string result = "error";

            try
            {
                UserInfo user = new UserInfo();
                Mandrill.Models.TemplateInfo template = apimd.TemplateInfo("Solicitud_vendedor_a_master");
                Mandrill.EmailMessage        msg      = new Mandrill.EmailMessage
                {
                    from_email = "*****@*****.**"
                    ,
                    from_name = "YoVendoRecarga.com"
                    ,
                    auto_text = false
                    ,
                    subject = "Solicitud de saldo"
                    ,
                    to = new List <Mandrill.EmailAddress> {
                        new Mandrill.EmailAddress(masterEmail, masterName, "to")
                    }
                    ,
                    bcc_address = "*****@*****.**"
                    ,
                    merge_language = "mailchimp"
                    ,
                    merge = true
                };
                msg.AddGlobalVariable("NAME", sellerName);
                msg.AddGlobalVariable("USER", masterName);
                msg.AddGlobalVariable("LINK", "https://yovendorecarga.com/SV/Account/LogIn");
                apimd.SendMessage(msg, template.name, null);
                result = "exito";
            }
            catch (Exception)
            {
                result = "error";
                throw;
            }

            return(result);
        }
Beispiel #24
0
        public String EmailUserProfile100(String email, String name, String code)
        {
            string result = "error";

            try
            {
                UserInfo user = new UserInfo();
                Mandrill.Models.TemplateInfo template = apimd.TemplateInfo("Saldo_aplicado_exitosamente ");
                Mandrill.EmailMessage        msg      = new Mandrill.EmailMessage
                {
                    from_email = "*****@*****.**"
                    ,
                    from_name = "YoVendoRecarga.com"
                    ,
                    auto_text = false
                    ,
                    subject = "Saldo Aplicado"
                    ,
                    to = new List <Mandrill.EmailAddress> {
                        new Mandrill.EmailAddress(email, name, "to")
                    }
                    ,
                    bcc_address = "*****@*****.**"
                    ,
                    merge_language = "mailchimp"
                    ,
                    merge = true
                };
                msg.AddGlobalVariable("NAME", name);
                msg.AddGlobalVariable("CODE", code);
                msg.AddGlobalVariable("EMAIL", email);
                apimd.SendMessage(msg, template.name, null);
                result = "exito";
            }
            catch (Exception)
            {
                result = "error";
                throw;
            }

            return(result);
        }
Beispiel #25
0
        public string SendMailWithAttachment(string from, string passsword, string to, string bcc, string cc, string subject, string body, string file, string filename, string filetype, string MandrillUserName = "", string MandrillPassword = "")
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name  = from;
                message.html       = body;
                message.subject    = subject;
                var fileBytes = File.ReadAllBytes(file);
                message.attachments = new[]
                {
                    new attachment
                    {
                        content = Convert.ToBase64String(fileBytes),
                        name    = filename,
                        type    = filetype
                    }
                };
                message.to = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(MandrillPassword, false);
                var results = mandrillApi.SendMessage(message);

                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent || result.Status == Mandrill.EmailResultStatus.Queued)
                    {
                        sendMailByMandrill = "Success";
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(sendMailByMandrill);
        }
        public string SendMailWithAttachment(string from, string passsword, string to, string bcc, string cc, string subject, string body, string file, string filename, string filetype, string MandrillUserName = "", string MandrillPassword = "")
        {
            string sendMailByMandrill = string.Empty;
            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name = from;
                message.html = body;
                message.subject = subject;
                var fileBytes = File.ReadAllBytes(file);
                message.attachments = new[]
                              {
                                  new attachment
                                  {
                                      content = Convert.ToBase64String(fileBytes),
                                      name = filename,
                                      type = filetype
                                  }
                              };
                message.to = new List<Mandrill.EmailAddress>()
                {
                  new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(MandrillPassword, false);
                var results = mandrillApi.SendMessage(message);

                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent || result.Status == Mandrill.EmailResultStatus.Queued)
                    {
                        sendMailByMandrill = "Success";
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return sendMailByMandrill;
        }
Beispiel #27
0
        public String EmailRestorePassword(String email, String url, String name)
        {
            string result = "error";

            try
            {
                UserInfo user = new UserInfo();
                Mandrill.Models.TemplateInfo template = apimd.TemplateInfo("Restablecer_contraseña");
                Mandrill.EmailMessage        msg      = new Mandrill.EmailMessage
                {
                    from_email = "*****@*****.**"
                    ,
                    from_name = "YoVendoRecarga.com"
                    ,
                    auto_text = false
                    ,
                    subject = "Reestablecer Contraseña"
                    ,
                    to = new List <Mandrill.EmailAddress> {
                        new Mandrill.EmailAddress(email, name, "to")
                    }
                    ,
                    bcc_address = "*****@*****.**"
                    ,
                    merge_language = "mailchimp"
                    ,
                    merge = true
                };
                msg.AddGlobalVariable("NAME", name);
                msg.AddGlobalVariable("LINK", url);

                apimd.SendMessage(msg, template.name, null);
            }
            catch (Exception)
            {
                result = "error";
                throw;
            }

            return(result);
        }
        public void NewTask(NewTaskData data)
        {
            if (!_setting.UseMandrill)
            {
                return;
            }

            var message = new EmailMessage
            {
                to = new[] { new EmailAddress(_setting.JarbooInfoEmail) },
                from_email = _setting.MandrillFrom,
                subject = "New task"
            };

            message.AddGlobalVariable("CUSTOMERNAME", data.CustomerName);
            message.AddGlobalVariable("TASKNAME", data.TaskTitle);
            message.AddGlobalVariable("PROJECTNAME", data.ProjectName);
            message.AddGlobalVariable("TASKDESCRIPTION", data.TaskDescription);
            message.AddGlobalVariable("TASKLINK", _urlConstructor.TaskView(data.TaskId));

            _api.SendMessage(message, _setting.MandrillNewTaskTemplate, null);
        }
        public string SendAddNewsLatterMail(string Host, int port, string from, string passsword, string to, string subject, string body)
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name  = from;
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };

                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(passsword, false);
                var results = mandrillApi.SendMessage(message);

                foreach (var result in results)
                {
                    if (result.Status != Mandrill.EmailResultStatus.Sent)
                    {
                        // logger.Error(result.Email + " " + result.RejectReason);
                    }
                    //  LogManager.Current.LogError(result.Email, "", "", "", null, string.Format("Email failed to send: {0}", result.RejectReason));
                }

                sendMailByMandrill = "Success";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                //logger.Error(ex.Message);
            }

            return(sendMailByMandrill);
        }
Beispiel #30
0
        /// <summary>
        /// Send a new transactional message through Mandrill.
        /// </summary>
        /// <param name="recipients"></param>
        /// <param name="subject"></param>
        /// <param name="content"></param>
        /// <param name="from"></param>
        /// <returns></returns>
        public Task<List<EmailResult>> SendMessageAsync(IEnumerable<EmailAddress> recipients, string subject, string content, EmailAddress from)
        {
            var path = "/messages/send.json";

            var message = new EmailMessage()
            {
                to = recipients,
                from_name = from.name,
                from_email = from.email,
                subject = subject,
                html = content,
                auto_text = true,
            };

            dynamic payload = new ExpandoObject();
            payload.message = message;

            Task<IRestResponse> post = PostAsync(path, payload);

            return post.ContinueWith(p =>
            {
                return JSON.Parse<List<EmailResult>>(p.Result.Content);
            }, TaskContinuationOptions.ExecuteSynchronously);
        }
 public List<EmailResult> SendMessage(EmailMessage message, DateTime send_at = new DateTime())
 {
     return SendMessageAsync(message, send_at).Result;
 }
Beispiel #32
0
 public List <EmailResult> SendMessage(EmailMessage message, DateTime send_at = new DateTime())
 {
     return(SendMessageAsync(message, send_at).Result);
 }
        public string SendDemoMailByMandrill(string Host, int port, string from, string passsword, string to, string bcc, string cc, string subject, string body, string sendgridUserName, string sendgridPassword)
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                message.from_email = from;
                message.from_name  = sendgridUserName;
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };
                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(sendgridPassword, false);
                var    results      = mandrillApi.SendMessage(message);
                string status       = string.Empty;
                string replysubject = string.Empty;
                string replybody    = string.Empty;
                foreach (var result in results)
                {
                    if (result.Status == Mandrill.EmailResultStatus.Sent || result.Status == Mandrill.EmailResultStatus.Queued)
                    {
                        replysubject = "Request Rcieved";
                        replybody    = "Hello there,</br>We have received your request for a demo. </br>Our Support team will connect to you in time.</br>Warm regards,<p>Best regards,<br/><br />" +
                                       "Support Team<br/>Socioboard Technologies Pvt. Ltd.<br /><br /><a href=\"http://www.socioboard.com\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/logo-txt2_zpsc7861ad5.png\" alt=\"\"></a></p>" +
                                       "<p style=\"font-family:Calibri(Body); font-size:12px;.\"><b>Mumbai Office:</b> Unit 206, Shri Krishna Building,Lokhandwala, Andheri West,Mumbai 400053India </br>" +
                                       "<b>Phone:</b> +91-90090-23807, <b>Skype:</b> socioboard.support </br>Socioboard Enterprise and SaaS Versions: <a href=\"http://www.socioboard.com\">http://www.socioboard.com<br /></a> Socioboard Community Version: <a href=\"http://www.socioboard.org\">http://www.socioboard.org</a><br>" +
                                       "</p><table><tr><td><a href=\"https://www.facebook.com/SocioBoard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/facebook-48_zps62d89d59.png\" alt=”Facebook” width=”35? height=”35? border=0></a></td>" +
                                       "<td><a href=\"https://plus.google.com/s/socioboard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/googleplus-30_zps62d89d59.png\" alt=\"G+\"width=”35? height=”35? border=0></a></td>" +
                                       "<td><a href=\"http://www.linkedin.com/company/socioboard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/linkedin-48_zpsceb0f4e2.png\" alt=”LinkedIn” width=”35? height=”35? border=0></a></td>" +
                                       "<td><a href=\"https://twitter.com/Socioboard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/twitter-48_zps57c64c90.png\" alt=”Twitter” width=”35? height=”35? border=0></a></td>" +
                                       "</tr></table>";
                    }
                    else
                    {
                        logger.Error(result.Email + " " + result.RejectReason);
                        replysubject = "Request Not Recieved";
                        replybody    = "Hi there,</br>Oops!!</br>Apparently there was some error and we couldn’t receive your resume.</br>Please try again." +
                                       "<p>Best regards,<br />Support Team<br/>Socioboard Technologies Pvt. Ltd.<br /><a href=\"http://www.socioboard.com\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/logo-txt2_zpsc7861ad5.png\" alt=\"\"></a>" +
                                       "<br/></p><p style=\"font-family:Calibri(Body); font-size:12px;\"><b>Bangalore Office:</b> L V Complex, 2nd Floor, No.58, 7th Block, 80 Feet Road, Koramangala, Bangalore-560095</br>" +
                                       "Karnataka, India</br><b><br />Phone:</b> +91-90090-23807, <b>Skype:</b> socioboard.support </br><br />Socioboard Enterprise and SaaS Versions: <a href=\"http://www.socioboard.com\">http://www.socioboard.com<br />" +
                                       "</a>  Socioboard Community Version: <a href=\"http://www.socioboard.org\">http://www.socioboard.org</a><br></p><table><tr>" +
                                       "<td><a href=\"https://www.facebook.com/SocioBoard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/facebook-48_zps62d89d59.png\" alt=”Facebook” width=”35? height=”35? border=0></a></td>" +
                                       "<td><a href=\"https://plus.google.com/s/socioboard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/googleplus-30_zps62d89d59.png\" alt=\"G+\"width=”35? height=”35? border=0></a></td>" +
                                       "<td><a href=\"http://www.linkedin.com/company/socioboard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/linkedin-48_zpsceb0f4e2.png\" alt=”LinkedIn” width=”35? height=”35? border=0></a></td>" +
                                       "<td><a href=\"https://twitter.com/Socioboard\" target=\"_blank\"><img src=\"http://i739.photobucket.com/albums/xx33/Alan_Wilson3526/twitter-48_zps57c64c90.png\" alt=”Twitter” width=”35? height=”35? border=0></a></td>" +
                                       "</tr></table>";
                    }
                    string rtn = ReplyForCareerMail(to, replybody, replysubject, from, sendgridPassword);
                }

                sendMailByMandrill = "Success";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);

                sendMailByMandrill = ex.Message;
            }

            return(sendMailByMandrill);
        }
 /// <summary>
 ///     The send raw message.
 /// </summary>
 /// <param name="raw_message">
 ///     The raw_message.
 /// </param>
 /// <param name="send_at">
 ///     The send_at.
 /// </param>
 /// <returns>
 ///     The <see cref="List" />.
 /// </returns>
 public List <EmailResult> SendRawMessage(EmailMessage raw_message, DateTime?send_at = null, bool async = false)
 {
     return(this.SendRawMessageAsync(raw_message, send_at, async).Result);
 }
Beispiel #35
0
 /// <summary>
 ///     The send message.
 /// </summary>
 /// <param name="message">
 ///     The message.
 /// </param>
 /// <param name="send_at">
 ///     The send_at.
 /// </param>
 /// <returns>
 ///     The <see cref="List" />.
 /// </returns>
 public List <EmailResult> SendMessage(EmailMessage message, DateTime?send_at = null)
 {
     return(this.SendMessageAsync(message, send_at).Result);
 }
Beispiel #36
0
        /// <summary>
        ///     Send a new transactional message through Mandrill using a template
        /// </summary>
        /// <param name="message">
        ///     The message.
        /// </param>
        /// <param name="templateName">
        /// </param>
        /// <param name="templateContents">
        /// </param>
        /// <param name="send_at">
        ///     The send_at.
        /// </param>
        /// <returns>
        ///     The <see cref="Task" />.
        /// </returns>
        public Task<List<EmailResult>> SendMessageAsync(
            EmailMessage message,
            string templateName,
            IEnumerable<TemplateContent> templateContents,
            DateTime send_at = new DateTime())
        {
            string path = "/messages/send-template.json";

            dynamic payload = new ExpandoObject();
            payload.message = message;
            payload.template_name = templateName;
            payload.template_content = templateContents != null ? templateContents : Enumerable.Empty<TemplateContent>();
            payload.send_at = (send_at == DateTime.MinValue)
                                  ? string.Empty
                                  : send_at.ToString(Configuration.DATE_TIME_FORMAT_STRING);

            Task<IRestResponse> post = this.PostAsync(path, payload);
            return post.ContinueWith(
                p => { return JSON.Parse<List<EmailResult>>(p.Result.Content); },
                TaskContinuationOptions.ExecuteSynchronously);
        }
Beispiel #37
0
 /// <summary>
 ///     Send a new transactional message through Mandrill using a template
 /// </summary>
 /// <param name="message">
 ///     The message.
 /// </param>
 /// <param name="templateName">
 /// </param>
 /// <param name="templateContents">
 /// </param>
 /// <param name="send_at">
 ///     The send_at.
 /// </param>
 /// <returns>
 ///     The <see cref="List" />.
 /// </returns>
 public List<EmailResult> SendMessage(
     EmailMessage message,
     string templateName,
     IEnumerable<TemplateContent> templateContents,
     DateTime send_at = new DateTime())
 {
     return SendMessageAsync(message, templateName, templateContents, send_at).Result;
 }
 /// <summary>
 /// The send raw message.
 /// </summary>
 /// <param name="raw_message">
 /// The raw_message.
 /// </param>
 /// <param name="send_at">
 /// The send_at.
 /// </param>
 /// <returns>
 /// The <see cref="List"/>.
 /// </returns>
 public List <EmailResult> SendRawMessage(EmailMessage raw_message, DateTime send_at = new DateTime())
 {
     return(this.SendRawMessageAsync(raw_message, send_at).Result);
 }
        private void SendSingleMail(string email_subject, string email_body, IEnumerable<string> email_list, MandrillApi mandrill, List<UDT.MandrillSendLog> MandrillSendLogs, dynamic o, StudentRecord Student, bool IsCC)
        {
            if (email_list.Count() == 0)
                return;

            string current_email = string.Empty;
            try
            {
                //  gmail 改為 mandrill

                //System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
                //System.Net.NetworkCredential cred = new System.Net.NetworkCredential(this.SenderEmail, this.SenderPassword);

                //mail.Subject = email_subject;
                //mail.From = new System.Net.Mail.MailAddress(this.SenderEmail);

                //foreach (string email_address in email_list)
                //    mail.To.Add(email_address);

                //mail.IsBodyHtml = true;
                //mail.Body = email_body;

                //System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");
                //smtp.UseDefaultCredentials = false;
                //smtp.EnableSsl = true;
                //smtp.Credentials = cred;
                //smtp.Port = 587;
                //smtp.Send(mail);

                //mandrill = new MandrillApi(this.MandrillAPIKey, false);

                List<EmailAddress> EmailAddresss = new List<EmailAddress>();
                foreach (string mail_to in email_list)
                {
                    current_email = mail_to;

                    EmailMessage message = new EmailMessage();
                    message.auto_text = false;
                    message.from_email = this.from_email;
                    message.from_name = this.from_name;
                    EmailAddress mt = new EmailAddress();

                    mt.email = mail_to;
                    mt.name = string.Empty;
                    message.to = new List<EmailAddress>(){ mt };

                    message.track_clicks = false;
                    message.track_opens = false;
                    message.html = email_body;
                    message.important = false;
                    message.merge = false;
                    message.preserve_recipients = false;
                    message.subject = email_subject;

                    List<EmailResult> results = mandrill.SendMessageSync(message);

                    //  Log Email Result
                    foreach (EmailResult result in results)
                    {
                        UDT.MandrillSendLog MandrillSendLog = new UDT.MandrillSendLog();

                        if (Student != null)
                        {
                            MandrillSendLog.StudentID = int.Parse(Student.ID);
                            MandrillSendLog.StudentNumber = Student.StudentNumber;
                            MandrillSendLog.StudentName = Student.Name;
                        }

                        MandrillSendLog.CourseID = int.Parse(o.CourseID + "");
                        MandrillSendLog.CourseName = o.CourseName + "";
                        MandrillSendLog.SubjectID = int.Parse(o.SubjectID + "");
                        MandrillSendLog.SubjectName = o.SubjectName + "";
                        MandrillSendLog.TeacherID = int.Parse(o.TeacherID + "");
                        MandrillSendLog.TeacherName = o.TeacherName + "";
                        MandrillSendLog.SchoolYear = o.SchoolYear + "";
                        MandrillSendLog.Semester = o.Semester + "";
                        MandrillSendLog.SurveyBeginTime = o.SurveyBeginTime + "";
                        MandrillSendLog.SurveyEndTime = o.SurveyEndTime + "";
                        MandrillSendLog.IsCC = IsCC;

                        MandrillSendLog.CCEmailAddress = string.Empty;
                        MandrillSendLog.CurrentUserAccount = this.user_account;
                        MandrillSendLog.Device = "desktop";
                        MandrillSendLog.EmailCategory = this.email_category;
                        MandrillSendLog.GUID = this.guid;
                        MandrillSendLog.RecipientEmailAddress = mail_to;// string.Join(",", email_list);
                        MandrillSendLog.RejectReason = result.RejectReason;
                        MandrillSendLog.ResultEmail = result.Email;
                        MandrillSendLog.ResultID = result.Id;
                        MandrillSendLog.SenderEmailAddress = this.from_email;
                        MandrillSendLog.SenderName = this.from_name;
                        MandrillSendLog.TimeStamp = this.time_stamp;
                        MandrillSendLog.Source = string.Empty;

                        MandrillSendLogs.Add(MandrillSendLog);
                    }

                    //EmailAddresss.Add(mt);
                }
            }
            //  Log Email Error
            catch (Exception ex)
            {
                MandrillException error = (MandrillException)ex;
                UDT.MandrillSendLog MandrillSendLog = new UDT.MandrillSendLog();

                if (Student != null)
                {
                    MandrillSendLog.StudentID = int.Parse(Student.ID);
                    MandrillSendLog.StudentNumber = Student.StudentNumber;
                    MandrillSendLog.StudentName = Student.Name;
                }

                MandrillSendLog.CourseID = int.Parse(o.CourseID + "");
                MandrillSendLog.CourseName = o.CourseName + "";
                MandrillSendLog.SubjectID = int.Parse(o.SubjectID + "");
                MandrillSendLog.SubjectName = o.SubjectName + "";
                MandrillSendLog.TeacherID = int.Parse(o.TeacherID + "");
                MandrillSendLog.TeacherName = o.TeacherName + "";
                MandrillSendLog.SchoolYear = o.SchoolYear + "";
                MandrillSendLog.Semester = o.Semester + "";
                MandrillSendLog.SurveyBeginTime = o.SurveyBeginTime + "";
                MandrillSendLog.SurveyEndTime = o.SurveyEndTime + "";
                MandrillSendLog.IsCC = IsCC;

                MandrillSendLog.CCEmailAddress = string.Empty;
                MandrillSendLog.CurrentUserAccount = this.user_account;
                MandrillSendLog.Device = "desktop";
                MandrillSendLog.EmailCategory = this.email_category;
                MandrillSendLog.GUID = this.guid;
                MandrillSendLog.RecipientEmailAddress = current_email;// string.Join(",", email_list);
                MandrillSendLog.ErrorCode = error.Error.code;
                MandrillSendLog.ErrorMessage = error.Error.message;
                MandrillSendLog.ErrorName = error.Error.name;
                MandrillSendLog.ErrorStatus = error.Error.status;
                MandrillSendLog.SenderName = this.from_name;
                MandrillSendLog.SenderEmailAddress = this.from_email;
                MandrillSendLog.TimeStamp = this.time_stamp;
                MandrillSendLog.Source = error.ToString();

                MandrillSendLogs.Add(MandrillSendLog);
            }
        }
        /// <summary>
        ///     Creates a MailMessage for the current MailAttribute instance.
        /// </summary>
        protected EmailMessage GenerateProspectiveMailMessage(MailAttributes mail)
        {
            var idnmapping = new IdnMapping();

            var emailAddresses = mail.To
                .Select(
                    t =>
                    {
                        var domainSplit = t.Address.Split('@');
                        return new EmailAddress(domainSplit[0] + "@" + idnmapping.GetAscii(domainSplit[1])) { type = "to" };
                    })
                .Union(
                    mail.Cc.Select(
                        t =>
                        {
                            var domainSplit = t.Address.Split('@');
                            return new EmailAddress(domainSplit[0] + "@" + idnmapping.GetAscii(domainSplit[1])) { type = "cc" };
                        }))
                .Union(
                    mail.Bcc.Select(
                        t =>
                        {
                            var domainSplit = t.Address.Split('@');
                            return new EmailAddress(domainSplit[0] + "@" + idnmapping.GetAscii(domainSplit[1])) { type = "bcc" };
                        }));       

            //create base message
            var message = new EmailMessage
            {
                from_name = mail.From.DisplayName,
                from_email = mail.From.Address,
                to = emailAddresses,
                subject = mail.Subject,
                important = mail.Priority == MailPriority.High,
                preserve_recipients = true
            };

            // We need to set Reply-To as a custom header
            if (mail.ReplyTo.Any())
            {
                message.AddHeader("Reply-To", string.Join(" , ", mail.ReplyTo));
            }

            // Adding content to the message
            foreach (var view in mail.AlternateViews)
            {
                var reader = new StreamReader(view.ContentStream, Encoding.UTF8, true, 1024, true);
                
                    var body = reader.ReadToEnd();

                    if (view.ContentType.MediaType == MediaTypeNames.Text.Plain)
                    {
                        message.text = body;
                    }
                    if (view.ContentType.MediaType == MediaTypeNames.Text.Html)
                    {
                        message.html = body;
                    }      
            }

            // Going through headers and adding them to the message
            mail.Headers.ToList().ForEach(h => message.AddHeader(h.Key, h.Value));

            // Adding the attachments
            var attachments = new List<email_attachment>();
            foreach (var mailAttachment in mail.Attachments.Select(attachment => Utils.AttachmentCollection.ModifyAttachmentProperties(attachment.Key, attachment.Value, false)))
            {
                using (var stream = new MemoryStream())
                {
                    mailAttachment.ContentStream.CopyTo(stream);
                    var base64Data = Convert.ToBase64String(stream.ToArray());
                    attachments.Add(new email_attachment
                    {
                        content = base64Data,
                        name = ReplaceGermanCharacters(mailAttachment.Name),
                        type = mailAttachment.ContentType.MediaType,
                    });
                }
            }

            message.attachments = attachments;

            return message;
        }
Beispiel #41
0
        public static void SendProgressBill(List <M.EmailAddress> argToAddress, string argCompany, string argProject, string argFlatNo, decimal argCurrentAmount, decimal argCurrentNetAmount, decimal argGross, decimal argNetAmount, decimal argPaidAmount, DataTable argdt)
        {
            try
            {
                //string activationLink = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/Register/Activation.aspx?id=" + "";

                Cursor.Current = Cursors.WaitCursor;

                DataTable dt = new DataTable();
                dt = CommFun.GetMandrillSetting(1);
                if (dt == null)
                {
                    return;
                }
                if (dt.Rows.Count == 0)
                {
                    return;
                }

                string sFromName     = CommFun.IsNullCheck(dt.Rows[0]["FromName"], CommFun.datatypes.vartypestring).ToString();
                string sUserId       = CommFun.IsNullCheck(dt.Rows[0]["UserId"], CommFun.datatypes.vartypestring).ToString();
                string sKeyId        = CommFun.IsNullCheck(dt.Rows[0]["KeyId"], CommFun.datatypes.vartypestring).ToString();
                string sTemplateName = CommFun.IsNullCheck(dt.Rows[0]["TemplateId"], CommFun.datatypes.vartypestring).ToString();

                M.MandrillApi api = new M.MandrillApi(sKeyId, true);

                M.EmailMessage emailmsg = new M.EmailMessage();
                emailmsg.from_name    = sFromName;
                emailmsg.from_email   = sUserId;
                emailmsg.to           = argToAddress;
                emailmsg.attachments  = null;
                emailmsg.merge        = true;
                emailmsg.track_opens  = true;
                emailmsg.track_clicks = true;
                emailmsg.important    = true;

                emailmsg.AddGlobalVariable("Company", argCompany);
                emailmsg.AddGlobalVariable("Project", argProject);
                emailmsg.AddGlobalVariable("FlatNo", argFlatNo);
                emailmsg.AddGlobalVariable("PaidAmount", argPaidAmount.ToString("n2"));
                emailmsg.AddGlobalVariable("Balance", (argNetAmount - argPaidAmount).ToString("n2"));

                StringBuilder sb = new StringBuilder();
                sb.AppendLine("<table border='1' cellpadding='0' cellspacing='0'>");
                if (argdt != null)
                {
                    sb.Append("<tr>");
                    foreach (DataColumn column in argdt.Columns)
                    {
                        sb.AppendFormat("<td>{0}</td>", HttpUtility.HtmlEncode(column.ColumnName));
                    }
                    sb.Append("</tr>");

                    foreach (DataRow row in argdt.Rows)
                    {
                        sb.Append("<tr>");
                        foreach (DataColumn column in argdt.Columns)
                        {
                            sb.AppendFormat("<td>{0}</td>", HttpUtility.HtmlEncode(row[column]));
                        }
                        sb.Append("</tr>");
                    }
                }
                sb.AppendLine("</table>");

                emailmsg.AddGlobalVariable("StageDetails", sb.ToString());

                List <M.TemplateContent> tempContent = new List <M.TemplateContent>();
                tempContent.Add(new M.TemplateContent()
                {
                    name = sTemplateName
                });

                List <M.EmailResult> errorMsg = api.SendMessage(emailmsg, sTemplateName, tempContent);

                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        //public async Task<List<EmailResult>> SendAsncTask(MailMessage mail)
        //{
        //      var message = ToMandrillMessage(mail);
        //    return await _mandrillClient.SendMessageAsync(message);
        //}
        /// <summary>
        /// Converts a .NET MailMessage to the required API proxy class 
        /// </summary>
        /// <param name="mail"></param>
        /// <returns></returns>
        private static EmailMessage ToMandrillMessage(MailMessage mail)
        {
            if (mail.CC.Any())
                throw new NotSupportedException("The CC field is not supported with the MandrillMailSender");

            if (mail.ReplyToList.Any())
                throw new NotSupportedException("The ReplyTo field is not supported with the MandrillMailSender");

            //create base message
            var message = new EmailMessage
            {
                from_name = mail.From.Address,
                from_email = mail.From.DisplayName,
                to = mail.To.Select(t => new EmailAddress(t.Address, t.DisplayName)),
                bcc_address = mail.Bcc.Any() ? mail.Bcc.First().Address : null,
                subject = mail.Subject,
            };

            //add headers
            for (int i = 0; i < mail.Headers.Count; i++)
            {
                message.AddHeader(mail.Headers.Keys[i], mail.Headers[i]);
            }

            //add content
            foreach (var view in mail.AlternateViews)
            {
                using (var reader = new StreamReader(view.ContentStream))
                {
                    var body = reader.ReadToEnd();

                    if (view.ContentType.MediaType == MediaTypeNames.Text.Plain)
                        message.text = body;

                    if (view.ContentType.MediaType == MediaTypeNames.Text.Html)
                        message.html = body;
                }
            }

            //add attachments
            var atts = new List<attachment>();
            foreach (var attachment in mail.Attachments)
            {
                using (var stream = new MemoryStream())
                {
                    attachment.ContentStream.CopyTo(stream);
                    var base64Data = Convert.ToBase64String(stream.ToArray());

                    atts.Add(new attachment
                    {
                        content = base64Data,
                        name = attachment.ContentId,
                        type = attachment.ContentType.MediaType,
                    });
                }
            }
            message.attachments = atts;

            return message;
        }
Beispiel #43
0
        /// <summary>
        ///     Send a new raw transactional message through Mandrill using a template
        /// </summary>
        /// <param name="message">
        ///     The message.
        /// </param>
        /// <param name="send_at">
        ///     The send_at.
        /// </param>
        /// <returns>
        ///     The <see cref="Task" />.
        /// </returns>
        public Task<List<EmailResult>> SendRawMessageAsync(EmailMessage message, DateTime send_at = new DateTime())
        {
            string path = "/messages/send-raw.json";

            dynamic payload = new ExpandoObject();
            payload.raw_message = message.raw_message;
            payload.from_email = message.from_email;
            payload.from_name = message.from_name;
            payload.send_at = (send_at == DateTime.MinValue)
                                  ? string.Empty
                                  : send_at.ToString(Configuration.DATE_TIME_FORMAT_STRING);

            // payload.to = message.to;  // Does not work as advertised, silently fails with {"email":"Array","status":"invalid"}
            Task<IRestResponse> post = this.PostAsync(path, payload);
            return post.ContinueWith(
                p => { return JSON.Parse<List<EmailResult>>(p.Result.Content); },
                TaskContinuationOptions.ExecuteSynchronously);
        }
        private void SendEmail(NotificationEmailDefintion defintion)
        {
            var emailMessage = new Mandrill.EmailMessage();

            emailMessage.from_email = defintion.ConsultantEmail;
            emailMessage.from_name  = defintion.ConsultantName;
            var newNotificationHtml = "";
            var consultantHtml      = "";

            try
            {
                var consultantStream =
                    Assembly.GetExecutingAssembly()
                    .GetManifestResourceStream("Task.Email.Template.ConsultantRow.html");
                consultantHtml = new StreamReader(consultantStream).ReadToEnd();
                if (defintion.Type == "Phone")
                {
                    var newContactStream =
                        Assembly.GetExecutingAssembly()
                        .GetManifestResourceStream("Task.Email.Template.NewPhoneCallNotificationTemplate.html");
                    newNotificationHtml = new StreamReader(newContactStream).ReadToEnd();
                }
                else if (defintion.Type == "Email")
                {
                    var newContactStream =
                        Assembly.GetExecutingAssembly()
                        .GetManifestResourceStream("Task.Email.Template.NewEmailNotificationTemplate.html");
                    newNotificationHtml = new StreamReader(newContactStream).ReadToEnd();
                }
                else if (defintion.Type == "Chat")
                {
                    var newContactStream =
                        Assembly.GetExecutingAssembly()
                        .GetManifestResourceStream("Task.Email.Template.NewChatNotificationTemplate.html");
                    newNotificationHtml = new StreamReader(newContactStream).ReadToEnd();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(
                    "Error when accessing embeded resources, NewContactEmail.html and ContactRow.html and ConsultantRow.html, Error Message: " +
                    e);
                throw;
            }


            List <EmailAddress> emailAddresses = new List <EmailAddress>();
            EmailAddress        emailAddress   = new EmailAddress();

            emailAddress.email = defintion.UserEmail;
            emailAddress.name  = defintion.UserName;
            emailAddresses.Add(emailAddress);
            emailMessage.to = emailAddresses;

            emailMessage.subject = "Ny Kontakt";

            var cosnultantRow = Render.StringToString(consultantHtml, defintion);
            var htmlMessage   = Render.StringToString(newNotificationHtml, defintion);

            htmlMessage = htmlMessage.Replace("[[ConsultantRow]]", cosnultantRow);

            emailMessage.html = htmlMessage;

            emailSender.Send(emailMessage);
        }
Beispiel #45
0
 public List<EmailResult> SendMessage(EmailMessage message)
 {
     return SendMessageAsync(message).Result;
 }
Beispiel #46
0
        /// <summary>
        ///     Sends a new transactional message through Mandrill.
        /// </summary>
        /// <param name="message">
        ///     The message.
        /// </param>
        /// <param name="send_at">
        ///     The send_at.
        /// </param>
        /// <returns>
        ///     The <see cref="Task" />.
        /// </returns>
        public Task<List<EmailResult>> SendMessageAsync(EmailMessage message, DateTime send_at = new DateTime())
        {
            string path = "/messages/send.json";

            dynamic payload = new ExpandoObject();
            payload.message = message;
            payload.send_at = (send_at == DateTime.MinValue)
                                  ? string.Empty
                                  : send_at.ToString(Configuration.DATE_TIME_FORMAT_STRING);

            Task<IRestResponse> post = this.PostAsync(path, payload);

            return post.ContinueWith(
                p => JSON.Parse<List<EmailResult>>(p.Result.Content),
                TaskContinuationOptions.ExecuteSynchronously);
        }
Beispiel #47
0
        /// <summary>
        /// Sends a new transactional message through Mandrill.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public Task<List<EmailResult>> SendMessageAsync(EmailMessage message)
        {
            var path = "/messages/send.json";

            dynamic payload = new ExpandoObject();
            payload.message = message;

            Task<IRestResponse> post = PostAsync(path, payload);

            return post.ContinueWith(p => JSON.Parse<List<EmailResult>>(p.Result.Content), TaskContinuationOptions.ExecuteSynchronously);
        }
Beispiel #48
0
 /// <summary>
 ///     The send raw message.
 /// </summary>
 /// <param name="raw_message">
 ///     The raw_message.
 /// </param>
 /// <param name="send_at">
 ///     The send_at.
 /// </param>
 /// <returns>
 ///     The <see cref="List" />.
 /// </returns>
 public List<EmailResult> SendRawMessage(EmailMessage raw_message, DateTime send_at = new DateTime())
 {
     return this.SendRawMessageAsync(raw_message, send_at).Result;
 }
Beispiel #49
0
 public List<EmailResult> SendRawMessage(EmailMessage raw_message)
 {
     return SendRawMessageAsync(raw_message).Result;
 }
Beispiel #50
0
        /// <summary>
        /// Send a new transactional message through Mandrill using a template
        /// </summary>
        /// <param name="recipients"></param>
        /// <param name="subject"></param>
        /// <param name="from"></param>
        /// <param name="templateName"></param>
        /// <param name="templateContents"></param>
        /// <returns></returns>
        public Task<List<EmailResult>> SendMessageAsync(IEnumerable<EmailAddress> recipients, string subject, EmailAddress from, string templateName, IEnumerable<TemplateContent> templateContents)
        {
            var message = new EmailMessage()
            {
                to = recipients,
                from_name = from.name,
                from_email = from.email,
                subject = subject,
            };

            return SendMessageAsync(message, templateName, templateContents);
        }
Beispiel #51
0
 /// <summary>
 /// Send a new transactional message through Mandrill using a template
 /// </summary>
 /// <param name="recipients"></param>
 /// <param name="subject"></param>
 /// <param name="from"></param>
 /// <param name="templateName"></param>
 /// <param name="templateContents"></param>
 /// <returns></returns>
 public List <EmailResult> SendTemplate(EmailMessage message, string templateName, IEnumerable <TemplateContent> templateContents)
 {
     return(SendTemplateAsync(message, templateName, templateContents).Result);
 }
Beispiel #52
0
        /// <summary>
        /// Send a new transactional message through Mandrill using a template
        /// </summary>
        /// <param name="templateName"></param>
        /// <param name="templateContents"></param>
        /// <returns></returns>
        public Task<List<EmailResult>> SendMessageAsync(EmailMessage message, string templateName, IEnumerable<TemplateContent> templateContents)
        {
            var path = "/messages/send-template.json";

            dynamic payload = new ExpandoObject();
            payload.message = message;
            payload.template_name = templateName;
            payload.template_content = templateContents != null ? templateContents : Enumerable.Empty<TemplateContent>();

            Task<IRestResponse> post = PostAsync(path, payload);
            return post.ContinueWith(p =>
            {
                return JSON.Parse<List<EmailResult>>(p.Result.Content);
            }, TaskContinuationOptions.ExecuteSynchronously);
        }
        /// <summary>
        /// SendMailByMandrill
        /// this function is used for sending mail vai Mandrill</summary></summary>
        /// the main parameter is
        /// <add key="host" value="smtp.mandrillapp.com" />
        /// <param name="port"></param>
        /// <add key="port" value="25" />
        /// <param name="from"></param>
        /// <add key="username" value="socioboard"/>
        /// <param name="passsword"></param>
        /// <add key="fromemail" value="*****@*****.**"/>
        /// <param name="to"></param>
        /// <add key="password" value="xyz" />
        /// <param name="bcc"></param>
        /// add key="tomail" value="*****@*****.**" />
        /// its return : EmailResultStatus i.e Sent, Rejected etc.
        /// <param name="cc"></param>
        /// <param name="Host"></param>
        /// <param name="subject"></param>
        /// <param name="body"></param>
        /// <param name="sendgridUserName"></param>
        /// <param name="sendgridPassword"></param>
        /// <returns></returns>

        public string GetStatusFromSendMailByMandrill(string Host, int port, string from, string passsword, string to, string bcc, string cc, string subject, string body, string sendgridUserName, string sendgridPassword)
        {
            string sendMailByMandrill = string.Empty;

            try
            {
                Mandrill.EmailMessage message = new Mandrill.EmailMessage();
                //message.from_email = from;
                //message.from_name = from;//"AlexPieter";
                message.from_email = "*****@*****.**";
                message.from_name  = "Socioboard Support";
                message.html       = body;
                message.subject    = subject;
                message.to         = new List <Mandrill.EmailAddress>()
                {
                    new Mandrill.EmailAddress(to)
                };


                Mandrill.MandrillApi mandrillApi = new Mandrill.MandrillApi(sendgridPassword, false);


                //List<RejectInfo> ri=mandrillApi.ListRejects();

                var    results = mandrillApi.SendMessage(message);
                string status  = string.Empty;
                foreach (var result in results)
                {
                    try
                    {
                        if (result.Status != Mandrill.EmailResultStatus.Sent)
                        {
                            logger.Error(result.Email + " " + result.RejectReason);
                        }

                        if (Mandrill.EmailResultStatus.Sent == result.Status)
                        {
                            status = Mandrill.EmailResultStatus.Sent.ToString();
                        }
                        else if (Mandrill.EmailResultStatus.Invalid == result.Status)
                        {
                            status = Mandrill.EmailResultStatus.Invalid.ToString();
                        }
                        else if (Mandrill.EmailResultStatus.Queued == result.Status)
                        {
                            status = Mandrill.EmailResultStatus.Queued.ToString();
                        }
                        else if (Mandrill.EmailResultStatus.Rejected == result.Status)
                        {
                            status = Mandrill.EmailResultStatus.Rejected.ToString();
                        }
                        else if (Mandrill.EmailResultStatus.Scheduled == result.Status)
                        {
                            status = Mandrill.EmailResultStatus.Scheduled.ToString();
                        }
                        else
                        {
                            status = result.RejectReason;
                        }
                        //status = Mandrill.EmailResultStatus;
                        //  LogManager.Current.LogError(result.Email, "", "", "", null, string.Format("Email failed to send: {0}", result.RejectReason));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        logger.Error(ex.Message);
                        sendMailByMandrill = ex.Message;
                    }
                }

                sendMailByMandrill = status;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                logger.Error(ex.Message);
                sendMailByMandrill = ex.Message;
            }

            return(sendMailByMandrill);
        }
Beispiel #54
0
        /// <summary>
        /// Send a new raw transactional message through Mandrill using a template
        /// </summary>
        public Task<List<EmailResult>> SendRawMessageAsync(EmailMessage message)
        {
            var path = "/messages/send-raw.json";

            dynamic payload = new ExpandoObject();
            payload.raw_message = message.raw_message;
            payload.from_email = message.from_email;
            payload.from_name = message.from_name;
            //payload.to = message.to;  // Does not work as advertised, silently fails with {"email":"Array","status":"invalid"}

            Task<IRestResponse> post = PostAsync(path, payload);
            return post.ContinueWith(p =>
            {
                return JSON.Parse<List<EmailResult>>(p.Result.Content);
            }, TaskContinuationOptions.ExecuteSynchronously);
        }
Beispiel #55
0
 /// <summary>
 /// Send a new transactional message through Mandrill using a template
 /// </summary>
 /// <param name="recipients"></param>
 /// <param name="subject"></param>
 /// <param name="from"></param>
 /// <param name="templateName"></param>
 /// <param name="templateContents"></param>
 /// <returns></returns>
 public List <EmailResult> SendMessage(EmailMessage message, string templateName, IEnumerable <TemplateContent> templateContents, DateTime send_at = new DateTime())
 {
     return(SendMessageAsync(message, templateName, templateContents, send_at).Result);
 }
Beispiel #56
0
 /// <summary>
 /// Send a new transactional message through Mandrill using a template
 /// </summary>
 /// <param name="recipients"></param>
 /// <param name="subject"></param>
 /// <param name="from"></param>
 /// <param name="templateName"></param>
 /// <param name="templateContents"></param>
 /// <returns></returns>
 public List<EmailResult> SendMessage(EmailMessage message, string templateName, IEnumerable<TemplateContent> templateContents)
 {
     return SendMessageAsync(message, templateName, templateContents).Result;
 }
        /// <summary>
        /// Sends a new transactional message through Mandrill.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public List<EmailResult> SendMessageSync(EmailMessage message)
        {
            var path = "/messages/send.json";

            dynamic payload = new ExpandoObject();
            payload.message = message;

            IRestResponse post = PostSync(path, payload);
            List<EmailResult> results = JsonConvert.DeserializeObject<List<EmailResult>>(post.Content);
            //if (results.Count > 0)
            //    results.ForEach(x => this.Results.Add(x));
            return results;
            //return JSON.Parse<List<EmailResult>>(post.Content);
            //return post.ContinueWith(p => JSON.Parse<List<EmailResult>>(p.Result.Content), TaskContinuationOptions.ExecuteSynchronously);
        }