HTML верстка e-mail писем, 4 особенности которые следует принять во внимание

email_design

Публикую перевод статьи “How to Code HTML Email Newsletters”, написанной Тимом Слэйвином (Tim Slavin) для сайта sitepoint.com.

Электронное письмо в HTML формате по-прежнему является весьма успешным видом коммуникации между издателями и читателями. Издатели могут отслеживать разные показатели по таким письмам, например, чтение письма, пересылка, переход по ссылкам в тексте письма, а также интерес читателей к тем или иным продуктам и темам. Читатели воспринимают информацию как обычную веб страницу, она визуально более привлекательна и гораздо легче читаема, чем текстовые письма.

В последнее время сверстать письмо в HTML формате стало легче – некоторые почтовые провайдеры, такие как Google Mail, улучшили поддержку CSS. Однако, в тоже время, Outlook 2007 сделал шаг назад на пути отображения HTML писем: в прошлом году Microsoft заменила движок рендеринга HTML, который использовался Outlook, на новый, уступающий предыдущему в плане поддержки CSS.

Другими достижениями в этой области за последние несколько лет стало появление сервиса Email Standards Project, который направлен на то, чтобы улучшить соответствия между почтовым программным обеспечением; появление услуг тестирования того, как письма будут отображаться в разных почтовых десктопных и веб приложениях; появление множества бесплатных шаблонов для использования в своих целях. В этой статье мы рассмотрим некоторые сервисы и шаблоны, которые помогут вам понять, как правильно сверстать письмо в HTML формате.

Не смотря на эти успехи, верстка может стать нетривиальным делом. В этой статье я попробую раскрыть все секреты правильной верстки писем и при этом добиться хорошего отображения в большинстве почтовых клиентов. Я опишу результаты моего личного опыта создания HTML писем, а также затрону некоторую техническую информацию сети Интернет.

Это, по сути, вторая версия статьи, которая была написана и опубликована на sitepoint.com в 2004 году, и включает в себя новые материалы, которые помогут вам убедиться в том, что ваши электронные письма отвечают всем требованиям сегодняшних почтовых клиентов.

Основы html для e-mail

При верстке HTML писем много времени отнимает фактор существования большого количества различных программ для чтения электронной почты: из настольных программ – Eudora, Outlook, AOL, Thunderbird, и Lotus Notes; из работающих через веб-интерфейс — Yahoo!, Hotmail, Google Mail и др. Если Вы думали, что придерживаться кросс-браузерности при верстке веб-страниц было трудным, то приготовьтесь к новой игре, так как каждый из выше упомянутых клиентов может отображать одно и то же электронное письмо совсем по-другому. И даже когда эти средства будут отображать все отлично, вы должны помнить, что читатели, могут изменять размеры окна при чтении, при этом могут возникать разного рода неприятности.

Если вы решите заниматься ручной версткой HTML писем (мое предпочтение) или использовать уже готовый шаблон, вы должны помнить о двух вещах:

  1. Используйте таблицы (table) при верстке для контроля представления и дизайна. Вы, наверное, использовали последние достижения XHTML/CSS верстки для веб-страниц, но эти принципы плохо работают в почтовых клиентах.
  2. Используйте вложенный в HTML-тэги CSS код, например, цвет фона или стили для текста.

Простой и быстрый способ увидеть, как взаимодействуют HTML таблицы и inline-CSS в электронном письме – скачать несколько бесплатных шаблонов с Campaign Monitor и MailChimp. Когда вы просмотрите исходный код, вы увидите несколько вещей, которые мы обсудим немного позже:

  1. Объявление CSS-стилей описано ниже тэга body.
  2. Не используется CSS-сокращения: вместо того, что бы использовать правило font: 12px/16px Arial, Helvetica, вы должны использовать сочетание правил: font-family, font-size, и line-height.
  3. Таблицы исполняют всю работу по представлению письма, а с помощью тэгов span и div можно добиться специфических эффектов.
  4. CSS-стили — базовые.

Шаг 1: Используйте таблицы для представления

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

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

На первом шаге создания HTML письма вы должны решить, как оно будет выглядить. Если очень много информации хочется предоставить читателю, для этих целей подойдет одна или две колонки – это поможет упорядочить хаос.

Одноколоночный формат типично состоит из:

  1. Шапки, куда помещается логотип и некоторые (или все) навигационные ссылки из оригинального веб-сайта, для того, чтобы обеспечить схожесть с сайтом.
  2. Ссылки на новости, которые находятся ниже в письме.
  3. Подвал (футер) — внизу письма, который обычно содержит ссылки, которые идентичны ссылкам в шапке письма, а также инструкции о том, как отписаться от рассылки.

Двухколоночные электронные письма также содержат шапку и подвал, а так же как и двухколоночные веб-страницы у них есть узкая колонка (справа или слева), в которой содержатся навигация, ссылки и дополнительная информация, и колонку пошире.

В промо-письмах придерживаются аналогичных правил, но они содержат меньше текста и ссылок. Зачастую, они содержат одно или два главных сообщения, и одну большую картинку с пояснениями и ссылками под картинкой.

Все это можно с легкостью создать, используя таблицы, разбивая с их помощью документ на блоки. На самом деле, использование таблиц — единственный способ добиться правильного отображения в разных почтовых программах.

Не играет роли, какой дизайн у вашего письма, главное, что нужно помнить — помещайте важную информацию как можно выше, чтоб при открытии читатель сразу же видел самое важное. При открытии письма читатели зачастую обращают внимание на левую верхнюю часть, а уже потом на все остальное.

Вот какой подход я использую при создании писем в HTML формате:

  1. Для двухколоночного представления создайте три таблицы — одну для шапки, одну (двухколоночную) для контента (главной части) и одну для подвала. Поместите эти три таблицы в одну большую таблицу. Используйте такой же подход и для одноколоночного документа. Не нужно скупиться на таблицы, используйте для каждого элемента свою, так вы будете уверены, что ваше письмо будет отображаться хорошо почти во всех почтовых клиентах.
  2. Используйте атрибуты в тэгах таблицы (table) и ячеек (td), для контроля отображения. Например, border=»0″, valign=»top», align=»left», cellpadding=»0″ и так далее. Это поможет старым почтовым клиентам корректно отображать письмо.
  3. Даже если ваш дизайн не предусматривает границ вокруг таблиц, вы найдете очень полезным во время разработки установить значение border=»1″ для того, чтобы найти возможные ошибки. После того, как ошибки будут устранены, установите border=»0.»

Подход с использованием описанных выше приемов является наиболее приемлемым на сегодняшний день, хотя и может показаться оскорбительным для верстальщиков, привыкших использовать современные стандарты.

Давайте посмотрим, как можно стилизировать текст в электронном письме.

Шаг 2: Добавляем стили CSS

Говорил ли я о том, что поддержка CSS стилей была очень слабой в почтовых клиентах? Да, это именно так. Тут есть несколько вещей, за которыми нужно следить. Вот методы, которыми я пользуюсь.

Во-первых, используйте inline-стили, как показано здесь:
<style=»color: red;»>

Такой же прием нужно использовать и в тегах таблиц, ячеек, параграфов, ссылок и др.

Не используйте объявления стилей в теге <head> как для веб-страниц. Вместо этого прописывайте стили ниже тега <body> — Google Mail, в частности, сканирует документ и, если находит объявление стилей выше этого тэга, удаляет. Также не используйте элемент <link> для подгрузки внешних стилей: Google Mail, Hotmail и другие почтовые клиенты могут игнорировать их, удалять или модифицировать.

Для внешней таблицы, содержащей таблицы шапки, контента и подвала документа, устанавливайте ширину равную 98%. Это нужно для почтового клиента Yahoo! Mail. Вы даже можете ставить ширину таблицы 95%-90%, чтобы удостовериться, что все будет отображаться хорошо. И конечно же для таблиц в середине выставляйте значение ширины равное 100%.

Прописывайте основную информацию о стилях шрифта в теге ячейки <td> ближе к контенту. Это может привести к повторению стилей в других тегах <td>. Прописывайте стили в тегах заголовков (h1, h2), p или a, когда это необходимо.

Используйте тэг div для позиционирования блоков слева или справа в ячейках таблицы. Google Mail игнорирует блоки, описанные как плавающие (float), но в Yahoo! и Hotmail не возникает проблем. В некоторых случаях лучше всего будет создать таблицу посложнее, с большим количеством ячеек, чем полагаться на плавающие блоки

В то время как тэги div почти не пригодны для использования, span может использоваться почти всегда, так как является inline (строчным) элементом. В некоторых случаях span может использоваться не только для настройки цвета и размера шрифта, но и для позиционирования текста выше или ниже содержания.

Заметьте, что некоторые сервисы, которые доставляют электронные письма, могут модифицировать стили так, что, например, короткое правило style=»margin: 10px 5px 10px 0;» будет разбито на несколько меньших правил. Делается это для того, что бы письмо было понятно большинству почтовых клиентов. Тестируйте каждое письмо и смотрите, что происходит с кодом, избегайте частое использование коротких правил.

Если вы уже скачали и просмотрели некоторые шаблоны из Campaign Monitor и MailChimp, вы могли увидеть, что основная таблица описана так, как-будто это тэг body. Команда разработчиков из Campaign Monitor дает внешней таблице название “BodyImposter,” что дает представление о ней, как о главной таблице – каркасе, в середине которого размещаются все остальные элементы.

Шаг 3: Лучшие приемы e-mail верстки

Если вы создали рабочее и хорошо отображаемое HTML письмо, используя советы, описанные выше, то это только часть работы – есть еще несколько шагов, которые вы должны знать, чтобы убедится, что ваше письмо получено в наилучшем виде.

Следующий шаг – тестирование письма в разнообразных почтовых клиентах. На этой стадии чаще всего находятся некоторые ошибки, которые нужно исправить.

Первыми инструментами для тестов служат браузеры Firefox и Internet Explorer. Если все отображается прекрасно в обоих браузерах, есть все надежды, что тестирование в Outlook, Yahoo!, Google Mail и других сервисах могут показать только незначительные ошибки. Я также рекомендую тестировать все ваши шаблоны писем в браузере Internet Explorer 6 – он сразу же покажет, как ваше письмо будет отображено в Outlook 2003.

Как только ваш шаблон корректно отображается в этих двух веб-браузерах, переходите к тестам, используя сервис доставки писем, разослав их на свои тестовые почтовые адреса в различных почтовых службах. В идеальном случае это могут быть Yahoo!, Hotmail и Google Mail. Почтовые аккаунты, которые вы будете использовать для тестов должны определяться тем, какими сервисами пользуются ваши подписчики. Для примера, если среди ваших подписчиков нет пользователей с почтовыми адресами из сервиса AOL, то, возможно, тестирование и наладка шаблона под этот сервис будет пустой тратой времени и денег.

Важные приемы на этом шаге:

  1. Иногда смена ширины таблицы с процентов на фиксированную ширину очень важна. Пользователи могут менять размер окна при просмотре, фиксированная ширина таблицы – единственный способ добиться правильного отображения.
  2. Если наблюдаются проблемы с пространством в колонках, нужно в первую очередь настроить значения атрибутов cellpadding и cellspacing для таблицы. Если это не приводит к желаемому результату, примените CSS-атрибуты margin и padding.
  3. Неправильное перемещение картинок может возникнуть, когда тэг </td> закрывается ниже тэга <img>. Это очень старая HTML проблема. Если поставить тэг </td> сразу же после тэга <img> (на той же строке) это может решить проблему одно-пиксельного разрыва.

И еще:

  1. Избегайте использования JavaScript. В большинстве случаев они будут отключены почтовыми клиентами.
  2. Если большая картинка разрезана и закодирована в разных ячейках, тестируйте такой шаблон, используя как можно больше тестовых аккаунтов. Иногда, такой шаблон может красиво смотреться в Outlook, но будут появляться ошибки в Hotmail и других сервисах. Также подумайте об использовании этой картинки в качестве фонового изображения в таблице. Этим вы достигните такого же результата. Не забывайте о том, что Outlook 2007 не отображает фоновые изображения.
  3. Для фоновых изображений используйте атрибут background, вместо кода CSS. Это работает безотказно.
  4. Храните изображения для электронного письма на своем сервере используя специальную папку для таких целей, например, /images/email, и не удаляйте их. Некоторые ваши читатели могут просматривать письма через неделю или через месяц.
  5. Используйте атрибуты alt, height, и width для картинок. Установив значения для этих атрибутов, получите отличный результат отображения в Google Mail, и, если даже картинки будут отключены, весь шаблон будет показан хорошо. Однако помните, что Outlook 2007 не поддерживает атрибут alt.
  6. Используйте атрибут target=»_blank» для ссылок, чтобы читатели, которые используют веб-интерфейс, не загружали страницу в том же окне, в которм открыта почта.
  7. Попробуйте не использовать одно-пиксельные изображения, даже если это улучшит вид письма, так как фильтры могут подумать, что ваше письмо — спам. Именно таким приемом пользуются спамеры для того, чтоб узнать, открыл ли читатель их письмо. В худшем случае ваше письмо попадет под фильтр и читатель может его даже не прочитать.

Очень важно, чтобы ваше письмо хорошо смотрелось и с выключенными изображениями. По умолчанию Thunderbird, Outlook и другие почтовые клиенты не показывают изображений. Например, если вы используете белый шрифт на темном фоне, проверьте, что бы с выключенными изображениями фон оставался темным.

В тест вашего электронного письма, включите тест проверки “на спам.” Для этого можно воспользоваться бесплатным сервисом SpamCheck.

Если все проверенно, и все ошибки исправлены, следующим шагом будет проверить следующие пункты:

  1. Правильно ли отображается отправитель письма – имя или почтовый адрес?
  2. Корректна ли тема письма?
  3. Корректна ли контактная информация, и можно ли ее увидеть сразу?
  4. Есть ли текст, вверху письма, “Вы получили это письмо, так как подписаны… Инструкции о том, как отписаться от рассылки находятся ниже.”?
  5. Есть ли у вас ссылка для добавления вашего адреса в контакты?
  6. Присутствуют ли в вашем письме ссылки на веб-версию письма?

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

Шаг 4: Код для Google Mail, Lotus Notes и Outlook 2007

Google Mail, Lotus Notes и Outlook 2007 имеют свои определенные моменты. Хотите верьте, хотите нет, но Outlook 2007 имеет еще более слабую поддержку CSS стилей, чем предыдущие версии данного продукта.

Google Mail осуществляет поддержку получше, так как просмотр письма происходит в веб-браузере — многое зависит от браузера. Конечно, движок Google Mail имеет некоторые настройки, которые следят за тем, как должно отображаться письмо. Google Mail автоматически удаляет стили CSS, которые заключены между тэгами style.

Хорошей новостью является то, что если ваше письмо сверстано хорошо для этих трех почтовых клиентов (Google Mail, Lotus Notes и Outlook 2007), то оно будет хорошо отображаться почти во всех остальных почтовых клиентах, если не во всех.

Некоторые методы, которых необходимо придерживаться для Google Mail и старых почтовых клиентов:

  1. Прописывайте определение фонового цвета с помощью атрибута bgcolor тэга td, не использует для этих целей CSS-стили.
  2. Используйте атрибут background для тэга td, что бы применить фоновую картинку, вместо CSS-стилей.
  3. Используйте padding для контроля отступов в ячейках, margin в этом случае не работает.
  4. Если вам нужны границы вокруг ячеек, используйте дополнительный тэг div, в котором прописывайте значения границ, так как назначение границ напрямую тэгу td не будет работать в Google Mail.
  5. Выставляйте отступы по 10 пикселей вокруг контента, что бы текст не “заезжал” на границы.
  6. Тщательно проверяйте все шрифты, может случиться, что вы забудете прописать стили в нескольких местах.

А теперь перейдем к Lotus Notes. Много компаний продолжают использовать и обновлять этот почтовый клиент (в 1995 IBM объявила, что 95 миллионов людей пользуются Lotus Notes).

Главным для правильного отображения письма в этом почтовом клиенте – код должен быть как можно проще и понятней.

Если вам нужно протестировать ваше письмо в Lotus Notes, вы можете скачать бесплатную пробную версию.

Что бы Lotus Notes отображал ваше письмо в HTML формате корректно, придерживайтесь следующих рекомендаций:

  1. Как мы уже обсуждали выше, используйте таблицу-контейнер, которая будет включать все остальные элементы письма, а также отдельные таблицы для шапки, основной части и подвала.
  2. Создайте пространство вокруг главной таблицы, используйте атрибут cellpadding, установив его значение, равным как минимум 5%.
  3. Не используйте декларации стилей в тэге head, Lotus может просто их удалить.
  4. Используйте абсолютные пути для картинок, которые храните на сервере.
  5. Попробуйте не использовать атрибут colspan в таблицах, ранние версии Lotus Notes не понимают их.
  6. Прописывайте ширину ячеек в тэгах td.
  7. Центрирование письма обычно не работает в Lotus.

Использование данных методов и рекомендаций обеспечит вашим HTML письмам отличное отображение в Google Mail и Lotus Notes, а также даст гарантии, что не возникнет проблем с Outlook 2007, который использует более старый движок.

Резюме

Много пользователей отдают предпочтение получать письма в HTML формате, вместо обычного текстового формата, и это понятно. Но для программистов (верстальщиков), создающих такие письма, справится с задачей иногда не так просто, потому что нужно добиваться их отличного рендеринга во многих почтовых клиентах. В этой статье были преведены некоторые методы и приемы, благодаря которым можно добиться хороших результатов.

Полезные ссылки по теме

Email Standards Project — сайт, на котором вы найдете много рекомендаций о том, какие свойства поддерживают разные почтовые клиенты, как добиться правильного рендеринга и многое другое.

Campaign Monitor и MailChimp — много различных шаблонов для писем в HTML формате.

SpamCheck — проверка “на спам” писем.

Litmus — сервис тестирования шаблона письма во всех популярных почтовых сервисах и почтовых клиентах.

Добавлено:

Сводная таблица поддержки html тегов и css стилей разными почтоывыми клиентами — http://www.campaignmonitor.com/css/

Подборка доступных для скачивания e-mail шаблонов — http://www.campaignmonitor.com/templates/

 

Купить готовый email шаблон

Если вам нужен шаблон для e-mail письма, предлагаю обратить внимание на мой шаблон который я продаю. Шаблон проверен на кроссбраузерность и работает во всех почтовых клиентах, подробнее читайте в описании шаблона. Купив его вы можете изменить в нем информацию и легко кастомизировать под свои нужды.

Описание шаблона

Купить шаблон

  • Дмитрий Быковский

    А как сделать так чтоб ссылка в отправленном письме открывалась у получателя в том же окне а не в новом ?

    • Скорее всего никак. Так как тут уже за отработку ссылки будет отвечать почтовый клиент пользователя, и скорее всего он откроет ссылку в новом окне.

      • Дмитрий Быковский

        Точно знаю что можно ! есть рабочее письмо на mail.ru у меня могу переслать.
        Там как-то хитро сделано и ссылка в картинке.
        В письме картинка она с сайта грузится и к ней прилеплена ссылка и открывается в том же окне если нажать.
        Но вот воспроизвести аналогичную конструкцию самостоятельно у меня не получается.
        Уже не знаю даже что и делать.
        Помогите если можете. )

        • Дмитрий Быковский

          В долгу не останусь.
          Если получится отблагодарю финансово, ну в разумных приделах )))

          • Перешлите письмо на nsteam@rambler.ru посмотрю на ссылку в веб-инспекторе. В принципе вы и сами можете это посмотреть.

          • Дмитрий Быковский

            отправил, сам смотрел не понял ( в рамблере не знаю будет ли работать в майл у меня работает.

          • Ничего не получил. Напишите свой скайп, там разбермся.

          • Дмитрий Быковский

            skype dimonbikon