async private void SendReportEmail() { string reportToEmail = ""; try { var appSettings = ConfigurationManager.AppSettings; reportToEmail = appSettings["reportToEmail"]; } catch (ConfigurationErrorsException e) { return; } var mndEmail = new List <Mandrill.Models.EmailAddress>(); mndEmail.Add(new Mandrill.Models.EmailAddress(reportToEmail)); var message = new Mandrill.Models.EmailMessage() { To = mndEmail, FromEmail = FromEmail, FromName = FromName, Subject = "Daily Email Notifications Report", Html = report }; var msgRequest = new Mandrill.Requests.Messages.SendMessageRequest(message); //var msgRequest = new Mandrill.Requests.Messages.SendRawMessageRequest(report); await mandrill.SendMessage(msgRequest); Console.Write(report); }
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); }
public async Task<bool> SendAsync(EmailMessage email, bool deleteAttachmentes, params string[] attachments) { var config = this.Config as Config; if (config == null) { email.Status = Status.Cancelled; return false; } try { email.Status = Status.Executing; var message = new Mandrill.Models.EmailMessage(); message.RawTo = email.SentTo.Split(',').ToList(); message.FromEmail = email.FromEmail; message.FromName = email.FromName; message.Subject = email.Subject; if (email.IsBodyHtml) { message.Html = email.Message; } else { message.Text = email.Message; } message = AttachmentHelper.AddAttachments(message, attachments); var sendMessageRequest = new SendMessageRequest(message); var api = new MandrillApi(config.ApiKey); var result = await api.SendMessage(sendMessageRequest); var status = result.First().Status; // Verify if (status == Mandrill.Models.EmailResultStatus.Invalid || status == Mandrill.Models.EmailResultStatus.Rejected) { email.Status = Status.Failed; } else if (status == Mandrill.Models.EmailResultStatus.Queued || status == Mandrill.Models.EmailResultStatus.Scheduled) { email.Status = Status.Executing; } else if (status == Mandrill.Models.EmailResultStatus.Sent) { email.Status = Status.Completed; } return true; } // ReSharper disable once CatchAllClause catch (Exception ex) { email.Status = Status.Failed; Log.Warning(@"Could not send email to {To} using SendGrid API. {Ex}. ", email.SentTo, ex); } finally { if (deleteAttachmentes) { FileHelper.DeleteFiles(attachments); } } return false; }