Кодировать HTML в SMTP-сообщении
Я новичок в использовании SMTPClient и хотел бы отправлять клиентам письма в формате HTML. Вместо этого сообщение электронной почты содержит все теги, а не форматированный документ. Это мой код:
public void SendMailMessage(string FromAddress, string FromName, string ToName, string ToAddress, string Subject)
{
MailAddress fromAdd = new MailAddress(FromAddress, FromName);
MailAddress toAdd = new MailAddress(ToAddress);
MailMessage msg = new MailMessage(fromAdd, toAdd);
msg.IsBodyHtml = true;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.Subject = Subject;
string HtmlContent = "<div id='emailFormat' style='width: 100%; background-color: #efeac9;'>" +
"< div id = 'emailMsg' style = 'margin-left: auto; margin-right: auto; width: 600px; margin-top: 15px; font-family: Tahoma; font-size: .9em;' ><h2>Hello World</h2></div></div>");
msg.Body = HtmlContent;
SmtpClient client = new SmtpClient();
client.Send(msg);
}
}
Сообщение электронной почты выглядит так:
Сьюзан Фаррар сегодня в 17:45 Tosusan.farrar@sbcglobal.net
Тело сообщения
Привет, мир
2 ответа
Решение
Пробел вызывает проблему. Вы должны изменить это:
< div id = 'emailMsg' ...
К этому:
<div id = 'emailMsg' ...
Проблема в том, что содержание string HtmlContent
не является правильно сформированным HTML-документом. Вам не хватает тегов, как <html>
, <head>
, <title>
, <body>
, Кроме того, дополнительное пространство в < div
это неверно.