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); } }
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++; } }