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));
    }
Example #4
0
            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");
            }
Example #5
0
    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);
    }
Example #6
0
        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));
        }
Example #7
0
        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));
        }
Example #8
0
    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);
        }
Example #10
0
        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));
    }
Example #15
0
        /// <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));
        }
Example #17
0
        /// <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;
            }
        }
Example #18
0
        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);
        }
Example #19
0
        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 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);
        }
        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);
    }
Example #23
0
        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);
        }
Example #24
0
        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));
    }
Example #26
0
        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
            }
        }
Example #28
0
        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);
        }
Example #29
0
        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);
        }
Example #30
0
        /// <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);
    }
Example #32
0
        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));
        }
Example #33
0
 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 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");
    }
Example #36
0
        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);
        }
Example #37
0
        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;
            }
        }
Example #39
0
        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);
        }
Example #40
0
        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);
        }
Example #41
0
        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);
            }
        }
Example #42
0
        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);
        }
Example #44
0
        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);
        }
Example #46
0
        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));
      
    }
Example #48
0
        //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);
        }
Example #51
0
        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);
        }
Example #52
0
        public void Senders_Returns_List()
        {
            // Setup
            var apiKey = ConfigurationManager.AppSettings["APIKey"];

            // Exercise
            var api = new MandrillApi(apiKey);

            // Verify
            //var senders = api.ListSenders();
        }
Example #53
0
        public void SenderDomains_Returns_Domains()
        {
            // Setup
            var apiKey = ConfigurationManager.AppSettings["APIKey"];

            // Exercise
            var api = new MandrillApi(apiKey);

            // Verify
            var domains = api.SenderDomains();
        }
Example #54
0
    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"));
    }
Example #55
0
        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);
    }
Example #57
0
        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);
        }
Example #58
0
        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 :)
        }
Example #59
0
    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);
    }