private static async Task <string> SendEmail(EmailMessage emailMessage, EmailAddress emailAddress = null, Dictionary <string, string> dictionary = null, string emailTemplate = "")
        {
            // Sensitive information, needs to be properly encoded before deployment.
            Mandrill.MandrillApi api     = new Mandrill.MandrillApi("rtHftXQYhGroTsPBzWBnbQ");
            List <EmailResult>   results = new List <EmailResult>();

            if (String.IsNullOrEmpty(emailTemplate))
            {
                Mandrill.Requests.Messages.SendMessageRequest request = new Mandrill.Requests.Messages.SendMessageRequest(emailMessage);
                results = await api.SendMessage(request);
            }
            else
            {
                if (dictionary != null)
                {
                    foreach (var item in dictionary)
                    {
                        if (emailAddress != null)
                        {
                            emailMessage.AddRecipientVariable(emailAddress.Email, item.Key, item.Value);
                        }
                    }
                }
                Mandrill.Requests.Messages.SendMessageTemplateRequest request = new Mandrill.Requests.Messages.SendMessageTemplateRequest(emailMessage, emailTemplate);
                results = await api.SendMessageTemplate(request);
            }
            return(results.FirstOrDefault().Status.ToString());
        }
Ejemplo n.º 2
0
        protected async Task SendMandrillEmail(List <string> toAddress, string subject, string templateName, Dictionary <string, string> globalMergeVariables = null)
        {
            var email = new Mandrill.Models.EmailMessage();

            email.To      = toAddress.Select(s => new Mandrill.Models.EmailAddress(s));
            email.Subject = subject;

            if (globalMergeVariables != null)
            {
                email.Merge         = true;
                email.MergeLanguage = "mailchimp";
                foreach (var kvp in globalMergeVariables)
                {
                    email.AddGlobalVariable(kvp.Key, kvp.Value);
                }
            }

            var request = new Mandrill.Requests.Messages.SendMessageTemplateRequest(email, templateName);

            var api    = new Mandrill.MandrillApi(MandrillApiKey);
            var result = await api.SendMessageTemplate(request);
        }