Я пишу некоторый HTML-код в MailMessage.Body и хотел бы включить некоторый CSS для форматирования шрифтов, таблиц и т. д. У меня возникли проблемы с правильным формированием окончательного HTML-кода.
Например:
public static void CreateMessageWithMultipleViews(string server, string recipients)
{
// Create a message and set up the recipients.
MailMessage message = new MailMessage("[email protected]","[email protected]");
// Construct body as HTML.
message.Body = @"<html>
<head>
<style>
p{
font-family:""Trebuchet MS"", Arial, Helvetica, sans-serif;
font-size:0.9em;
text-align:left;
}
</style>
</head>
<body>
Some body text
</body>
</html>");
// Set this property so that HTML renders
message.IsBodyHtml = true;
// Send the message.
SmtpClient client = new SmtpClient(server);
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try
{
client.Send(message);
}
catch (Exception ex)
{
Console.WriteLine("Exception caught: {0}",
ex.ToString() );
}
Все мои получатели электронной почты используют Outlook 2010, и это выглядит точно так, как ожидалось. Но мне это не нравится — в конечном источнике электронной почты повторяются теги <html>
и <header>
:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<html>
<head>
<style>
[..truncated..]
Итак, мой вопрос: как правильно установить HTML-источник электронной почты с помощью MailMessage, чтобы он был правильно сформирован? Я вижу свойство «Заголовок» в классе MailMessage, но оно предназначено для заголовков сообщений, а не для заголовков HTML. Нужно ли мне размещать код CSS где-то еще?