Кодировать 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 это неверно.

Другие вопросы по тегам