net mail example emails asp c# asp.net email smtpclient

example - smtpclient c# gmail



Enviar correo electrónico HTML a través de C#con SmtpClient (5)

Aplica la codificación correcta de Mailbody.

mail.IsBodyHtml = true;

¿Cómo envío un correo electrónico HTML? Utilizo el código en esta respuesta para enviar correos electrónicos con SmtpClient , pero siempre son texto sin formato, por lo que el enlace en el siguiente mensaje de ejemplo no está formateado como tal.

<p>Welcome to SiteName. To activate your account, visit this URL: <a href="http://SiteName.com/a?key=1234">http://SiteName.com/a?key=1234</a>.</p>

¿Cómo habilito HTML en los mensajes de correo electrónico que envío?


Creo que fue algo así como:

mailObject.IsBodyHtml = true;


Tengo una idea, puede agregar una casilla de verificación a su proyecto para enviar un correo electrónico como html como una opción para el usuario, y agregue este código para habilitarlo:

MailMessage mail = new MailMessage(from, to, subject, message); if(checkBox1.CheckState == CheckState.Checked ) { mail.IsBodyHtml = true; } SmtpClient client = new SmtpClient("localhost"); client.Send(mail);


IsBodyHtml = true es, sin duda, la parte más importante.

Pero si desea proporcionar un correo electrónico con una parte de texto / sin formato y una parte de texto / html compuesta como alternativas, también es posible usar la clase AlternateView :

MailMessage msg = new MailMessage(); AlternateView plainView = AlternateView .CreateAlternateViewFromString("Some plaintext", Encoding.UTF8, "text/plain"); // We have something to show in real old mail clients. msg.AlternateViews.Add(plainView); string htmlText = "The <b>fancy</b> part."; AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlText, Encoding.UTF8, "text/html"); msg.AlternateViews.Add(htmlView); // And a html attachment to make sure. msg.Body = htmlText; // But the basis is the html body msg.IsBodyHtml = true; // But the basis is the html body


Esto es lo que hago:

MailMessage mail = new MailMessage(from, to, subject, message); mail.IsBodyHtml = true; SmtpClient client = new SmtpClient("localhost"); client.Send(mail);

Tenga en cuenta que configuro el mensaje de correo html como verdadero: mail.IsBodyHtml = true;