// Rodolfo Fadino

/* LIFE RUNS ON CODE */

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

C#