No cenário atual de envio de -emails (milhões de spam’s, vendas de bases, optouts que não são respeitados) garantir a entrega de um e-mail para o usuário é uma missão diária e requer várias técnicas, desde formatação e contrução do html, encoding, configurações de DNS, SPF, Dkin, etc.
O .NET Framework dispõe de diversas features para trabalharmos com e-mails, podemos configurar headers, portas, criptografia, autenticação, etc.
Enviar um e-mail com versões em texto plano e html é uma técnica que melhora o recebimento e a leitura de um e-mail nos diversos dispositivos pelo usuário.
A classe MailMessage fornece uma propriedade chamada AlternateViews na qual é possível adicionar várias Views para o mesmo e-mail, com isso nos podemos adicionar no mesmo e-mail várias visualizações: texto plano, html, etc.
Abaixo segue um exemplo de como utilizar:
MailMessage mailMsg = new MailMessage();
// To
mailMsg.To.Add(new MailAddress("to@example.com", "To Name"));
// From
mailMsg.From = new MailAddress("from@example.com", "From Name");
// Subject
mailMsg.Subject = "subject";
//Texto
string text = "text body";
//Html
string html = @"<p>html body</p>";
//Views Texto e Html
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(text, null, MediaTypeNames.Text.Plain));
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html));
//Send
SmtpClient smtpClient = new SmtpClient();
smtpClient.Send(mailMsg);
No detalhe:
//View Texto
mailMsg.AlternateViews.Add(
AlternateView.CreateAlternateViewFromString
(text, null, MediaTypeNames.Text.Plain));
//View Html
mailMsg.AlternateViews.Add(
AlternateView.CreateAlternateViewFromString
(html, null, MediaTypeNames.Text.Html));
Espero que este post seja útil,
estou a disposição para dúvidas, criticas e sugestões
abs
Rodolfo

