- PVSM.RU - https://www.pvsm.ru -
Электронная почта — отличный инструмент коммуникации, который позволяет компаниям доставлять аудитории контент удобным для нее способом. При этом читать письма в формате plain text не всегда удобно, поэтому в современных новостных рассылках [2] используются различные графические элементы.
Вёрстка HTML для электронной почты — интересная и довольно сложная задача. Письма должны одинаково хорошо отображаться на старых устройствах и версиях программных клиентов.
В сегодняшней статье мы поговорим о том, как создавать email-письма, которые хорошо выглядят на любых устройствах, а также рассмотрим способы адаптации HTML-кода уже существующих рассылок для их отображения на телефонах и планшетах.
Примечание переводчика: Представленный ниже материал содержит значительное количество технических терминов, при переводе которых могут возникнуть неточности. Если вы заметили опечатку, ошибку или неточность перевода — напишите нам, и мы оперативно всё исправим.
Главной проблемой при вёрстке email-писем является тот факт, что существует огромное количество софта для чтения подобных сообщений — от десктоп-продуктов вроде Eudora Outlook, AOL, Thunderbird и Lotus Notes до веб-сервисов вроде Yahoo!, Gmail, Mail.ru и до мобильных почтовых приложений.
От того, как программное обеспечение используется каждым из таких инструментов для рендеринга HTML и будет зависеть, какой HTML и СSS-код будет работать, а какой нет.
Обеспечить кроссбраузерное отображение веб-сайта — непростое дело, но когда речь идет о email, все еще сложнее. Каждая из существующих программ для работы с почтой может отобразить одно и то же письмо совершенно по-разному. И даже если добиться более менее одинакового отображения в разных клиентских программах, то радоваться рано, ведь то, как письмо будет в конечном итоге выглядеть, зависит еще и от ширины экрана пользователя.
Если вы собираетесь верстать письма вручную или использовать готовый шаблон, стоит придерживаться двух основных правил создания HTML для электронной почты:
Самый простой способ увидеть, как HTML-таблицы и встроенный CSS могут использоваться в шаблонах email-писем — это скачать некоторые такие шаблоны с сайтов компаний Campaign Monitor [4] и MailChimp [5] (прим. пер: вот здесь собраны примеры дизайна email-рассылок [6] клиентов сервиса Pechkin-mail).
При изучении этих шаблонов будут заметны несколько вещей, которые мы подробнее обсудим далее:
<body>, а не между тегов <head>;font: 12px/16px Arial, Helvetica, следует создать отдельные сущности для каждого шрифта, с прописыванием им значений font-family, font-size и line-height;span и div используются редко и для реализации конкретных эффектов, основную же работу по описыванию шаблона письма берут на себя таблицы HTML;Да, таблицы вернулись. Да, веб уже далеко ушел вперед, но мы-то не в вебе! Из всего многоорбазия email-клиентов найти такой, который бы обладал широкой и качественно поддержкой CSS — та еще задача. Это значит, что мы просто вынуждены использовать таблицы, если хотим, чтобы создаваемые письма рассылок консистентно отображались у каждого читателя.
Так что придется отложить в сторону лучшие практики соответствия веб-стандартам и засучить рукава, разбираясь в вёрстке.
Первым шагом на пути к созданию HTML-версии письма является выбор шаблона — для новостных рассылок лучше всего работают одноколоночный и двухколоночный шаблоны, поскольку они помогают свести к минимуму хаос, который часто возникает при попытке запихнуть в такой маленький «контейнер», как email, большой объём информации. Письма, сверстанные в одну колонку также лучше отображаются на смартфонах и планшетах.
Одноколоночный шаблон, как правило, состоит из:
В двухколоночных письмах также есть заголовок и футер. Как и в случае двухколоночной веб-страницы, в подобных сообщениях одна колонка узкой — в ней помещаются ссылки для получения дополнительной информации и прочие навигационные элементы, а второй, более широкий столбец, содержит, собственно, контент сообщения. Чтобы заставить такие письма хорошо отображаться на смартфонах и планшетах приходится приложить немало усилий по вёрстке.
Сообщения, в которых продвигаются товары или услуги, создаются по похожей схеме, но содержат меньше контента, чем информационные письма. Часто они включают одно два ключевых предложения и иногда содержат большую картинку, на которой расположен поясняющий текст и несколько ссылок под изображением.
Все вышеописанные свойства могут быть закодированы с помощью HTML таблицами, благодаря которым осуществляется разделение пространства на столбцы и строки. Только с помощью табличной вёрстки можно создать шаблоны, которые будут качественно отображаться на любых устройствах и в любых почтовых программах.
Вне зависимости от предполагаемого дизайна письма, необходимо помнить о том, что самую важную информацию следует размещать как можно ближе к его верхней части — это позволит пользователю сразу ее увидеть, после открытия сообщения. Верхний левый угол письма — первая точка, куда смотрит читатель.
Вот какой подход можно использовать при создании HTML-писем:
<td> для заголовка (с colspan=”2” в случае двухколоночного дизайна), контента и футера будет хорошо отображаться на всем почтовом софте (кроме Lotus Notes).<td> можно использовать атрибуты, помогающие контролировать отображение таблицы. К примеру, установка border="0", valign="top", align="left" (или center, если это будет хорошо выглядеть в конкретном варианте оформления), cellpadding="0", cellspacing="0" и т.д. Главным образом это помогает старым почтовым программам отображать письмо в более или менее приемлемом виде.border=”1” — это помогает при отладке и поиске проблем, которые могут возникнуть с выравниванием контента внутри тегов <tr> и <td>. При запуске рассылки в «продакшн», границу можно установить обратно на border=”0”.
Этот подход может вызвать недовольство поклонников разработки по последним стандартам, но это единственный путь добиться приемлемого результата. К тому же использование табличной вёрстки вовсе не подразумевает использование устаревших методов в других аспектах создания email-рассылок. К примеру, неважно, как плохо Lotus Notes отображает HTML, никогда не нужно обходить это с помощью тега <font>. И даже при всех минусах движка рендеринга HTML в MS Outlook 2007, с таблицами он справляется вполне хорошо.
Конечно, везде есть сложности. В следующем разделе статьи поговорим о стилях.
Выше мы говорили о том, что многие email-клиенты не сильны в поддержке CSS. Однако это не значит, что вы не должны использовать стили в своих письмах, сверстанных с помощью таблиц. Нужно лишь учитывать несколько моментов.
Прежде всего, следует использовать встроенные стили, чтобы хранить в них всю нужную информацию, как показано ниже:
<p style="color: red;"></p>
Таким же образом можно использовать <table>, <td>, <p>, <a> и т.п.
Не нужно использовать объявление CSS <style> в HTML-теге <head>, как часто делают при вёрстке веб-страниц. Вместо этого объявление <style> нужно разместить сразу за тегом <body> — однако Gmail ищет любые теги style в письме и удаляет их. Кроме того не стоит даже тратить время на использование элемента link для того, чтобы сослаться на внешний файл стилей: популярные email-клиенты проигнорируют, изменят или удалят такие обращения к внешним сущностям.
Для таблицы-контейнера, в которой хранятся таблицы заголовка, контента и футера, следует установить ширину на уровне 98%. Некоторым почтовым клиентам (например, Yahoo) нужна прокладка по 1% с каждой стороны письма, чтобы его корректно отобразить. Если боковые элементы критически важны для вашего письма, то лучше уменьшить ширину таблицы до 95% или даже 90%, чтобы точно избежать возможных проблем. При этом таблицы внутри контейнера, само собой, должны иметь ширину в 100%.
Помещать информацию об основном шрифте нужно в табличный тег <td>, который ближе всего расположен к собственно контенту. Да, это может вылиться в многочисленное повторение объявлений стилей в разных ячейках <td>. Тем не менее выносить заглавный стиль в заголовки (<h1>, <h2>) следует только в крайних случаях.
Не стоит злоупотреблять тегами <div>, их можно использовать для выравнивания небольших блоков контента со свойством float и ссылок на элементы справа или слева от ячейки <td>. Gmail игнорирует объявления CSS float (другие клиенты вроде Yahoo и Outlook online работают с ними нормально). Иногда лучше написать больше кода для более сложного табличного шаблона, чем полагаться на использование на выравнивание с помощью float в узкой колонке. Плохая поддержка этого свойства почтовыми клиентам — одна из причин некорректного отображения писем. (Кстати об этом свойстве на Хабре есть интересная статья [7]).
Теги <div> полезны время от времени, а вот <span> работает всегда — потому что с его помощью как раз и встраиваются элементы. В некоторых случаях теги <span> могут быть использованы не только для установки цвета и размера текста: с их помощью текст можно размещать над или под контентом.
Важный момент: некоторые сервисы email-рассылок могут распаковывать определения стилей, чтобы сделать их более явными и, соответственно, более читабельными для почтового софта. К примеру, сокращение CSS style=”margin: 10px 5px 10px 0;” может быть развернуто в более длинное объявление, которое показано выше по тексту. Перед рассылкой следует протестировать разные варианты писем и посмотреть, что происходит с кодом после отправки. В начале лучше использовать сокращения CSS, поскольку даже в самом плохом случае, так или иначе почтовые клиенты смогут их понять.
Если скачать и изучить шаблоны писем с сайтов вроде MailChimp или Campaign Monitor, то станет ясно, что в них таблица-контейнер рассматривается в качестве HTML-тега <body>. Например, команда сервиса Campaign Monitor обращается к этой таблицы как к “BodyImposter” — отличный способ представления таблицы-обертки. С точки зрения CSS, таблица-контейнер делает ровно то, что делал бы элемент <body>, если бы сервисы вроде Gmail его не игнорировали.
Создание валидного HTML с помощью описанных ваше шагов — только часть пути. Существуют и другие практики, которым нужно следовать, чтобы создать качественную почтовую рассылку.
Следующим шагом является тестирование получившегося письма на различных email-клиентах. Как правило, на этом этапе вылезут проблемы, для решения которых понадобятся те или иные хитрости.
Первыми средствами тестирования писем являются браузеры Firefox и Internet Explorer. Если сообщение хорошо выглядит в них, то велик шанс на то, что и в клиентах вроде Outlook, Yahoo, Gmail и других с ним не будет больших проблем. Если это возможно, следует даже пойти дальше и протестировать письмо в IE 6 — это позволит увидеть, как письмо будет «рендериться» в Outlook 2003. Чтобы примерно понять, как письмо будет показываться на iPhone и iPad нужно протестировать его в Safari.
После того, как письмо нормально отображается в IE и FF, нужно отправить его на некоторый диапазон тестовых почтовых адресов с помощью сервиса email-рассылок. В идеале в выборке должны быть аккаунты из самых популярных почтовых сервисов — конечно, окончательный выбор зависит от того, на каких доменах адреса у людей из списка рассылки. Если среди них нет никого, с почтой на Yahoo, то не стоит и тратить время, на подгонку письма под эту систему.
Ниже представлены полезные приемы вёрстки, которые облегчают этап тестирования:
cellpadding и cellspasing. Если это не помогает, то следует применить CSS-атрибуты margin и padding. На старых почтовых программах лучше работает вариант с чистым HTML.<td> закрывается сразу под тегом <img>, может возникнуть проблема с расположением изображения. Это давняя проблема HTML. Решить ее можно разместив закрывающий тег </td> сразу после тега <img> на одной строке с ним.В дополнении к этому, рекомендуется следовать представленным ниже лучшим практикам:
background вместо CSS. Это позволяет добиться большего единообразия при работе с различными почтовыми сервисами./images/email), и их никогда нельзя удалять. Некоторые люди открывают письма недели и месяцы спустя их получения, используя их аналогично закладкам в браузере — чтобы вернуться к нужному контенту.alt, height и width. Задание значений этих элементов улучшает результаты при работе с Gmail. Кроме того, это позволяет шаблону письма не разваливаться, если пользователь отключил отображение картинок. Примечание: Outlook 2007 не распознает атрибут alt.target=”_blank” — люди, которые читают письмо в веб-клиенте вряд ли захотят, чтобы ссылка открылась в том же окне.Очень важно удостовериться, что письмо отображается корректно в почтовых клиентах, в которых отключен показ изображений. В большом количестве email-клиентов по умолчанию эта настройка стоит на “off”. Это значит, что при использовании фонового изображения с белым текстом поверх него, при невозможности загрузки этой картинки, возникнут проблемы. Чтобы этого избежать нужно прописать тёмный фоновый цвет для этой части HTML-таблицы.
После настройки и проведения работ, которые привели к тому, что письмо качественно отображается на тестовых почтовых аккаунтах, можно «прогнать» его через финальный чеклист. Он может выглядеть так:
Многие сервисы email-рассылок позволяют протестировать то, как письмо будет отображаться в разных почтовых системах — это позволяет увидеть возможные проблемы до его отправки.
Gmail, Lotus Notes и Outlook 2007 ставят перед верстальщиками и дизайнерами новые вызовы. К примеру, в Outlook 2007 поддержка CSS значительно хуже, чем в предыдущих версиях сервиса.
Gmail позволяет больше вольностей — поскольку это веб-сервис, то он не может контролировать контент отображаемого сообщения. Соответственно, инженерам Google пришлось поработать над тем, чтобы их почтовая система работала корректно вне зависимости от качества HTML и CSS в самих письмах.
В итоге Gmail ведет себя как артефакт из 90-х, когда веб-стандарты находились на примитивном уровне.
Прежде всего, Gmail удаляет CSS-стили, содержащиеся между любы тегами стилей, вне зависимости от того, в каком месте письма они будут обнаружены. Единственная альтернатива стилям — отображение шрифтов внутри HTML-таблиц, но при этом шрифт часто оказывается больше, чем предполагалось (вне зависимости от структуры HTML).
Положительный момент всех этих сложностей заключается в том, что если вам удалось разобраться с тремя упомянутыми выше почтовыми программами, то вероятность того, что письмо будет хорошо выглядеть в других системах, повышается в разы.
Вот несколько трюков, которые работают в Gmail и старых почтовых клиентах:
<td> с помощью атрибута bgcolor, не используя CSS.<td>. Стиль margin в таких ячейках не сработает, а padding — вполне.<td>, следует помнить, что Gmail по-умолчанию отображают границу ячейки, когда она определена в div, но не показывает ее, когда она определена, как стиль границы в теге <td>.<td> (то же касается тегов <p> и <a>), а затем добавить к тегу стиль color:.<a> и <p> оказываются разного размера, то тег <a> надо завернуть в <p>.<td>, <h1>, <h2>, <p>, <a> и других не хватает одного или более стилей шрифтов. Нужно проверить каждый шрифт, чтобы убедиться в том, что почтовая система Google отображает его корректно.Помимо Gmail есть еще один «злой гений» среди почтовых сервисов — это Lotus Notes. Многие большие корпорации продолжают поддерживать и обновлять этот софт.
К сожалению, определить, какие компании используют Notes «извне» никак нельзя. Единственный выход — следовать лучшим практикам, описанным в статье. То есть, чем примитивнее код вёрстки, тем выше вероятность, что он будет хорошо работать с Notes.
Эта система таит в себе немало сюрпризов. Например, старые версии Notes могут конвертировать изображения в собственный проприетарный формат или просто игнорировать полностью корректные базовые теги HTML в одном письме, но отображать их в другом сообщении.
Вот несколько советов, которые помогут убедить эту программу в том, что ваше письмо можно показать нормально:
cellpadding как минимум величиной 5.<head>. Notes, как и Gmail может удалить стили. Поэтому необходимо использовать встроенные (inline) стили в тегах <table, <td>, <h2>, <h2>, <p>, <a> и др.<td>. В отличие от веб-браузеров, которые самостоятельно приводят ширину ячейки к самой большой установленной величине, Notes установит ширину каждой ячейки ровно так, как она была для нее прописана.Использование этих техник позволит добиться хорошего рендеринга писем в Gmail и Lotus Notes и поможет качественного отображения в Outlook 2007, в котором применяется более старый движок рендеринга.
У Campaign Monitor есть довольно подробный список [8] элементов CSS, которые поддерживаются популярными мобильными, веб и десктоп-почтовыми клиентами.
Огромное число людей читают HTML-письма, открыв их на своих смартфонах или планшетах, а не только в вебе или на десктопе. Это значит, что адаптация таблиц для отображения на мобильных устройствах будет крайне полезной — к тому же, это не так уж и сложно.
Для этого нужно использовать определние CSS @media для задания ячеек <td> в HTML-таблицах и увеличения шрифтов для их качественного отображения. К примеру, шрифты на iPhone должны быть размером не менее 13 пикселей, чтобы их можно было разобрать.
Веб- и десктоп-клиенты просто проигнорируют определения @media, в то время, как смартфоны и планшеты их заметят и применят для качественного отображения сообщения.
Ниже представлен простой набор определений @media для отображения одноколоночного шаблона с HTML-таблицами на телефонах и планшетах:
@media only screen and (max-width: 480px) {
/* mobile-specific CSS styles go here */
table[class=email], table[class=email-content] {
clear: both;
width: 320px !important;
font-size: 13px !important;
}
}
Этот код следует разместить сразу после тега body, после class=”email” в определении таблицы и class=”email-content” в ячейках <td>. Когда такое письмо будет открыто на мобильном устройстве (или горизонтально ориентированном веб-браузере) размером менее 480 пикселей эти определения будут активированы.
Секрет вёрстки двухколоночных шаблонов HTML-писем для отображения на маленьких экранах залючается в помещении каждого столбца в отдельную таблицу. Затем для каждой HTML-таблицы нужно использовать встроенный CSS для float:left и HTML align=”left” для выравнивания всего контента в столбце по его левому краю. Затем в описание <table> нужно добавить определение class=”email”, а в ячейки <td> — class=”email-content”.
Этот подход может быть использовать для улучшения отображения писем на мобильных устройствах.
Многие люди, которым приходят те или иные почтовые рассылки, предпочитают просматривать HTML-письма, а не их plain text версии по целому ряду причин. Для разработчиков, однако, задача по созданию HTML-рассылки может быть не столь тривиальной.
В сегодняшней статье мы попытались описать некоторые проблемы и их возможные решения, а также дать советы по созданию разметки, которая будет работать в различных почтовых программах.
Список источников для дальнейшего изучения:
Представленные ниже ресурсы содержат ценную информацию, которая поможет всем желающим лучше освоить вёрстку писем в HTML:
Автор: lol_wat
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/html/88930
Ссылки в тексте:
[1] Image: http://habrahabr.ru/company/pechkin/blog/255819/
[2] новостных рассылках: https://pechkin-mail.ru/?utm_source=habr&utm_medium=referral&utm_campaign=email_css_rules
[3] CSS Inliner: http://labs.pechkin-mail.ru/inliner/?utm_source=habr&utm_medium=referral&utm_campaign=email_css_rules
[4] Campaign Monitor: https://www.campaignmonitor.com/email-templates/
[5] MailChimp: http://templates.mailchimp.com/
[6] примеры дизайна email-рассылок: http://pechkin-mail.ru/landing/examples.html
[7] интересная статья: http://habrahabr.ru/post/142486/
[8] список: https://www.campaignmonitor.com/css/
[9] Campaign Monitor: Guide to CSS Support in Email: http://www.campaignmonitor.com/css/
[10] Campaign Monitor: Responsive Email Design: http://www.campaignmonitor.com/guides/mobile/
[11] MailChimp: Email on Mobile Devices: http://mailchimp.com/resources/guides/email-on-mobile-devices/
[12] MailChimp: Email Blueprints: https://github.com/mailchimp/Email-Blueprints
[13] MailChimp: Email Marketing Field Guide: http://mailchimp.com/resources/guides/email-marketing-field-guide/
[14] 5 правил верстки email-писем от Печкина: http://habrahabr.ru/company/pechkin/blog/182964/
[15] Источник: http://habrahabr.ru/post/255819/
Нажмите здесь для печати.