public async Task Should_Send_Raw_Message() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); string message = "From: " + fromEmail + "\n" + "Subject: Mandrill Integration Test Raw\n" + "To: " + toEmail + "\n" + "MIME-Version: 1.0\n" + "Content-Type: text/html; charset=utf-8\n" + "Content-Transfer-Encoding: 7bit\n" + "\n" + "Test\n"; List<EmailResult> result = await api.SendRawMessage(new SendRawMessageRequest(message) { ToEmails = new List<string> {toEmail}, FromEmail = fromEmail, FromName = "" }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public async Task Should_Return_List_Of_Sub_Accounts() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; var request = new AddSubAccountRequest(Guid.NewGuid().ToString()) { CustomQuota = 10, Name = "subaccount1", Notes = "notes" }; // Exercise var api = new MandrillApi(apiKey); SubaccountInfo addedSubaccount = await api.AddSubaccount(request); List<SubaccountInfo> result = await api.ListSubaccounts(new ListSubAccountsRequest()); // Verify Assert.IsNotNull(result); Assert.IsNotEmpty(result); Assert.IsNotNull(result.Find(s => s.Id == addedSubaccount.Id)); // Cleanup await api.DeleteSubaccount(new DeleteSubAccountRequest(addedSubaccount.Id)); }
public async Task Should_Get_Template_Info() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string templateName = Guid.NewGuid().ToString(); const string code = "Foobar"; // Exercise var api = new MandrillApi(apiKey); await api.AddTemplate(new AddTemplateRequest(templateName) { FromName = "*****@*****.**", Code = code, Text = code, Publish = true }); TemplateInfo result = await api.TemplateInfo(new TemplateInfoRequest(templateName)); // Verify Assert.AreEqual(templateName, result.Name); Assert.AreEqual(code, result.Code); // Cleanup await api.DeleteTemplate(new DeleteTemplateRequest(templateName)); }
public async Task Throws_when_invalid_key() { var badApi = new MandrillApi(Guid.NewGuid().ToString("N")); var mandrillExpection = await Assert.ThrowsAsync <MandrillException>(() => badApi.Users.PingAsync()); mandrillExpection.Name.Should().Be("Invalid_Key"); }
public async Task Should_Send_Email_Message_With_Headers() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var sendMessageRequest = new SendMessageRequest(new EmailMessage { To = new List<EmailAddress> { new EmailAddress { Email = toEmail, Name = "" } }, FromEmail = fromEmail, Subject = "Mandrill Integration Test", Html = "<strong>Example HTML</strong>", Text = "Example text", }); sendMessageRequest.Message.AddHeader("Reply-To", fromEmail); List<EmailResult> result = await api.SendMessage(sendMessageRequest); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public void SendEmail(IList <string> recipients, string subject, string content) { var api = new MandrillApi(ApiKey); //var result = api.SendMessage(recipients.Select(r => new EmailAddress(r)), subject, content, // new EmailAddress(FromAddress, FromName)); }
public async Task Message_With_Send_At_Is_Scheduled_For_Paid_Account() { if (!IsPaidAccount) Assert.Ignore("Not a paid account"); // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); List<EmailResult> result = await api.SendMessage(new SendMessageRequest(new EmailMessage { To = new List<EmailAddress> {new EmailAddress {Email = toEmail, Name = ""}}, FromEmail = fromEmail, Subject = "Mandrill Integration Test", Html = "<strong>Scheduled Email</strong>", Text = "Example text" }){ SendAt = DateTime.Now.AddMinutes(5) }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Scheduled, result.First().Status); //Tear down await api.CancelScheduledMessage(new CancelScheduledMessageRequest(result.First().Id)); }
public void Can_Update_Template() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; var templateName = ConfigurationManager.AppSettings["TemplateExample"]; const string original = "<span mc:edit=\"model1\"></span>"; const string modified = "<span mc:edit=\"model2\"></span>"; // Exercise var api = new MandrillApi(apiKey); var result = api.UpdateTemplate(templateName, "*****@*****.**", "Test", "Template test", modified, "*|model1|*", true, null); var result2 = api.UpdateTemplate(templateName, "*****@*****.**", "Test", "Template test", original, "*|model1|*", true, null); // Verify Assert.AreEqual(modified, result.code); Assert.AreEqual(original, result2.code); }
private void Send(Lead model) { var api = new MandrillApi("IRWMe1g1dCTrG6uOZEy7gQ"); var message = new MandrillMessage(); message.Subject = "New lead"; message.FromEmail = "*****@*****.**"; message.AddTo("*****@*****.**"); message.ReplyTo = "*****@*****.**"; //supports merge var content as string message.AddGlobalMergeVars("Name", model.Name); message.AddGlobalMergeVars("LeadStatus", model.LeadStatus.ToString()); message.AddGlobalMergeVars("DateCreated", model.DateCreated.ToShortDateString()); message.AddGlobalMergeVars("DateUpdated", model.DateUpdated.ToShortDateString()); message.AddGlobalMergeVars("EMAIL", model.Email); message.AddGlobalMergeVars("Skype", model.Skype); message.AddGlobalMergeVars("Phone", model.Phone); message.AddGlobalMergeVars("Company", model.Company); message.AddGlobalMergeVars("Skype", model.Skype); message.AddGlobalMergeVars("ProjectDescription", model.ProjectDescription); message.AddGlobalMergeVars("ProjectStart", model.ProjectStart); message.AddGlobalMergeVars("ProjectDeadline", model.ProjectDeadline); //template should be created var result = api.Messages.SendTemplate(message, "jarboo-new-lead"); }
public void Message_Without_Template_Is_Sent() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var result = api.SendMessage(new EmailMessage { to = new List<EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, subject = "Mandrill Integration Test", html = "<strong>Example HTML</strong>", text = "Example text" }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public async Task Should_Throw_TimeOut_Exception_When_Timing_Out() { httpClient.SimulateTimeout(); var api = new MandrillApi(""); Assert.Throws<TimeoutException>(async () => await api.Post<object>("", new SamplePayload())); }
public async Task Can_Update_Template() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string templateName = ConfigurationManager.AppSettings["TemplateExample"]; const string original = "<span mc:edit=\"model1\"></span>"; const string modified = "<span mc:edit=\"model2\"></span>"; // Exercise var api = new MandrillApi(apiKey); TemplateInfo result = await api.UpdateTemplate( new UpdateTemplateRequest(templateName) { Code = modified }); TemplateInfo result2 = await api.UpdateTemplate( new UpdateTemplateRequest(templateName) { Code = original }); // Verify Assert.AreEqual(modified, result.Code); Assert.AreEqual(original, result2.Code); }
public async Task Should_Resume_And_Return_Sub_Account() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; var request = new AddSubAccountRequest(Guid.NewGuid().ToString()) { CustomQuota = 10, Name = "subaccount1", Notes = "notes" }; // Exercise var api = new MandrillApi(apiKey); SubaccountInfo result = await api.AddSubaccount(request); SubaccountInfo paused = await api.PauseSubaccount(new PauseSubAccountRequest(request.Id)); SubaccountInfo resumed = await api.ResumeSubaccount(new ResumeSubAccountRequest(request.Id)); // Verify Assert.IsNotNull(paused); Assert.AreEqual(paused.Id, request.Id); Assert.AreEqual(resumed.Status, "active"); // Cleanup await api.DeleteSubaccount(new DeleteSubAccountRequest(result.Id)); }
/// <summary> /// Sending Email through Mandril API (Using Mandril Templates) /// </summary> /// <param name="fromEmail"></param> /// <param name="fromName"></param> /// <param name="toMails"></param> /// <param name="subject"></param> /// <param name="templateName"></param> /// <param name="MergeVariables"></param> /// <returns></returns> public static List <EmailResult> SendMail(string fromEmail, string fromName, List <string> toMails, string subject, string templateName, Dictionary <string, dynamic> MergeVariables) { try { var api = new MandrillApi(Config.Key); var email = new EmailMessage() { FromEmail = fromEmail, FromName = fromName, Subject = subject, }; email.Merge = true; email.MergeLanguage = "mailchimp"; //email.Headers.Add("Reply-To", "*****@*****.**"); foreach (var item in MergeVariables) { email.AddGlobalVariable(item.Key, item.Value); } var to = toMails.Select(mailTo => new EmailAddress(mailTo)).ToList(); email.To = to; // Send email var smReq = new SendMessageTemplateRequest(email, templateName); var output = api.SendMessageTemplate(smReq).Result; return(output); } catch (Exception ex) { throw ex; } }
public async Task Should_Return_Correct_Count() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string templateName = Guid.NewGuid().ToString(); const string code = "Foobar"; // Exercise var api = new MandrillApi(apiKey); await api.AddTemplate(new AddTemplateRequest(templateName) { FromName = "*****@*****.**", Code = code, Text = code, Publish = true }); List <TemplateInfo> result = await api.ListTemplates(new ListTemplatesRequest()); Assert.True(result.Any(r => r.Name == templateName)); // Cleanup await api.DeleteTemplate(new DeleteTemplateRequest(templateName)); }
/// <summary> /// Sending Email through Mandrill API (Without Using Mandril Templates) /// </summary> /// <param name="fromEmail"></param> /// <param name="fromName"></param> /// <param name="toMails"></param> /// <param name="subject"></param> /// <param name="htmlBody"></param> /// <param name="async"></param> public static void SendMail(string fromEmail, string fromName, List <string> toMails, string subject, string htmlBody, bool async = false) { try { var api = new MandrillApi(Config.Key); var email = new EmailMessage() { FromEmail = fromEmail, FromName = fromName, Subject = subject, Html = htmlBody }; var to = toMails.Select(mailTo => new EmailAddress(mailTo)).ToList(); email.To = to; // Send email var smReq = new SendMessageRequest(email); var output = api.SendMessage(smReq).Result; } catch (Exception ex) { var message = ex.Message; } }
public void NotifySuperAdmin(string email,string subject, string body, string templateName) { var toList = ConfigurationManager.AppSettings["SuperAdminToEmails"].Split(';'); var recipientCount = toList.Count(); var count = 0; MN.Messages.Recipient[] recipients = new MN.Messages.Recipient[recipientCount]; foreach (var to in toList) { recipients[count] = new MN.Messages.Recipient(to, to); count++; } var m = new MandrillApi(key); //Mail settings for mandrill var message = new MN.Messages.Message(); message.Subject = subject; message.FromEmail = ConfigurationManager.AppSettings["SupportEmailID"]; message.FromName = "LockYourStay"; message.To = recipients; //mergevars for dynamic content in mandrill template var globalMergeVars = new Mandrill.Merges(); globalMergeVars.Add("SUBJECT", message.Subject); globalMergeVars.Add("BODY", body); message.GlobalMergeVars = globalMergeVars; // common information for all receipient //dynamic template content var templateContent = new List<Mandrill.NameContentPair<string>>(); templateContent.Add(new Mandrill.NameContentPair<string>("SUBJECT", message.Subject)); templateContent.Add(new Mandrill.NameContentPair<string>("BODY", body)); //Send mail m.SendTemplate(templateName, templateContent, message); }
public async Task Should_Pause_And_Return_Sub_Account() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; var request = new AddSubAccountRequest(Guid.NewGuid().ToString()) { CustomQuota = 10, Name = "subaccount1", Notes = "notes" }; // Exercise var api = new MandrillApi(apiKey); SubaccountInfo result = await api.AddSubaccount(request); SubaccountInfo paused = await api.PauseSubaccount(new PauseSubAccountRequest(request.Id)); // Verify Assert.IsNotNull(paused); Assert.AreEqual(paused.Id, request.Id); Assert.AreEqual(paused.Status, "paused"); // Cleanup await api.DeleteSubaccount(new DeleteSubAccountRequest(result.Id)); }
public async Task Should_Send_Email_Message_With_Template_With_Send_At() { if (!IsPaidAccount) Assert.Ignore("Not a paid account"); // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; string templateExample = ConfigurationManager.AppSettings["TemplateExample"]; // Exercise var api = new MandrillApi(apiKey); List<EmailResult> result = await api.SendMessageTemplate(new SendMessageTemplateRequest(new EmailMessage { To = new List<EmailAddress> {new EmailAddress {Email = toEmail, Name = ""}}, FromEmail = fromEmail, Subject = "Mandrill Scheduled Integration Test", }, templateExample, new List<TemplateContent> { new TemplateContent {Name = "model1", Content = "Content1"}, new TemplateContent {Name = "model2", Content = "Content2"} }){ SendAt = DateTime.Now.AddMinutes(5) }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public async Task Should_Not_Require_Template_Content() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; string templateExample = ConfigurationManager.AppSettings["TemplateExample"]; // Exercise var api = new MandrillApi(apiKey); List <EmailResult> result = await api.SendMessageTemplate(new SendMessageTemplateRequest (new EmailMessage { To = new List <EmailAddress> { new EmailAddress { Email = toEmail, Name = "" } }, FromEmail = fromEmail, Subject = "Mandrill Integration Test", }, templateExample)); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public async Task Should_Add_SubAccount_And_Return() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; var request = new AddSubAccountRequest(Guid.NewGuid().ToString()) { CustomQuota = 10, Name = "subaccount1", Notes = "notes" }; // Exercise var api = new MandrillApi(apiKey); SubaccountInfo result = await api.AddSubaccount(request); // Verify Assert.IsNotNull(result); Assert.AreEqual(result.Id, request.Id); Assert.AreEqual(result.Name, request.Name); Assert.AreEqual(result.CustomQuota, request.CustomQuota); Assert.AreEqual(result.Status, "active"); }
public async Task Should_Get_Template_Time_Series() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string templateName = Guid.NewGuid().ToString(); const string code = "Foobar"; // Exercise var api = new MandrillApi(apiKey); await api.AddTemplate(new AddTemplateRequest(templateName) { FromName = "*****@*****.**", Code = code, Text = code, Publish = true }); List<TemplateTimeSeries> result = await api.TemplateTimeSeries(new TemplateTimeSeriesRequest(templateName)); // Verify Assert.IsNotNull(result); //Time series do not exist for brand new templates. No other asserts possible. // Cleanup await api.DeleteTemplate(new DeleteTemplateRequest(templateName)); }
public void NotifyUser(string email,string name,string subject,string body,string templateName) { var m = new MandrillApi(key); //Mail settings for mandrill var message = new MN.Messages.Message(); message.Subject = subject; message.FromEmail = ConfigurationManager.AppSettings["SupportEmailID"]; message.FromName = "LockYourStay"; message.To = new[] { new MN.Messages.Recipient(email, email) }; //mergevars for dynamic content in mandrill template var globalMergeVars = new Mandrill.Merges(); globalMergeVars.Add("SUBJECT", message.Subject); globalMergeVars.Add("NAME", name); globalMergeVars.Add("BODY", body); message.GlobalMergeVars = globalMergeVars; // common information for all receipient //dynamic template content var templateContent = new List<Mandrill.NameContentPair<string>>(); templateContent.Add(new Mandrill.NameContentPair<string>("SUBJECT", message.Subject)); templateContent.Add(new Mandrill.NameContentPair<string>("NAME", name)); templateContent.Add(new Mandrill.NameContentPair<string>("BODY", body)); //Send mail m.SendTemplate(templateName, templateContent, message); }
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 void Message_Without_Template_Is_Sent() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var result = api.SendMessage(new EmailMessage { to = new List <EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, subject = "Mandrill Integration Test", html = "<strong>Example HTML</strong>", text = "Example text" }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public void SendOrderMessage(int campaignId, string pathToTemplates, string pathToMedia) { var record = _settingsService.GetAllSettings().List().FirstOrDefault(); var api = new MandrillApi(record.ApiKey); var mandrillMessage = new MandrillMessage() { }; mandrillMessage.MergeLanguage = MandrillMessageMergeLanguage.Handlebars; mandrillMessage.FromEmail = "*****@*****.**"; mandrillMessage.Subject = "Teeyoot order"; List <LinkOrderCampaignProductRecord> ordersList = _orderService.GetProductsOrderedOfCampaign(campaignId).ToList(); var campaign = _campaignService.GetCampaignById(campaignId); List <MandrillMailAddress> emails = new List <MandrillMailAddress>(); foreach (var item in ordersList) { emails.Add(new MandrillMailAddress(item.OrderRecord.Email, "user")); FillMessageMergeVars(mandrillMessage, item); } mandrillMessage.To = emails; string text = System.IO.File.ReadAllText(pathToTemplates + "confirm-order-template.html"); //string messageText = text.Replace("---MessageContent---", message.Text); //messageText = messageText.Replace("---SellerEmail---", message.Sender); //messageText = messageText.Replace("---CampaignTitle---", campaign.Title); string previewUrl = pathToMedia + "/Media/campaigns/" + campaignId + "/" + campaign.Products[0].Id + "/normal/front.png"; //messageText = messageText.Replace("---CampaignPreviewUrl---", previewUrl); mandrillMessage.Html = text; var res = SendTmplMessage(api, mandrillMessage); }
/// <summary> /// Sends the email. /// </summary> /// <param name="email">The email.</param> /// <param name="mandrillTemplate">The mandrill template.</param> /// <param name="subjectLine">The subject line.</param> /// <param name="variables">The variables.</param> /// <param name="fromEmail">From email.</param> /// <param name="apiKey">The API key.</param> /// <exception cref="Exception">Customer Email cannot be null</exception> public void SendEmail(string email, string mandrillTemplate, string subjectLine, Dictionary <string, object> variables, string fromEmail, string apiKey) { if (email == null) { throw new Exception("Customer Email cannot be null"); } var api = new MandrillApi(apiKey); var message = new MandrillMessage { FromEmail = fromEmail }; message.AddTo(email); message.Merge = true; message.MergeLanguage = MandrillMessageMergeLanguage.Handlebars; message.Subject = subjectLine; message.ReplyTo = fromEmail; foreach (var variable in variables) { message.AddRcptMergeVars(email, variable.Key, variable.Value); } var result = api.Messages.SendTemplateAsync(message, mandrillTemplate).Result; }
public async Task Should_Reschedule_Message() { if (!IsPaidAccount) Assert.Ignore("Not a paid account"); // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); List<EmailResult> result = await api.SendMessage(new SendMessageRequest(new EmailMessage { To = new List<EmailAddress> {new EmailAddress {Email = toEmail, Name = ""}}, FromEmail = fromEmail, Subject = "Mandrill Integration Test", Html = "<strong>Example HTML</strong>", Text = "Example text" }){ SendAt = DateTime.Now.AddMinutes(5) }); ScheduledEmailResult rescheduleResponse = await api.RescheduleMessage(new RescheduleMessageRequest(result.First().Id, DateTime.Now.AddMinutes(10))); Assert.AreEqual(result.First().Id, rescheduleResponse.Id); }
public async Task Should_Get_Template_Time_Series() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string templateName = Guid.NewGuid().ToString(); const string code = "Foobar"; // Exercise var api = new MandrillApi(apiKey); await api.AddTemplate(new AddTemplateRequest(templateName) { FromName = "*****@*****.**", Code = code, Text = code, Publish = true }); List <TemplateTimeSeries> result = await api.TemplateTimeSeries(new TemplateTimeSeriesRequest(templateName)); // Verify Assert.IsNotNull(result); //Time series do not exist for brand new templates. No other asserts possible. // Cleanup await api.DeleteTemplate(new DeleteTemplateRequest(templateName)); }
private void RespondWith(MandrillApi api, HttpStatusCode statusCode, string content) { var responseMessage = new HttpResponseMessage(statusCode); responseMessage.Content = new FakeHttpContent(content); var messageHandler = new FakeHttpMessageHandler(responseMessage); api.SetHttpClient(new HttpClient(messageHandler)); }
public async Task Should_Return_List_Of_Sub_Accounts() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; var request = new AddSubAccountRequest(Guid.NewGuid().ToString()) { CustomQuota = 10, Name = "subaccount1", Notes = "notes" }; // Exercise var api = new MandrillApi(apiKey); SubaccountInfo addedSubaccount = await api.AddSubaccount(request); List <SubaccountInfo> result = await api.ListSubaccounts(new ListSubAccountsRequest()); // Verify Assert.IsNotNull(result); Assert.IsNotEmpty(result); Assert.IsNotNull(result.Find(s => s.Id == addedSubaccount.Id)); // Cleanup await api.DeleteSubaccount(new DeleteSubAccountRequest(addedSubaccount.Id)); }
public void Message_With_Send_At_Is_Scheduled() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var result = api.SendMessage(new EmailMessage { to = new List <EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, subject = "Mandrill Integration Test", html = "<strong>Scheduled Email</strong>", text = "Example text" }, DateTime.UtcNow.AddMinutes(5.0)); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Scheduled, result.First().Status); //Tear down api.CancelScheduledMessage(result.First().Id); }
public ActionResult SendFaleConosco() { MandrillApi mandril = new MandrillApi(NimbusConfig.MandrillToken); EmailMessage mensagem = new EmailMessage(); List <EmailAddress> address = new List <EmailAddress>(); try { mensagem.from_email = "*****@*****.**"; mensagem.from_name = "Fale conosco"; mensagem.subject = "[" + Request.Form["slcFaleConosco"] + "]"; mensagem.text = "Usuário: " + Request.Form["iptNameFaleConosco"] + " " + Request.Form["iptLastNameFaleConosco"] + " \n" + "E-mail: " + Request.Form["iptEmailFaleConosco"] + "\n" + "Tipo: " + Request.Form["slcFaleConosco"] + " \n" + "Mensagem: " + Request.Form["txtaMsgFaleConosco"] + "\n\n\n\n"; address.Add(new EmailAddress("***REMOVED***")); mensagem.to = address; var result = mandril.SendMessage(mensagem); if (result[0].Status == EmailResultStatus.Sent) { return(Redirect("/userprofile")); } else { return(Redirect("/pageerror404")); //tem q arrumar } } catch (Exception ex) { throw; } }
public string SendEmail(SendEmail emailMessage) { using (var session = DocumentStore.GetStore().OpenSession(DocumentStore.ConfigurationDatabaseName())) { var mandrillConfig = session.Load<MailgunConfiguration>("MandrillConfig"); if (mandrillConfig == null) { throw new NotImplementedException(); } var api = new MandrillApi(mandrillConfig.ApiKey); var message = new MailChimp.Types.Mandrill.Messages.Message(); message.Html = emailMessage.BaseRequest.BodyHtml; message.Text = emailMessage.BaseRequest.BodyText; message.To = new[]{new MailChimp.Types.Mandrill.Messages.Recipient(emailMessage.BaseRequest.ToAddress, emailMessage.BaseRequest.ToAddress), }; //new List<EmailAddress>() {new EmailAddress(emailMessage.BaseRequest.ToAddress)}; message.Subject = emailMessage.BaseRequest.Subject; message.FromEmail = emailMessage.BaseRequest.FromAddress; message.FromName = emailMessage.BaseRequest.FromDisplayName; var result = api.Send(message); if (result == null || result.Count == 0) throw new Exception("Email should be getting something back...."); if (result[0].Status == MailChimp.Types.Mandrill.Messages.Status.Invalid || result[0].Status == MailChimp.Types.Mandrill.Messages.Status.Bounced || result[0].Status == MailChimp.Types.Mandrill.Messages.Status.Rejected || result[0].Status == MailChimp.Types.Mandrill.Messages.Status.SoftBounced) throw new Exception("Some exception because email failed"); return result[0].ID; } }
public void Template_Message_Is_Sent() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; string templateExample = ConfigurationManager.AppSettings["TemplateExample"]; // Exercise var api = new MandrillApi(apiKey); var result = api.SendMessage(new EmailMessage { to = new List <EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, subject = "Mandrill Integration Test", }, templateExample, new List <TemplateContent> { new TemplateContent { name = "model1", content = "Content1" }, new TemplateContent { name = "model2", content = "Content2" } }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public void Raw_Message_Is_Sent() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var message = "From: " + fromEmail + "\n" + "Subject: Mandrill Integration Test Raw\n" + "To: " + toEmail + "\n" + "MIME-Version: 1.0\n" + "Content-Type: text/html; charset=utf-8\n" + "Content-Transfer-Encoding: 7bit\n" + "\n" + "Test\n"; var result = api.SendMessage(new EmailMessage { to = new List<EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, from_name = "", raw_message = message }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
private void ScheduleNextTask(DateTime firstDate) { if (firstDate > DateTime.UtcNow) { var tasks = this._taskManager.GetTasks(TASK_TYPE); foreach (var item in tasks) { //if (item.ScheduledUtc <= DateTime.UtcNow) _taskManager.DeleteTasks(item.ContentItem); } tasks = this._taskManager.GetTasks(TASK_TYPE); if (tasks == null || tasks.Count() == 0) { this._taskManager.CreateTask(TASK_TYPE, firstDate, null); } } var api = new MandrillApi( _settingsService.GetSettingByCulture(/*request.BuyerCultureRecord.Culture*/ "en-MY") .List() .First() .ApiKey); var countToSend = 100; var emails = _mailOutBox.Table.Take(countToSend).ToArray(); foreach (Outbox outBox in emails) { var message = Newtonsoft.Json.JsonConvert.DeserializeObject <Mandrill.Model.MandrillMessage>(outBox.Data); var result = api.Messages.Send(message); _mailOutBox.Delete(outBox); } }
public void Update_Subaccount_Returns_Updated_Subaccount() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; var subaccount = new SubaccountInfo { Id = Guid.NewGuid().ToString(), CustomQuota = 10, Name = "subaccount1" }; // Exercise var api = new MandrillApi(apiKey); var result = api.AddSubaccount(subaccount); var newName = result.Name + "2"; result.Name = newName; var updated = api.UpdateSubaccount(result); // Verify Assert.IsNotNull(updated); Assert.AreEqual(updated.Id, subaccount.Id); Assert.AreEqual(updated.Name, newName); }
public static IList <MandrillSendMessageResponse> customSend(object model, MandrillTemplates template) { var api = new MandrillApi("IRWMe1g1dCTrG6uOZEy7gQ"); var message = new MandrillMessage(); message.FromEmail = "*****@*****.**"; message.AddTo("*****@*****.**"); message.ReplyTo = "*****@*****.**"; foreach (var prop in model.GetType().GetProperties()) { var value = prop.GetValue(model, null); if (value != null) { message.AddGlobalMergeVars(prop.Name, prop.GetValue(model, null).ToString()); } } string templateName = string.Empty; switch (template) { case MandrillTemplates.Lead: templateName = "customer-lead"; break; case MandrillTemplates.Invoice: templateName = "customer-invoice"; break; default: break; } if (!string.IsNullOrEmpty(templateName)) { var result = api.Messages.SendTemplate(message, templateName); return(result); } return(null); }
public void Scheduled_Message_Is_Canceled() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var messages = api.SendMessage(new EmailMessage { to = new List <EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, subject = "Mandrill Integration Test", html = "<strong>Scheduled Email</strong>", text = "Example text" }, DateTime.UtcNow.AddMinutes(5.0)); var scheduled = api.ListScheduledMessages(toEmail); //Verify that message was scheduled Assert.AreEqual(1, scheduled.Count(s => s.Id == messages.First().Id)); api.CancelScheduledMessage(messages.First().Id); scheduled = api.ListScheduledMessages(toEmail); //Verify that message was cancelled. Assert.AreEqual(0, scheduled.Count(s => s.Id == messages.First().Id)); }
public async Task Should_Send_Raw_Message() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); string message = "From: " + fromEmail + "\n" + "Subject: Mandrill Integration Test Raw\n" + "To: " + toEmail + "\n" + "MIME-Version: 1.0\n" + "Content-Type: text/html; charset=utf-8\n" + "Content-Transfer-Encoding: 7bit\n" + "\n" + "Test\n"; List <EmailResult> result = await api.SendRawMessage(new SendRawMessageRequest(message) { ToEmails = new List <string> { toEmail }, FromEmail = fromEmail, FromName = "" }); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public async Task Should_Send_Email_Message_With_Headers() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var sendMessageRequest = new SendMessageRequest(new EmailMessage { To = new List <EmailAddress> { new EmailAddress { Email = toEmail, Name = "" } }, FromEmail = fromEmail, Subject = "Mandrill Integration Test", Html = "<strong>Example HTML</strong>", Text = "Example text", }); sendMessageRequest.Message.AddHeader("Reply-To", fromEmail); List <EmailResult> result = await api.SendMessage(sendMessageRequest); // Verify Assert.AreEqual(1, result.Count); Assert.AreEqual(toEmail, result.First().Email); Assert.AreEqual(EmailResultStatus.Sent, result.First().Status); }
public async Task Should_Return_Correct_Count() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string templateName = Guid.NewGuid().ToString(); const string code = "Foobar"; // Exercise var api = new MandrillApi(apiKey); await api.AddTemplate(new AddTemplateRequest(templateName) { FromName = "*****@*****.**", Code = code, Text = code, Publish = true }); List<TemplateInfo> result = await api.ListTemplates(new ListTemplatesRequest()); Assert.True(result.Any(r => r.Name == templateName)); // Cleanup await api.DeleteTemplate(new DeleteTemplateRequest(templateName)); }
//public async Task sendForgotPasswordEmail(string recipient, Dictionary<string, string> vars, string templateName, Message message) //{ // List<TemplateContent> templateContents = new List<TemplateContent>(); // foreach (var x in vars) // { // TemplateContent contents = new TemplateContent(); // contents.Name = x.Key; // contents.Content = x.Value; // templateContents.Add(contents); // } // var emailRequestObject = new ContactUs // { // Key = "Xs_R1QEOVN4L4OLuVtF_Jg", // TemplateName = templateName, // TemplateContent = templateContents.ToArray() // }; // var client = new RestClient("https://mandrillapp.com/api/1.0/messages/send-template.json"); // var request = new RestRequest(Method.POST); // request.AddHeader("Content-Type", "application/json"); // var jsonBody = emailRequestObject.ToJson(); // request.AddJsonBody(jsonBody); // IRestResponse response = client.Execute(request); //} //public async Task sendEFTBusinessRegisterEmail(string recipient, Dictionary<string, string> vars, string templateName, Message message) //{ // List<TemplateContent> templateContents = new List<TemplateContent>(); // foreach (var x in vars) // { // TemplateContent contents = new TemplateContent(); // contents.Name = x.Key; // contents.Content = x.Value; // templateContents.Add(contents); // } // var emailRequestObject = new ContactUs // { // Key = "Xs_R1QEOVN4L4OLuVtF_Jg", // TemplateName = templateName, // Message = message, // TemplateContent = templateContents.ToArray() // }; // var api = new MandrillApi("Xs_R1QEOVN4L4OLuVtF_Jg"); // var mandrillMessageandrillmessage = new MandrillMessage(); // var client = new RestClient("https://mandrillapp.com/api/1.0/messages/send-template.json"); // var request = new RestRequest(Method.POST); // request.AddHeader("Content-Type", "application/json"); // var jsonBody = Domain.Models.EmailTemplates.Serialize.ToJson(emailRequestObject); // request.AddJsonBody(jsonBody); // IRestResponse response = client.Execute(request); //} /// <summary> /// TODO /// </summary> /// <param name="request"></param> public async void SendProductPDF(Request request) { var api = new MandrillApi("rdwM7taGZOP5nh6rmtyM1w"); var message = new MandrillMessage("*****@*****.**", request.EmailAddress, "EmailTest", "Test product pdf Email for DEV"); var result = await api.Messages.SendAsync(message); }
public async Task Should_Update_And_Return() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; var request = new AddSubAccountRequest(Guid.NewGuid().ToString()) { CustomQuota = 10, Name = "subaccount1", Notes = "notes" }; // Exercise var api = new MandrillApi(apiKey); SubaccountInfo result = await api.AddSubaccount(request); string newName = result.Name + "2"; var updatedAccount = new UpdateSubAccountRequest(request.Id) { Name = newName }; SubaccountInfo updated = await api.UpdateSubaccount(updatedAccount); // Verify Assert.IsNotNull(updated); Assert.AreEqual(updated.Id, request.Id); Assert.AreEqual(updated.Name, newName); // Cleanup await api.DeleteSubaccount(new DeleteSubAccountRequest(updatedAccount.Id)); }
public void SendWelcomeEmail(IUser user) { // CultureUsed = "en-MY"; var pathToTemplates = HttpContext.Current.Server.MapPath("/Modules/Teeyoot.Module/Content/message-templates/"); var record = _settingsService.GetAllSettings().List().FirstOrDefault(); var api = new MandrillApi(record.ApiKey); var mandrillMessage = new MandrillMessage { MergeLanguage = MandrillMessageMergeLanguage.Handlebars, FromEmail = "*****@*****.**", FromName = "Teeyoot", Subject = _mailSubjectService .GetMailSubject("welcome-template", CultureUsed) //"Teeyoot welcomes you onboard!" }; var emails = new List <MandrillMailAddress> { new MandrillMailAddress(user.Email, "user") }; mandrillMessage.To = emails; var request = HttpContext.Current.Request; mandrillMessage.AddRcptMergeVars(user.Email, "Url", request.Url.Scheme + "://" + request.Url.Authority + request.ApplicationPath.TrimEnd('/') + "/"); var baseUrl = ""; baseUrl = request.Url.Scheme + "://" + request.Url.Authority + request.ApplicationPath.TrimEnd('/') + "/"; mandrillMessage.AddRcptMergeVars(user.Email, "VideoPreviewUrl", baseUrl + "/Media/Default/images/video_thumbnail_521x315.jpg/"); var text = System.IO.File.ReadAllText(pathToTemplates + "en-MY" + "/welcome-template.html"); mandrillMessage.Html = text; var res = SendTmplMessage(api, mandrillMessage); }
public void Scheduled_Message_Is_Rescheduled() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; string toEmail = ConfigurationManager.AppSettings["ValidToEmail"]; string fromEmail = ConfigurationManager.AppSettings["FromEMail"]; // Exercise var api = new MandrillApi(apiKey); var messages = api.SendMessage(new EmailMessage { to = new List <EmailAddress> { new EmailAddress { email = toEmail, name = "" } }, from_email = fromEmail, subject = "Mandrill Integration Test", html = "<strong>Scheduled Email</strong>", text = "Example text" }, DateTime.UtcNow.AddMinutes(5.0)); var message = api.ListScheduledMessages().Find(s => s.Id == messages.First().Id); var rescheduled = api.RescheduleMessage(message.Id, message.SendAt.AddMinutes(5.0)); //Verify Assert.Greater(rescheduled.SendAt, message.SendAt); //Tear down api.CancelScheduledMessage(rescheduled.Id); }
public void Senders_Returns_List() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; // Exercise var api = new MandrillApi(apiKey); // Verify //var senders = api.ListSenders(); }
public void SenderDomains_Returns_Domains() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; // Exercise var api = new MandrillApi(apiKey); // Verify var domains = api.SenderDomains(); }
public async Task Should_Throw_Exception_On_Invalid_ApiKey() { // Setup string apiKey = " "; // Exercise var api = new MandrillApi(apiKey); // Verify var ex = Assert.Throws<MandrillException>(async () => await api.Ping()); Assert.That(ex.Error.Name, Is.EqualTo("Invalid_Key")); }
public void UserInfo_Throws_Exception_On_Invalid_ApiKey() { // Setup var apiKey = " "; // Exercise var api = new MandrillApi(apiKey); // Verify var ex = Assert.Throws<MandrillException>(() => api.UserInfo()); Assert.That(ex.Error.name, Is.EqualTo("Invalid_Key")); }
public async Task Should_Return_Sender_Domain() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; // Exercise var api = new MandrillApi(apiKey); // Verify SenderDomain domain = await api.CheckSenderDomain(new SenderCheckDomainRequest("example.com")); Assert.IsNotNull(domain); }
public void CheckSenderDomain_Returns_Domain() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; // Exercise var api = new MandrillApi(apiKey); // Verify var domain = api.CheckSenderDomain("example.com"); Assert.IsNotNull(domain); }
public void List_Rejects_Works() { // Setup var apiKey = ConfigurationManager.AppSettings["APIKey"]; // Exercise var api = new MandrillApi(apiKey); // Verify var rejects = api.ListRejects(); //TODO: test this....works with my api key :) }
public async Task Should_Return_Info() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; string username = ConfigurationManager.AppSettings["Username"]; // Exercise var api = new MandrillApi(apiKey); UserInfo result = await api.UserInfo(); // Verify Assert.AreEqual(username, result.Username); }
public async Task Should_Return_Senders() { // Setup string apiKey = ConfigurationManager.AppSettings["APIKey"]; // Exercise var api = new MandrillApi(apiKey); // Verify List<Sender> senders = await api.ListSenders(); Assert.IsNotNull(senders); }