CSS на электронную почту - PullRequest
       16

CSS на электронную почту

8 голосов
/ 27 марта 2009

Кто-нибудь нашел хороший способ встраивания CSS в программно созданное электронное письмо? Лучший способ, который я нашел, - это поместить код стиля в файл ресурсов и вызвать его в коде.

Эмампле будет

Dim objBuilder
objBuilder = New StringBuilder

objBuilder.Append(Resources.SystemEmail.CSSStyle)
objBuilder.Append("My Styled Email")

Dim _Body As String = objBuilder.ToString()

Это создаст тело письма

Есть ли способ сделать файл шаблона для электронной почты или лучший способ назвать таблицу стилей в одну.

Код в моем файле .resx будет

<STYLE TYPE="text/css">
<!--
body
{

    font-family: Tahoma, Verdana, Arial;
    font-size: 10pt;
    padding: 3px 0px 0px 0px;
    margin: 0px 0px 0px 0px;

}
-->
</STYLE>

И вызов этого в строку вызовет это inline

И с ответами ниже, чтобы отправить сообщение, я бы использовал это

Dim client As New SmtpClient("localhost")
Dim toAddr As New MailAddress(MailRecipients)
Dim fromAddr As New MailAddress(MailFrom)
Dim message As New MailMessage(fromAddress, toAddress)


message.Subject = "The Subject"
message.Body =  _Body 
message.IsBodyHtml = True
message.BodyEncoding = System.Text.Encoding.UTF8

client.Send(message)

Ответы [ 5 ]

13 голосов
/ 27 марта 2009

Единственный способ добиться успеха - включить CSS. Включение CSS в стиле заголовка документа не является согласованным или надежным.

Кроме того, убедитесь, что заголовки ваших писем установлены на: Тип контента: текст / HTML; кодировка = ISO-8859-1

EDIT UTF-8 тоже хороший вариант. Ключевым моментом этого оператора является тип содержимого, установленный в text / html

7 голосов
/ 27 марта 2009

Вот подробное руководство о том, какие стили CSS поддерживаются каждым почтовым клиентом: http://www.campaignmonitor.com/css/

Руководство о том, что вам нужно знать: http://www.campaignmonitor.com/design-guidelines/

Существует также большая коллекция бесплатных готовых шаблонов, которые вы можете использовать в качестве справочных: http://www.campaignmonitor.com/templates/

Наконец, та же компания предоставляет инструмент тестирования, который покажет вам, как ваше сообщение будет отображаться в каждом почтовом клиенте за разумную плату: http://www.campaignmonitor.com/testing/

4 голосов
/ 27 марта 2009

К сожалению, вам нужно включить встроенные элементы CSS в элементы, чтобы иметь какую-либо неопределенную совместимость с почтовыми клиентами. Кроме того, вы должны использовать таблицы для разметки (столбцы и т. Д.), Потому что CSS макеты div часто терпят неудачу. Прикрепленные изображения также терпят неудачу в основном для cid: URL. Thunderbird - лучший почтовый клиент для совместимости (очевидно, поскольку он использует рендерер Gecko). Прогноз худший.

Кроме того, используйте многочастную MIME с альтернативой в виде простого текста. Я использую базу данных для хранения шаблонов электронной почты, и есть шаблоны с простым текстом и html со значениями {{replaceable}}.

1 голос
/ 27 марта 2009

В дополнение к встроенному CSS, который всем рекомендуют, имейте в виду, что электронная почта часто отображается в Интернете на другой веб-странице, например, через Yahoo! Mail, Hotmail или Gmail. Вы можете вообразить хаос, который случится, если будут разрешены объявления стиля body или случайные имена классов. Вы должны планировать возможность того, что все, что не определено внутри строки, будет отброшено, хотя некоторые системы могут попытаться сохранить эти правила с непредсказуемым успехом.

1 голос
/ 27 марта 2009

Встроенный CSS необходим для обеспечения максимальной совместимости.

Некоторые системы, такие как MailChimp, будут принимать ваши классы элементов, анализировать ваш CSS и заменять атрибуты класса встроенными стилями. Вы можете написать свой собственный код для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...