Почему различные клиенты и ISP отображают письма по-разному

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

Письмо приходит на емейл-сервера почтовых клиентов, и после обработки его сервером оно может приобрести другой вид. Например, если пользователь откроет одно и то же письмо в веб-интерфейсе Gmail и мобильном интерфейсе Gmail — HTML-код письма будет выглядеть по-разному.

Это связано с разной предварительной обработкой емейла. Дело в том, что веб-интерфейс — это тоже набор HTML-тегов и CSS-стилей, и чтобы наша вёрстка не перезаписала CSS-стили и не «поломала» его, почтовые клиенты используют ряд ухищрений. Большинство из них удаляют все стили, прописанные в ‹head› и ‹body›. Например, Yahoo.com, Gmail.com и Outlook.com переписывают имена селекторов в письме — добавляют свои префиксы. Yahoo.com и Gmail.com также оборачивают элементы вёрстки письма в контейнеры со своими классами. Завершает картину Outlook, который использует для интерпретирования кода движок MS Word. А у таких клиентов, как Thunderbird, Apple Mail и Opera Mail, интерпретаторы построены на том же движке, что и браузеры.

Для примера давайте разберём вставку фоновых изображений в письма. HTML-код таблицы с фоном будет следующим:

<!-- bg_tbl -->
<table width="300" border="0" cellspacing="0" cellpadding="0" style="max-width: 300px; min-width: 300px;"><tr>
<td background="img/back1.jpg" style="background-image:url(img/back2.jpg)" bgcolor="#e07b2d" height="100" valign="top" align="center">
	<!--[if gte mso 9]>
	<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:300px;height:100px;">
	<v:fill type="tile" src="img/back3.jpg" color="#e07b2d" />
	<v:textbox inset="0,0,0,0">
	<![endif]-->
	<div>
	<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr>
	<td align="center" height="100" valign="middle">
        	<div style="line-height: 16px;">
            	<span style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 14px; color: #000000; line-height: 16px;">
                	Тут должен быть текст</span>
        	</div>
    	</td>
	</tr></table>
	</div>
	<!--[if gte mso 9]>
	</v:textbox>
	</v:rect>
	<![endif]-->
</td>
</tr></table>
<!-- bg_tbl END -->

Обратите внимание, что фоновое изображение мы прописываем в трёх местах: в виде атрибута, в инлайновых стилях и в vml. Для чего это нужно? Именно такая структура обеспечит нам корректное отображение фонового изображения во всех почтовых клиентах и веб-интерфейсах.

Для примера в атрибуте, style и vml прописаны три разных изображения. Если мы посмотрим, что у нас отобразится в почтовых клиентах и веб-интерфейсах, то увидим следующую картину:

  • изображение, прописанное в атрибуте background, отобразится в Yandex.ru, Outlook.com и Lotus Notes 8.5;
  • изображение, прописанное в style, отобразится в Gmail.com, mail.ru, Yahoo.com, Rambler.ru, Outlook 2003 и в стандартных приложениях на Android и iOs;
  • изображение, прописанное в vml, отобразится в Outlook 2010, Outlook 2013, Outlook 2016.

Если мы откажемся от использования атрибута background, то фоновое изображение совсем не отобразится в Outlook.com, так как Outlook.com игнорирует стилевое свойство background-image. Если не пропишем фоновое изображение в инлайновых стилях, то фона не будет в Rambler. А Outlook показывает фоновые изображения только если используется vml. Если мы, например, меняем правила повторения или позиционирования фона, то обязательно используем полную, а не сокращённую форму записи стилевых свойств (background-repeat, background-position).

Этот пример показывает, насколько вёрстка емейл писем отличается от обычной web-вёрстки. Тут можно провести аналогию с CSS-хаками — методами, позволяющими воспринимать CSS только определённому браузеру.

Например, можно было добавить фон отдельно для IE6:

* html .class {background: red}

А такой хак работает в IE6 и IE7 по аналогии со свойством !important:

.class {background: red !ie}

Таких хаков было множество, и не только для IE. CSS-хаки раньше активно использовали верстальщики, чтобы добиться идеальной кроссбраузерной вёрстки. В письмах сейчас похожая ситуация — необходимо учитывать особенности каждого почтового клиента и веб-интерфейса.

Стоит также упомянуть про скрипты в письмах — их использовать нельзя. Почтовые клиенты ведут себя по‑разному с тегом <script>. Многие удаляют всё, что находится внутри тега, другие просто отмечают письмо как потенциально опасное, и оно не дойдёт до пользователя.

Будьте внимательны к деталям и проводите тестирование тщательно. Подробно об особенностях вёрстки писем читайте в статье «Инсайты. Чем вёрстка писем отличается от вёрстки веб-страниц».

Повышаем продажи
С помощью правильного email-маркетинга
Имя
Корпоративный email *
Array
(
    [0] => WP_Term Object
        (
            [term_id] => 1425
            [name] => Статьи
            [slug] => articles
            [term_group] => 0
            [term_taxonomy_id] => 1907
            [taxonomy] => category
            [description] => 
            [parent] => 0
            [count] => 663
            [filter] => raw
            [cat_ID] => 1425
            [category_count] => 663
            [category_description] => 
            [cat_name] => Статьи
            [category_nicename] => articles
            [category_parent] => 0
        )

)
Поделиться статьёй
Подписаться на рассылку