MJML - Как сделать адаптивное HTML-кодирование электронной почты простым

  1. Дальнейшее чтение на SmashingMag:
  2. Абстрагируясь от сложности отзывчивой электронной почты с MJML
  3. Подход
  4. Кодирование в MJML
  5. Создание вашего первого информационного бюллетеня с MJML
  6. Оптимизация стиля
  7. Добавление контента
  8. Трехколонный макет для блога, логотипа и реферальной ссылки
  9. Макет одной колонки для GIF и CTA
  10. тело
  11. Двухколонный макет, который укладывается на мобильный
  12. Синяя секция с CTA
  13. Последний раздел тела
  14. заглавие
  15. Раздел шести значков
  16. Разделитель и текст
  17. Рендеринг HTML-файла и тестирование
  18. Идти дальше
Электронная почта - один из лучших способов взаимодействия с вашими пользователями, особенно во время курортного сезона. Однако, если вы хотите выделиться, независимо от того, насколько красивы ваши электронные письма, вы должны убедиться, что они правильно отображаются в папке входящих сообщений вашего читателя, независимо от того, какой почтовый клиент они используют. Создание адаптивной электронной почты не простая задача , и для этого есть разные причины. Во-первых, в почтовых клиентах нет стандартного способа отображения HTML. Это верно для почтовых клиентов из разных компаний, таких как Outlook и Apple Mail, но не только. Даже разные версии Outlook, такие как Outlook 2003, Outlook 2013 и Outlook.com, отображают HTML по-разному.

Во-первых, в почтовых клиентах нет стандартного способа отображения HTML. Это верно для почтовых клиентов из разных компаний, таких как Outlook и Apple Mail, но не только. Даже разные версии Outlook, такие как Outlook 2003, Outlook 2013 и Outlook.com, отображают HTML по-разному.

Дальнейшее чтение на SmashingMag:

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

Теперь есть несколько методов, чтобы помочь разработчикам электронной почты. Вы можете быть знакомы с некоторыми из них, такими как гибридный подход , Мобильный первый подход или даже Fab Four техника от HTeuMeuLeu , Но по причинам, указанным ранее, и в особенности из-за отсутствия стандарта, ни один из этих методов не позволит вам приручить все почтовые клиенты одновременно.

Абстрагируясь от сложности отзывчивой электронной почты с MJML

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

Использование семантического синтаксиса и компонентов высокого уровня, таких как карусель (да, вы можете отобразить интерактивную галерею изображений в электронном письме!), MJML действительно легко освоить для всех. Адаптивные электронные письма больше не доступны только для нескольких экспертов.

Пример компонента MJML: карусель

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

Например, наш пример электронной почты был закодирован в 788 строк HTML и воспроизводится в менее 240 строк MJML ,

Подход

MJML встроен реагировать библиотека JavaScript, разработанная и поддерживаемая Facebook и использующая мощь компонентов React. Имена компонентов семантические, начинающиеся с mj-, так что они просты, а также легко распознаваемы и понятны: mj-текст, mj-изображение, mj-кнопка и т. Д.

MJML перейдет к адаптивному HTML, следуя сочетанию мобильных и гибридных подходов. Going mobile-first позволяет вам убедиться, что наиболее читаемая версия отображается по умолчанию в почтовых клиентах, которые не меняют макет в соответствии с используемым устройством.

Например, в Outlook.com мобильная версия будет отображаться как на настольном компьютере, так и на мобильном (что гораздо удобнее для чтения, чем версия для настольного компьютера, отображаемая на мобильном устройстве). Затем гибридный подход позволяет изменять компоновку в зависимости от размера устройства везде, где это возможно, используя сочетание запасных вариантов, условных комментариев, вложенных таблиц и медиазапросов, чтобы охватить как можно больше клиентов. Раскладка приятно ухудшается: многостолбцовые разметки на рабочем столе превращаются в одностолбцовые разметки на мобильных устройствах.

Двухколонный макет, вид на рабочий стол Двухколонный макет, мобильный вид

Кодирование в MJML

Прежде чем мы начнем учебник, давайте подготовимся к написанию кода на MJML. У нас есть разные способы использования MJML, такие как запустить его локально или используя онлайн редактор , Выбрав онлайн-редактор, вы сможете сразу запустить его, но его локальный запуск позволяет использовать MJML с вашим любимым редактором кода (с плагинами для Атом , Возвышенный текст а также напор ), такие исполнители, как Глоток-mjml а также Грунт-mjml а также намного больше ,

Для этого урока онлайн редактор рекомендуется, потому что не требует никакой настройки.

Если вы все еще хотите использовать его локально, откройте ваш терминал и запустите npm install mjml -g (требуется иметь Node.js и npm установлены).

После установки MJML создайте файл с именем example.mjml (или любым другим именем) с каким-либо MJML и запустите в своем терминале mjml -r example.mjml (убедитесь, что он находится в той же папке, что и файл, который вы отображаете) , Он отобразит ваш MJML-файл в файле с именем example.html с отзывчивым HTML-кодом внутри. Вы можете найти все доступные опции для командной строки в документация ,

Создание вашего первого информационного бюллетеня с MJML

Теперь, когда вы все настроены, мы можем начать создавать адаптивный бюллетень вместе. Чтобы найти вдохновение, одно из лучших мест вокруг ReallyGoodEmails , Я нашел отличный пример новостной рассылки от Процветающий рынок , Давайте воссоздадим это с MJML!

(Названия брендов, логотипы и товарные знаки, использованные в настоящем документе, остаются собственностью их соответствующих владельцев, и их использование не подразумевает одобрения или присоединения к Thrive Market.)

Информационный бюллетень «Процветающий рынок»

Во-первых, вот что базовый макет документа MJML выглядит так:

<mjml> <mj-head> <! - Компоненты Head находятся здесь: https://mjml.io/documentation/#standard-head-components -> </ mj-head> & lt;! - Все содержимое нашего письма будет отправлено в mj-body - & gt; & Lt; МДж тела & GT; & lt;! - mj-container определяет стиль нашей электронной почты по умолчанию, включая ширину по умолчанию, установленную в 600px, но перезаписываемую - & gt; & Л; MJ-контейнер & GT; & lt;! - Компоненты тела находятся здесь (https://mjml.io/documentation/#standard-body-components) - & gt; & Lt; / MJ-контейнер & GT; & Lt; / МДж тела & GT;
</ Mjml>

Оптимизация стиля

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

<mj-text font-size = "20px" color = "# F45E43" font-family = "helvetica"> Hello World </ mj-text>

Для начала мы установим семейство шрифтов sans-serif по умолчанию для текстовых компонентов, потому что здесь sans-serif используется для большей части текста. Затем мы создадим классы для многократно используемых элементов, поэтому нам не придется вручную устанавливать стили снова и снова. Мы могли бы создать больше пользовательских классов и стилей, но самые полезные стили будут для:

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

Здесь мы будем использовать компоненты головы тремя способами:

  • Установите заполнение по умолчанию 0 для каждого компонента, используя <mj-all />. Это заполнение по умолчанию может быть отменено путем ручного указания заполнения непосредственно для компонентов, которые мы используем.
  • Переопределите семейство шрифтов по умолчанию <mj-text>, используя <mj-text /> в заголовке. Каждый раз, когда мы используем <mj-text>, семейством шрифтов по умолчанию будет sans-serif. Мы все еще можем вручную переопределить этот новый шрифт по умолчанию, указав новый непосредственно на компоненте.
  • Создайте классы, используя <mj-class /> и, более конкретно, используя следующие mj-классы:
    • Пилюлька Это дизайн приятной кнопки. Атрибуты, на которые стоит обратить внимание: это цвет фона, заданный как прозрачный, и внутренний отступ, используемый для изменения размера кнопки, как мы хотим.
    • desc Это стиль описания изображений в двухколоночном макете.
    • ico Это стиль текста под шестью иконками перед нижним колонтитулом.
<mj-head> <mj-title> Узнайте о последних тенденциях </ mj-title> <mj-attribute> <mj-all padding = "0" /> <mj-text font-family = "sans-serif" color = "# 8e8b85" /> <mj-class name = "pill" font-weight = "700" color = "# d5ad4b" border-radius = "50" border = "2px solid # d5ad4b" font-size = "16px "line-height =" 16px "padding =" 8 20 20 20 "inner-padding =" 10 75 10 75 "background-color =" transparent "/> <mj-class name =" desc "font-family =" Georgia "font-size =" 20px "color =" # 45495d "padding =" 25 5 10 10 "/> <mj-class name =" ico "font-family =" Helvetica "font-size =" 14px "align =" center "padding =" 0 0 "/> </ mj-attribute> </ mj-head>

(Как вы, возможно, заметили, мы пропустили единицы измерения в некоторых атрибутах, таких как отступы. Если вы это сделаете, MJML выведет атрибуты с px по умолчанию.)

Добавление контента

Теперь, когда стили определены в голове (вы можете увидеть Вот как ваш код должен выглядеть сейчас), давайте начнем добавлять контент в нашу электронную почту! Макеты MJML основаны на <MJ-раздел> создавать строки и <MJ-столбца> создавать столбцы внутри строк, что очень удобно для дизайна электронной почты. Обратите внимание, что за исключением компонентов высокого уровня, таких как <MJ-герой> а также <MJ-Navbar> , контент всегда должен быть завернут в <MJ-столбца> , который сам должен идти в <MJ-раздел> , даже если в разделе есть только один столбец.

Давайте посмотрим на это на двух примерах: предварительный заголовок и заголовок письма.

Здесь нет ничего особенного. Мы просто создаем текстовый заголовок, используя <MJ-текст> компонент, обернутый в столбец и предоставляющий ему несколько стилей MJML.

Hack: <mj-text> позволяет вам использовать HTML непосредственно внутри MJML, предоставляя вам полный контроль над содержимым и позволяя вам использовать, например, теги <span> и <a>, к которым вы привыкли.

<mj-section padding = «0» background-color = «# eeebe7»> <mj-column> <mj-text padding = «0 2» align = «center» font-size = «10px»> Последние советы, тренды, рецепты и многое другое </ mj-text> </ mj-column> </ mj-section> Заголовок письма

Трехколонный макет для блога, логотипа и реферальной ссылки

Заголовок немного сложнее, но его очень легко достичь с помощью MJML. Все, что нам нужно сделать, это создать раздел, который мы разделим на три равных столбца (поскольку столбцы равны, нам даже не нужно вручную устанавливать ширину). Мы будем использовать изображения, как в оригинальном письме, используя явный компонент <MJ-изображения> , который поставляется с общими атрибутами, которые вы ожидаете, включая src, padding и border.

По умолчанию столбцы будут складываться в мобильной версии нашей электронной почты. Здесь, поскольку мы хотим, чтобы эти три столбца оставались рядом даже на мобильных устройствах, мы обернем их в <MJ-группа> компонент, который будет препятствовать укладке столбцов.

Взлом: Как отмечалось в документации, из-за ошибки в iOS вам, возможно, придется использовать минификатор, иначе столбцы могут складываться на iPhone, даже если они заключены в <mj-group>. Интерфейс командной строки MJML поставляется с встроенный минификатор что вы можете использовать для запуска опции -m при рендеринге MJML.

<mj-section padding = "0" background-color = "# ffffff"> <mj-group> <mj-column> <mj-image align = "right" padding = "40 0 0 0" width = "100" HREF = "https://thrivemarket.com/blog?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru" SRC = "https://i1044.photobucket.com/albums/b447/ngarnier/ Процветать% 20Market / blog_zpscedcgvla.jpg "alt =" blog "title =" blog "/> </ mj-column> <mj-column> <mj-image padding =" 15 0 0 0 "href =" https: // thrivemarket.com/?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru "SRC =" https://i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/thrive-logo- 250_zps4lonavha.jpg "title =" logo "alt =" logo "/> </ mj-column> <mj-column> <mj-image align =" left "padding =" 40 0 ​​0 0 "width =" 100 "href = Название "https://thrivemarket.com/customer/account/login/referer/aHR0cHM6Ly90aHJpdmVtYXJrZXQuY29tL2ludml0ZT9jY29kZT1LRzZPQ0QzSCZ1YWV4cHRpbWU9MTc3ODYzNzg2MiZ1YXRva2VuPTE0NjJiOTc3YzFmYTcwYjA5YjU4NWYzYTg5NDNkNzlhNzA3OWFiMzE0MzkzZmU4OTg1MmZkODNmZDA1YjYzMWUmdWlkPTUwMTk4NTAmdXRtX2NhbXBhaWduPWRheTgmdXRtX2NvbnRlbnQ9bGVhZF93ZWxjb21lJnV0bV9tZWRpdW09bGlmZWN5Y2xlJnV0bV9zb3VyY2U9c2FpbHRocnU,/" SRC = "https://i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/refer_zpsnoo1uzvu.jpg" = "Приведи и выиграй" alt = "Приведи и выиграй" /> </ mj-column> </ mj-group> </ mj-section>

Макет одной колонки для GIF и CTA

Мы создадим еще один раздел, в который мы просто добавим изображение, текст и кнопку. Единственный новый компонент здесь <MJ-кнопка> , который должен быть достаточно понятным и который поставляется со стандартными атрибутами. Обратите внимание, что вы должны указать href, иначе текст кнопки может не отображаться в некоторых почтовых клиентах.

<mj-section padding = "20"> <mj-column> <mj-image padding = "5 0 23 0" width = "200px" src = "https://i1044.photobucket.com/albums/b447/ngarnier /Thrive%20Market/566f6a67e871e_zpskalhjefi.gif "/> <mj-text align =" center "font-size =" 16px "> Ваш ежедневный пункт назначения для здорового образа жизни </ mj-text> <mj-button padding =" 20 0 10 0" MJ-класс = "таблетка" HREF = "https://thrivemarket.com/blog?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru"> подробнее </ MJ-кнопка> </ МДж -column> </ mj-section>

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

<mj-section padding = "0 0 20 0"> <mj-column> <mj-divider border-width = "5px" border-color = "# EEEBE7" /> </ mj-column> </ mj-section >

Мы будем использовать тот же разделитель между телом и нижним колонтитулом позже.

тело

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

Двухколонный макет, который укладывается на мобильный

Двухколонный макет

Здесь мы создадим раздел для каждой строки из двух столбцов. Каждый столбец будет состоять из изображения, фрагмента текста и кнопки. Хорошая новость заключается в том, что благодаря гибридному подходу MJML нам не нужно ничего делать, чтобы изображения складывались на мобильных устройствах. Это отзывчиво по умолчанию!

Что касается стиля, нам не нужно много делать, потому что мы используем mj-classes pill и desc, которые мы создали ранее. Все, что нам нужно сделать, это добавить некоторые отступы, чтобы соответствовать стилю исходного письма.

Подсказка: из-за проблемы с игнорированием заданной ширины в Outlook 2000, 2002 и 2003, в MJML рекомендуется устанавливать размеры изображений, которые вы хотите отображать на этих клиентах.

<mj-section padding = "20 10 0 10"> <mj-column> <mj-image width = "280px" href = "https://thrivemarket.com/blog/foods-for-happiness?uaexptime=1778637862&uatoken= 1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e & UID = 5019850 & utm_campaign = day8 & utm_content = lead_welcome & utm_medium = жизненный цикл и utm_source = sailthru»SRC = "https://i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/5-foods_zps9escvg7g.jpg"/> <MJ-текст MJ-класс = «убывание»> <a href="https://thrivemarket.com/blog/foods-for-happiness?uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&uid=5019850&utm_campaign=day8&utm_content=lead_welcome&utm_medium=lifecycle&utm_source=sailthru"> 5 Продукты, чтобы увеличить Ваше счастье < / a> </ mj-text> <mj-button mj-class = "pill" href = "https://thrivemarket.com/blog/foods-for-happiness?uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3acome43t&_m_f_t_1_m_1_1_1_1_1_1_1_8_8_8_1_8_8_1_8_8_8_8_1_8_8_8_5 = жизненный цикл & utm_s ource = sailthru "> Подробнее </ mj-button> </ mj-column> <mj-колонка> <mj-image width =" 280px "href =" https://thrivemarket.com/blog/whiten-teeth- мгновенно активированный угль? uaexptime = 1778637862 & uatoken = 1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e & UID = 5019850 & utm_campaign = day8 & utm_content = lead_welcome & utm_medium = жизненный цикл & utm_source = sailthru»SRC = "https://i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/teeth_zpsr1sycjxi.jpg"/ > <MJ-текст MJ-класс = "убывание"> <A HREF = "https://thrivemarket.com/blog/whiten-teeth-instantly-activated-charcoal?uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&uid=5019850&utm_campaign=day8&utm_content=lead_welcome&utm_medium= lifecycle & utm_source = sailthru "> Моментально отбелить зубы активированным углем </a> </ mj-text> <mj-button mj-class =" pill "href =" https://thrivemarket.com/blog/whiten-teeth-instantly -активированный-древесный угль? uaexptime = 1778637862 & uatoken = 1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89 852fd83fd05b631e & uid = 5019850 & utm_campaign = day8 & utm_content = lead_welcome & utm_medium = lifecycle & utm_source = sailthru "> Подробнее </ mj-button> </ mj-column> </ mj-section>

Здесь мы видим, что для ссылок применяется стиль HTML по умолчанию. В дополнение к <mj-attribute> вы также можете встроить CSS прямо в MJML, используя <MJ-стиль> , Давайте сделаем это, обновив заголовок, чтобы раз и навсегда перезаписать стиль ссылок по умолчанию. Мы также создадим класс CSS для применения к тегам <a>, чтобы придать им правильный цвет (мы создаем класс, потому что ссылки в письме не должны иметь одинаковый цвет).

<mj-head> <mj-title> Узнайте о последних тенденциях </ mj-title> <mj-attribute> <mj-all padding = "0" /> <mj-text font-family = "sans-serif" color = "# 8e8b85" /> <mj-class name = "pill" font-weight = "700" color = "# d5ad4b" border-radius = "50" border = "2px solid # d5ad4b" font-size = "16px "line-height =" 16px "padding =" 8 20 20 20 "inner-padding =" 10 75 10 75 "background-color =" transparent "/> <mj-class name =" desc "font-family =" Georgia "font-size =" 20px "color =" # 45495d "padding =" 25 5 10 10 "/> <mj-class name =" ico "font-family =" Helvetica "font-size =" 14px "align =" center "padding =" 0 0 "/> </ mj-attribute> <mj-style> a {text-ornament: none; } .desc {color: # 45495d; } </ mj-style> </ mj-head>

Выполните те же шаги с другими разделами из двух столбцов.

Синяя секция с CTA

Синий раздел

Для создания этого раздела мы будем использовать знакомые нам компоненты: <mj-section>, <mj-column> и <mj-button>.

Сначала мы добавим цвет фона в наш раздел и некоторые отступы, чтобы он выглядел как положено. Затем нам просто нужно создать два столбца, один шире другого, используя атрибут width с процентами. Как обычно, столбцы будут складываться на мобильном телефоне. Поскольку кнопка отличается от других здесь, мы не будем использовать класс таблетки, а скорее создадим новый стиль вручную.

Подсказка: из-за слабой поддержки сокращенных цветов HEX в Internet Explorer мы рекомендуем использовать шестизначные цвета HEX. Это хак, который мы в какой-то момент реинтегрируем в MJML, чтобы убедиться, что трехзначные HEX-коды превращаются в шестизначные.

<mj-section background-color = "# 6d8be1" padding = "15 40 10 40"> <mj-column width = "60%"> <mj-text font-weight = "bold" color = "# ffffff" шрифт -size = "16px" padding = "0 0 10 0"> Получите все свои здоровые продукты на процветающем рынке! </ mj-text> </ mj-column> <mj-column width = "40%"> <mj-button background-color = "# ffffff" color = "# 45495d" font-weight = "800" font- family = "sans-serif" font-size = "16px" border-radius = "2px" inner-padding = "15 60"> Купить сейчас </ mj-button> </ mj-column> </ mj-section>

Последний раздел тела

Последний раздел тела

Чтобы создать заголовок, мы создадим макет из трех столбцов. Столбцы будут состоять из следующего, соответственно:

  • темно-синяя линия слева от заголовка,
  • название «Хотите больше советов, хитростей и вкусных рецептов?»,
  • синяя линия справа от заголовка.

Затем мы обернем три столбца в <mj-group>, чтобы они не складывались на мобильных устройствах.

Мы начнем создавать линии, используя компонент <mj-divider>, установив его border-width равным 2px и добавив немного отступов, чтобы он выглядел так, как мы хотим. По умолчанию разделитель заполнит столбец, в котором он содержится, чтобы он выглядел одинаково для всех устройств. Поэтому нам не нужно явно устанавливать ширину делителя.

Затем мы просто используем <mj-text> для добавления нашего заголовка, используя mc-класс desc (потому что мы хотим наследовать некоторые из стилей, установленных в этом классе) и переопределяя семейство шрифтов и свойства выравнивания, которые отличаются из этого класса. Мы могли бы также вручную установить стиль без использования desc mj-class.

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

<mj-section padding = "40px 0 0 0"> <mj-group> <mj-column width = "12%"> <mj-divider border-width = "2px" padding = "10 0 0 10" /> </ mj-column> <mj-column width = "75%"> <mj-text padding = "0 0 20 0" mj-class = "desc" font-family = "Helvetica" align = "center"> < a class = "desc" href = "https://thrivemarket.com/blog?utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru"> Хотите узнать больше советов, хитростей и вкусных рецептов? </a> </ mj-text> </ mj-column> <mj-column width = "13%"> <mj-divider border-width = "2px" padding = "10 10 0 0" /> </ mj-column> </ mj-group> </ mj-section> <mj-section padding = "5px"> <mj-column> <mj-image src = "https://img.thrivemarket.com/emails/ images / img-18.jpg "href =" https://thrivemarket.com/blog?utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru "/> </ mj-column> </ mj-column> </ mj-section> <заполнение раздела mj = "15px"> <mj-column> <mj-button mj-class = "pill" inner-padding = "12 25" href = "https://thrivemarket.com/blog?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585mut0_b038f068864685808958808959 lead_welcome & utm_medium = lifecycle & utm_campaign = day8 & utm_source = sailthru "> Прочитайте наш блог </ mj-button> </ mj-column> </ mj-section>

Ты можешь видеть как должен выглядеть наш шаблон MJML.

Нижний колонтитул электронной почты

заглавие

Мы оборачиваем наш заголовок в раздел и столбец, как мы видели ранее, и мы используем стиль desc, который мы создали ранее. Нам нужно изменить только несколько стилей, вручную установив разные выравнивание, размер шрифта и стиль шрифта из нашего mj-класса.

<mj-section background-color = "# EEEBE7" padding = "25"> <mj-column> <mj-text padding-top = "20px" mj-class = "desc" align = "center" font-size = "28px" font-style = "italic"> Оставайтесь на связи </ mj-text> </ mj-column> </ mj-section>

Раздел шести значков

Этот раздел состоит из шести значков с сопровождающим текстом ниже. Значки отображаются рядом на рабочем столе и переносятся на две строки из трех значков на мобильном телефоне. К настоящему времени вы, вероятно, знаете, что создавать такие макеты легко, если мы используем компонент <mj-column>. Чтобы иконки складывались в две строки, нам нужно только обернуть столбцы в две группы по три столбца в <mj-group>.

Чтобы оформить текст под иконками, нам просто нужно использовать созданный ранее ico mj-класс. Мы также создадим класс CSS с именем ico для применения к тегам a, как мы делали в разделе с двумя колонками.

<mj-section padding = "40 0"> <mj-group> <mj-column> <mj-image padding = "10" src = "https://i1044.photobucket.com/albums/b447/ngarnier/Thrive % 20Market / img-01_zpssvjtmopj.png ">> = KG6OCD3H & utm_content = lead_welcome & utm_medium = lifecycle & utm_campaign = day8 & utm_source = sailthru "> Paleo </a> </ mj-text> </ mj-column> <mj-column> <mj-image padding =" 10 "src =" https // i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/img-02_zpshj3vgh1w.png "HREF =" https://thrivemarket.com/gluten-free?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign = day8 & utm_source = sailthru "/> <mj-text mj-class =" ico "> <a class =" ico "href =" https://thrivemarket.com/gluten-free?uid=5019850&uaexptime=1778637862&uatoken=1462b97 7c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e & ccode = KG6OCD3H & utm_content = lead_welcome & utm_medium = lifecycle & utm_campaign = day8 & utm_source = image-<<>> <<>> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mj <m> <j> mjs_tj <m> <j> mjs_jjjmjjjjjjjjjjjjjjjjjjjjjjjjjhjjjjjjmjsjjjjmjjjjjjmjjjjjmjsjjjmjsjjj также, чтобы узнать, где вы работаете со своим именем. //i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/img-03_zpshvwomzpo.png "HREF =" https://thrivemarket.com/vegan?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign = day8 & utm_source = sailthru "/> <MJ-текст MJ-класс =" ICO "> <класс =" ICO "HREF =" https://thrivemarket.com/vegan?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium = жизненный цикл & utm_campaign = day8 & utm_source = sailthru "> Вегетарианец </a> </ mj-text> </ mj-column> </ mj-group> <mj-group> <mj-column> <mj-image padding =" 10 " SRC = "https://i1044.photobucket.com/albums/b447/ngarnie г / Thrive% 20Market / IMG-04_zpsyeczb1sp.png»HREF = "https://thrivemarket.com/ingredients/gmo-free?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru"/> < MJ-текст MJ-класс = "ICO"> <класс = "ICO" HREF = "https://thrivemarket.com/ingredients/gmo-free?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source = sailthru "> Без ГМО </a> </ mj-text> </ mj-column> <mj-column> <mj-image padding =" 10 "src =" https://i1044.photobucket.com/ альбомы / b447 / ngarnier / Thrive% 20Market / IMG-05_zpsryppwpok.png "HREF =" https://thrivemarket.com/certifications/certified-organic?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm _campaign = day8 & utm_source = sailthru "/> <mj-text mj-class =" ico "> <a class =" ico "href =" https://thrivemarket.com/certifications/certified-organic?uid=5019850&uaexptime=1778637862&uatoken= 1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e & ccode = KG6OCD3H & utm_content = lead_welcome & utm_medium = жизненный цикл & utm_campaign = day8 & utm <column> mj <m> <m> <m> <m> /i1044.photobucket.com/albums/b447/ngarnier/Thrive%20Market/img-06_zpsoq4ulmbq.png "HREF =" https://thrivemarket.com/raw?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign= day8 & utm_source = sailthru "/> <MJ-текст MJ-класс = "ICO"> <класс = "ICO" HREF =" https://thrivemarket.com/raw?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium= Жизненный цикл и у tm_campaign = day8 & utm_source = sailthru "> Raw </a> </ mj-text> </ mj-column> </ mj-group> </ mj-section>

Еще раз, этого раздела легко достичь, используя компонент <mj-column>, используя один столбец на значок социальной сети и упаковывая все иконки в <mj-group>, чтобы они не складывались на мобильных устройствах. Единственная хитрость здесь - это точная настройка ширины изображений и отступов, чтобы результат соответствовал оригинальному дизайну.

Разделитель и текст

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

<mj-section background-color = "# EEEBE7" padding = "25 40"> <mj-column> <mj-divider /> <mj-text padding = "30 0 0 0" align = "center" font-size = "14"> <a class="footer" href="https://thrivemarket.com/blog?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru"> Читайте наш блог </ а > <a class="footer" href="https://thrivemarket.com/"> Просмотр электронной почты в Интернете </a> </ mj-text> <mj-text align = "center" color = "# 45495d" шрифт -size = "10px" line-height = "14px"> <p> Пожалуйста, не нажимайте "ответить" на это письмо - мы не сможем отправить вам электронное письмо с этого адреса и помочь вам процветать! Если вам нужно что-нибудь, посетите наш <a class="footer" href="https://thrivemarket.com/faq?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru"> FAQ </ а > или связаться с <a class="footer" href="https://thrivemarket.com/faq/contact?uid=5019850&uaexptime=1778637862&uatoken=1462b977c1fa70b09b585f3a8943d79a7079ab314393fe89852fd83fd05b631e&ccode=KG6OCD3H&utm_content=lead_welcome&utm_medium=lifecycle&utm_campaign=day8&utm_source=sailthru"> Member Services </a> в любое время, и мы будем рады помочь! </ p> <p> Мы не хотим, чтобы вы уходили, но если вы больше не хотите получать рекламные сообщения от нас, вы можете <a class = "footer" href = "https://thrivemarket.com/"> отмените подписку здесь </a> или <a class="footer" href="https://thrivemarket.com/"> измените свои настройки электронной почты </a> в любое время. </ p> <p> 4509 Glencoe Ave, Marina Del Rey, CA 90292 <br /> @ 2016, процветающий рынок, все права R зарезервировано </ p> </ mj-text> </ mj-column> </ mj-section>

Рендеринг HTML-файла и тестирование

Теперь у вас должно быть менее 240 строк MJML (вы можете проверить полный код ), тогда как исходный файл был чуть менее 800 строк HTML. Congrats! Вы только что создали свою первую отзывчивую электронную почту, используя MJML! Насколько легко это было?

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

Иди к Лакмусу (создайте учетную запись, если у вас ее еще нет), создайте новый проект и вставьте созданный ранее HTML-код в область кода. Вы сможете увидеть результаты в различных почтовых клиентах, нажав «Мгновенный предварительный просмотр» на правой панели. Ты можешь видеть результаты для основных почтовых клиентов, от Outlook 2003 до почтового ящика Gmail.

Идти дальше

Теперь, когда вы знаете, как использовать MJML для простого создания адаптивного электронного письма, почему бы не попробовать создать свой собственный компонент? Мой учебник проведет вас через этот шаг за шагом.

Что вы думаете о своем первом опыте работы с MJML? Не стесняйтесь протянуть руку в Твиттере и присоединиться к сообществу MJML сейчас, подписавшись на слабина канал. Вы также можете подписаться на рассылку быть в курсе последних новостей.

Com/blog?
Com/?
Com/blog?
Com/blog/foods-for-happiness?
Com/blog/foods-for-happiness?
Com/blog/foods-for-happiness?
Com/blog/whiten-teeth- мгновенно активированный угль?
Com/blog/whiten-teeth-instantly-activated-charcoal?
Com/blog/whiten-teeth-instantly -активированный-древесный угль?
Com/blog?