Mail.dll works properly. First words inside table tag are: "Proposta do site".
[Test]
public void Test()
{
IMail mail = new MailBuilder().CreateFromEmlFile("c:\\email_carsp.eml");
StringAssert.Contains(@"<table width=""500"" border=""0"" cellpadding=""5""
cellspacing=""2"" style=""font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px"">
<tbody><tr>
<td colspan=""3"" bgcolor=""#FFFF00"" style=""font-size:14px""><strong><span class=""il"">Proposta</span> do site", mail.Html);
StringAssert.Contains(@"Proposta do site", mail.GetTextFromHtml());
}
The problem with this email is that it has different content in plain/text and text/html formats.
As you probably know, email can have its body represented in several ways simultaneously. Receiver may chose which it wants to display/process. The idea behind it was that if, for example, receiver doesn't understand html it can simply fall-back to simpler format such as plain text.
HTML emails usually have content represented in both text/html and plain/text. No one can force the sender to use equivalent content for both formats.
Mail.dll exposes those as IMail.Text and IMail.Html respectively. There are several helper methods that provide conversion from one format to another:
IMail.Text - gets plain text version of this email message.
IMail.Html - gets HTML version of this email message.
IMail.GetTextFromHtml - extracts plain text from IMail.Html. This text may be different from what is actually stored in the email's IMail.Text property
IMail.GetBodyAsText - returns body in plain text format. Uses IMail.Text, IMail.GetTextFromHtml or IMail.GetTextFromRtf.
IMail.GetBodyAsHtml - returns body in HTML format. If IMail.IsHtml is false this method uses IMail.Text property to create valid HTML.