Отправить HTML-письмо через С# с помощью SmtpClient
Как отправить HTML-письмо? Я использую код этот ответ для отправки писем с помощью SmtpClient
, но они всегда являются обычным текстом, поэтому ссылка в приведенном ниже примере сообщения не отформатирована как таковая.
<p>Welcome to SiteName. To activate your account, visit this URL: <a href="#" onclick="location.href='http://SiteName.com/a?key=1234'; return false;">http://SiteName.com/a?key=1234</a>.</p>
Как включить HTML в отправляемые сообщения электронной почты?
Ответы
Ответ 1
Это то, что я делаю:
MailMessage mail = new MailMessage(from, to, subject, message);
mail.IsBodyHtml = true;
SmtpClient client = new SmtpClient("localhost");
client.Send(mail);
Обратите внимание, что я установил html сообщения электронной почты в значение true: mail.IsBodyHtml = true;
Ответ 2
Я считаю, что это было что-то вроде:
mailObject.IsBodyHtml = true;
Ответ 3
IsBodyHtml = true
, несомненно, является самой важной частью.
Но если вы хотите предоставить электронное письмо как с текстовой/простой частью, так и с частью text/html, составленной в виде альтернатив, также возможно использование класса 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
Ответ 4
Применить правильную кодировку Mailbody.
mail.IsBodyHtml = true;
Ответ 5
У меня есть идея, вы можете добавить флажок в свой проект для отправки электронной почты как html в качестве опции для пользователя и добавить этот код, чтобы включить его:
MailMessage mail = new MailMessage(from, to, subject, message);
if(checkBox1.CheckState == CheckState.Checked )
{
mail.IsBodyHtml = true;
}
SmtpClient client = new SmtpClient("localhost");
client.Send(mail);