CSS Шаблон сообщения электронной почты в Outlook не отображается правильно - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать шаблон HTML CSS электронной почты, который может работать во всех почтовых клиентах. Мне удается получить простой. Шаблон будет правильно отображаться в Gmail, Hotmail, но когда дело доходит до Outlook, все неправильно. Я знаю, что Outlook использует слова для визуализации шаблона. Как написать код, чтобы обойти это. Я тоже хочу сделать его отзывчивым. Не знаю с чего начать отладку. Я новичок в написании адаптивного шаблона электронной почты для почтовых клиентов. Я попытался встроить свой CSS, но это не сработало. Я пытался использовать лакмусовую бумажку для отправки электронного письма, это тоже не работает. Я поместил свой код в JSFiddle, могут ли Гуру помочь. Мне действительно нужна помощь.

CODE

https://jsfiddle.net/hansheung/yjk309e4/2/

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
body {
    Margin: 0!important;
    padding: 15px;
    background-color: #FFF;
}
.wrapper {
    width: 100%;
    table-layout: fixed;
}

table {
    border-spacing: 0;
    font-family: sans-serif;
    color: #727f80;
}
.outer-table {
    width: 100%;
    max-width: 670px;
    margin: 0 auto;
    background-color: #FFF;
}
td {
    padding: 0;
}
.header {
    background-color: #C2C1C1;
    border-bottom: 3px solid #FF8800;
}
p {
    Margin:0;
}
.header p {
   text-align: center;
   padding: 1%;
   font-weight: 500;
   font-size: 11px;
   text-transform: uppercase;
}
a {
   color: #F1F1F1;
   text-decoration: none;
}

/*--- Start Two Column Sections --*/
.two-column {
    text-align: center;
    font-size: 0;
    padding: 5px 0 10px 0;
}

img {
   border: 0;
}

/*--- Start Outer Table Banner Image, Text & Button --*/
.image img {
    width: 100%;
    max-width: 670px;
    height: auto;
}
.main-table {
    width: 100%;
    max-width: 610px;
    margin: 0 auto;
    background-color: #FFF;
    border-radius: 6px;  
}
.one-column .inner-td {
   font-size: 16px;
   line-height: 20px;
   text-align: justify;
}
.inner-td {
    padding: 10px;
}


.footer {
    width: 100%;
    margin: 0 auto;
    background-color: #053D66;
    padding: 4% 2%; 
}

/*--- Media Queries --*/
@media screen and (max-width: 400px) {
    .h1 {
        font-size: 22px;
    }
    .two-column .column, .three-column .column {
        max-width: 100%!important;
    }
    .two-column img {
        width: 100%!important; 
    }
}

@media screen and (min-width: 401px) and (max-width: 400px) {

    .two-column .column {
        max-width: 50%!important;
    }
}

.section {
    width: 50%;
    text-align: center;
}
.m1{
    margin: 1%;
}
.p1{
    padding: 2%;
}
.contact-details{
    text-align: left;
}

.text{
    font-family: "Helvetica","sans-serif";
    padding: 50px 0px !important;
    line-height: 150%;
    color:#202020;
    font-size: 18px;
    text-align:inherit
}
.text-left{
    text-align: left;
}
.text-right{
    text-align: right;
}

.image-right{
   text-align: right;
   padding-right: 2%;
}


</style>
</head>

   <body>
<div class="wrapper">
    <table class="outer-table">
        <tr>
            <td class="image">
                <img src="http://www.talent-trust.com/documents/News2020.03/covid19-ttc_header.jpg" alt="">
            </td>
        </tr>
    </table><!--End Banner Image-->
    <table class="outer-table">
        <tr>
            <td class="image">
                <img src="http://www.talent-trust.com/documents/img/j19-ttc_banner.jpg" alt="">
            </td>
        </tr>
    </table><!--End Banner Image-->
    <table class="main-table">
        <tr>
            <td class="one-column">
                <table width="100%">
                    <tr>
                        <td class="inner-td">
                            <p class="text"> 
                                As you are aware China has been experiencing an<a href="https://talent-trust.com/documents/News2020.03/en.html"><span style='color:#FF7F30'>Read More</span></a>
                            </p>
                            <!-- <p class="button-holder-center">
                                <a href="" class="btn">Learn More</a>
                            </p> -->
                        </td>
                    </tr>
                </table>
            </td>
        </tr><!--End heading paragraph and button section-->

    </table><!--End of main table-->
    <table class="footer">
        <tbody>
            <tr>
                <td class="section image-right">
                    <img width="35%" src="http://www.talent-trust.com/documents/img/j19-logo_footer.png" alt="">        
                </td>
                <td class="section">
                    <div class="contact-details">
                        <p style="margin-bottom: 0;color:#ffffff;font-size: 11pt; padding-left: 5%;">Email: <a href="mailto:info@talent-trust.com">info@talent-trust.com</a></p>
                        <p style="margin-top: 0;color:#ffffff;font-size: 9pt;padding-left: 5%">Tel:+604-899-8945</p>
                    </div>
                </td>
            </tr>
            <tr>
            <td class="text-right p1"><a href="https://www.facebook.com/ttcinsurance"><img width=24 height=24 src="http://www.talent-trust.com/documents/img/j19-fb_icon.png" alt=""></a></td>
            <td class="text-left p1"><a href="https://www.youtube.com/channel/UCG6CJHqgnZN7HbX5NWqEhXg"><img width=24 height=24 src="http://www.talent-trust.com/documents/img/j19-youtube_icon.png" alt=""></a></td>
            </tr>
        </tbody>
    </table>
</div><!--End Wrapper-->
</body>
</html>

Отображение в GMAIL OK GMAIL

Все смещено в Outlook Outlook display

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

Вещи, которые не будут работать или не будут работать, если кросс-клиентский рендеринг является бизнес-требованием (на основе вашего фрагмента кода).

  • html5
  • медиа-запросы
  • стилей привязки с классами и идентификаторами (все должно быть встроено - с помощью программного c инструмента или закодировано вручную)
  • CSS отступы (ограниченная поддержка)
  • CSS поля (ограниченная поддержка)
  • абзацы
  • максимальная ширина CSS правило

Если вам нужен кросс-клиентский шаблон, следуйте этим рекомендациям. Это примерно в моей голове, поскольку несколько лет я профессионально кодировал электронные письма как go, но у меня нет каких-то «жестких» тестов или ссылок, подтверждающих все это.

  • Используйте HTML 4.01 doctype и его правила.
  • Адаптивные (RWD) электронные письма - действительно продвинутый материал следующего уровня. Я бы не рекомендовал это, пока вы действительно не изучите asp, что происходит с движками рендеринга (много тестирования). А пока придерживайтесь гибкой компоновки, чего можно добиться с помощью структуры таблиц, как описано здесь . Кроме того, медиа-запросы не работают в кросс-клиентских приложениях, я бы их отбросил.
  • Поля, отступы имеют смешанную поддержку, используйте их только на td элементах и ​​всегда удваивайте добавление ячеек, если можете.
  • Избегайте коротких объявлений CSS. Вместо border используйте border-width, border-style, border-color. Ширина всегда должна быть go первой.
  • Не использовать абзацы (p теги), максимально использовать td, используя cellpadding и cellspacing, которые работают везде.
  • Выравнивание содержимого (текст, изображения) проще всего выполнить с помощью атрибутов align и valign тегов td. При правильном использовании может очень помочь с кодированием любого макета.
  • Вы можете использовать это CSS руководство и Могу ли я отправить электронное письмо для быстрой проверки фактов, как указано @cloned (в мои дни не было Can I Email).
  • Подумайте о себе: сейчас 1994 год, и все, что у вас есть в вашем распоряжении, - это таблицы (много их), изображения, шрифты по умолчанию и встроенный CSS :) Вы можете пройти долгий путь только с этим.
  • Firefox было полезно для меня во время разработки, потому что его движок рендеринга близок к тому, что Thunderbird будет выводиться на экран.
  • Если вы можете скрыть правильную визуализацию какого-либо пользовательского шрифта, или анимацию gif, или интересное адаптивное поведение, это прекрасно, но не рассчитывайте на это. Это определенно не будет кросс-почтовым взаимодействием с клиентами, и клиенты / менеджеры, на которые вы работаете (если они у вас есть), должны знать об этом. Это « прогрессивное улучшение » для рендеринга электронной почты :)
  • Большинство почтовых клиентов будут делать ужасные вещи с вашим шаблоном, например искажать ваш код до неузнаваемости, добавляя пользовательские идентификаторы, перезапись имен классов, добавление собственных стилей или пользовательских классов, разделение всего заголовочного раздела и т. д. c. Часть этого связана с безопасностью, другая часть - с движком рендеринга. Вот почему вы должны большую часть времени полагаться на таблицы и встроенные стили и сводить количество head к абсолютному минимуму, который, как вы знаете, будет работать в программах (почтовых клиентах), на которые вы нацеливаетесь.

Короче говоря, это действительно глубокий c, понимание придет к вам по мере того, как вы приобретете опыт работы с результатами тестирования и корректировки кода. Вы должны инвестировать в тестирование предварительного просмотра программного обеспечения (вы упомянули Litmus). Я использовал электронную почту на Acid, и это тоже здорово. Вы должны использовать его для предварительного просмотра результатов в разных почтовых клиентах, а не для отправки ваших кампаний / электронных писем.

Самое важное:

Если вы меняете свой код, протестируйте это сразу (лакмус / электронная почта на кислоте), чтобы получить представление о том, как он отображается в каждом почтовом клиенте. Это утомительно и требует времени, но через несколько раз вы будете точно знать, что вы можете сделать и каков будет результат. Изолируйте то, что вы тестируете, и делайте это часто.

Второй по важности:

Определите, на какой пул почтовых клиентов вы нацеливаетесь. Это нужно делать по согласованию с вашим клиентом / менеджером (если они у вас есть). Вы писали, что хотите шаблон, который будет работать "во всех почтовых клиентах". Это просто нереально c. Их слишком много.

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

Например: если 50% подписчиков используют Outlook 2007, а остальные используют Gmail, то вы знаете, что вы необходимо настроить таргетинг и протестировать этих двух клиентов. Остальное просто «бонус». Конечно, вы не всегда это знаете, поэтому вам следует также включить наиболее популярных клиентов. Используйте статистику publi c, предоставленную Litmus, или кем-то еще, чтобы определить, что является «популярным» в настоящее время.

Другое дело, что вы можете или не должны включать в свои спецификации тестирования c web почтовые клиенты, относящиеся к географической области c, например gmx.de или onet .pl, et c. Большинство из них имеют собственные движки рендеринга. Некоторые из них даже имеют особые правила, которые применяются к информационным бюллетеням, отправляемым ими своим пользователям. В этом случае у вас должна быть возможность получить письменную документацию о том, как следует подготовить информационный бюллетень (специальные теги, форматирование и т. Д. c).

Также подумайте о некоторых более непонятных почтовых клиентах, что, если кто-то использует Kindle или Apple Watch, чтобы читать электронную почту? Что они должны увидеть? Некоторые клиенты этого типа используют «только текстовую» версию информационного бюллетеня, поэтому вам также следует подготовить текстовую версию, если HTML -версия не может быть отображена, или если пользователь специально заблокировал HTML и запрашивает только текст.

0 голосов
/ 11 мая 2020

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

Сначала вставьте код: https://inliner.cm/

Во-вторых, добавьте эта оболочка везде, где вы используете max-width (не поддерживается в Outlook). Возможно, вы захотите реструктурировать код, чтобы сделать это только один раз:

<center style="width:100%;table-layout:fixed;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<!--[if (gte mso 9)|(IE)]>
  <table width="600" align="center" style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;border-spacing:0;">
    <tr>
      <td style="padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;border-collapse:collapse;">
      <![endif]-->
      <table ...>
      ...
      </table>
      <!--[if (gte mso 9)|(IE)]>
      </td>
    </tr>
  </table>
<![endif]-->
</center>
...