public void MarkdownBasedEmailShouldBeHtmlWithPlaintextAsFallBack()
{
var factory = new MergedEmailFactory(new TemplateParser());
var tokenValues = new Dictionary<string, string>
{
{"name", "Joe"},
{"userid", "123"}
};
MailMessage message = factory
.WithTokenValues(tokenValues)
.WithSubject("Test Subject")
.WithMarkdownBodyFromFile(@"templates\sample-markdown.txt")
.Create();
var from = new MailAddress("[email protected]", "Automated Emailer");
var to = new MailAddress("[email protected]", "Joe Bloggs");
message.From = from;
message.To.Add(to);
using (var output = new MemoryStream())
{
message.Save(output);
var result = StreamToString(output);
Assert.That(result, Contains.Substring(@"Content-Type: multipart/alternative"));
Assert.That(result, Contains.Substring(@"Dear Joe"));
var html = StreamToString(message.AlternateViews[0].ContentStream);
Assert.That(html.Contains("<em>our</em>"));
// Note that actually the email is encoded with RFC 2045 "Quoted Printable" Encoding, but .NET doesn't ship
// with a decoder so we'll add the =3D into our test for simplicity.
Assert.That(result, Contains.Substring(@"http://localhost/trackedLink?userId=3D123"));
Console.WriteLine(result);
}
}