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;