public void CanSendHtmlEmailWithPlainAlternative()
{
var factory = new MergedEmailFactory(new TemplateParser());
var tokenValues = new Dictionary<string, string>
{
{"name", "Joe"},
{"userid", "123"}
};
MailMessage message = factory
.WithTokenValues(tokenValues)
.WithSubject("Test Subject")
.WithHtmlBodyFromFile(@"templates\sample-email.html")
.WithPlainTextBodyFromFile(@"templates\sample-email.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"));
// 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);
}
}