Comment envoyer un email HTML? J'utilise le code dans cette réponse pour envoyer des courriers électroniques avec SmtpClient
, mais ils sont toujours en texte brut, de sorte que le lien dans l'exemple de message ci-dessous n'est pas formaté comme tel.
<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>
Comment activer le HTML dans les messages électroniques que j'envoie?
C'est ce que je fais:
MailMessage mail = new MailMessage(from, to, subject, message);
mail.IsBodyHtml = true;
SmtpClient client = new SmtpClient("localhost");
client.Send(mail);
Notez que j'ai défini le message HTML sur true: mail.IsBodyHtml = true;
Je crois que c'était quelque chose comme:
mailObject.IsBodyHtml = true;
IsBodyHtml = true
est sans aucun doute la partie la plus importante.
Mais si vous voulez fournir un email avec une partie text/plain et une partie text/html composée en alternance, il est également possible d'utiliser la classe 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
Appliquez le bon encodage du Mailbody.
mail.IsBodyHtml = true;
j'ai une idée, vous pouvez ajouter une case à cocher à votre projet pour l'envoi d'email au format HTML en tant qu'option pour l'utilisateur, et ajouter ce code pour l'activer:
MailMessage mail = new MailMessage(from, to, subject, message);
if(checkBox1.CheckState == CheckState.Checked )
{
mail.IsBodyHtml = true;
}
SmtpClient client = new SmtpClient("localhost");
client.Send(mail);
Si vous utilisez Mailkit , nous pouvons utiliser TextBody, HtmlBody et Both pour le corps du message. Il suffit d'écrire ce code. Cela vous aidera
MimeMessage mailMessage = new MimeMessage();
mailMessage.From.Add(new MailboxAddress(senderName, [email protected]));
mailMessage.Sender = new MailboxAddress(senderName, [email protected]);
mailMessage.To.Add(new MailboxAddress(emailid, emailid));
mailMessage.Subject = subject;
mailMessage.ReplyTo.Add(new MailboxAddress(replyToAddress));
mailMessage.Subject = subject;
var builder = new BodyBuilder();
builder.HtmlBody = "Hello There";
try
{
using (var smtpClient = new SmtpClient())
{
smtpClient.Connect("HostName", "Port", MailKit.Security.SecureSocketOptions.None);
smtpClient.Authenticate("[email protected]", "password");
smtpClient.Send(mailMessage);
Console.WriteLine("Success");
}
}
catch (SmtpCommandException ex)
{
Console.WriteLine(ex.ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}