public void MessagesFromList()
        {
            var recipients = new List <Recipient>();

            for (var i = 0; i < 10; i++)
            {
                recipients.Add(new Recipient()
                {
                    Email = $"recipient-{i}@example.com", Name = $"Name of {i}"
                });
            }

            var mmm = new MailMergeMessage("Get MimeMessages Test", string.Empty, "<html><head></head><body>This is the plain text part for {Name} ({Email})</body></html>");

            mmm.ConvertHtmlToPlainText();
            mmm.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.From, "*****@*****.**"));
            mmm.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.To, "{Name}", "{Email}"));

            var cnt = 0;

            foreach (var mimeMessage in mmm.GetMimeMessages <Recipient>(recipients))
            {
                Assert.IsTrue(mimeMessage.TextBody == string.Format($"This is the plain text part for {recipients[cnt].Name} ({recipients[cnt].Email})"));
                Assert.IsTrue(mimeMessage.HtmlBody.Contains(string.Format($"This is the plain text part for {recipients[cnt].Name} ({recipients[cnt].Email})")));
                Assert.IsTrue(mimeMessage.To.ToString().Contains(recipients[cnt].Name) && mimeMessage.To.ToString().Contains(recipients[cnt].Email));
                MailMergeMessage.DisposeFileStreams(mimeMessage);
                cnt++;

                // The message could be sent using the low-level API using a configured SmtpClient:
                // new SmtpClient().Send(FormatOptions.Default, mimeMessage);
            }
        }
Example #2
0
        public void MessagesFromJsonArray()
        {
            var recipients = JArray.Parse(@"
[
    {
      'Email': '*****@*****.**',
      'Name': 'John'
    },
    {
      'Email': '*****@*****.**',
      'Name': 'Mary'
    },
    {
      'Email': '*****@*****.**',
      'Name': 'Steve'
    }
]
");
            var mmm        = new MailMergeMessage("Get MimeMessages JSON Test", string.Empty, "<html><head></head><body>This is the plain text part for {Name} ({Email})</body></html>");

            mmm.ConvertHtmlToPlainText();
            mmm.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.From, "*****@*****.**"));
            mmm.MailMergeAddresses.Add(new MailMergeAddress(MailAddressType.To, "{Name}", "{Email}"));

            var cnt = 0;

            foreach (var mimeMessage in mmm.GetMimeMessages(recipients))
            {
                Assert.IsTrue(mimeMessage.TextBody == string.Format($"This is the plain text part for {recipients[cnt]["Name"]} ({recipients[cnt]["Email"]})"));
                Assert.IsTrue(mimeMessage.HtmlBody.Contains(string.Format($"This is the plain text part for {recipients[cnt]["Name"]} ({recipients[cnt]["Email"]})")));
                Assert.IsTrue(mimeMessage.To.ToString().Contains(recipients[cnt]["Name"].ToString()) && mimeMessage.To.ToString().Contains(recipients[cnt]["Email"].ToString()));
                MailMergeMessage.DisposeFileStreams(mimeMessage);
                cnt++;
            }
        }