Статьи

Начало работы с электронными письмами в формате HTML

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


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

Вы думаете, что IE это боль в заднице? Подождите, пока вы не встретите Outlook 2007. Из-за огромных различий в рендеринге HTML / CSS между почтовыми клиентами использование современных методов кодирования приведет к довольно катастрофическому беспорядку во многих популярных почтовых клиентах. Почтовые клиенты просто не отображают HTML так же, как браузеры — даже во многих случаях даже не закрываются. Такие вещи как поплавки, фоновые изображения и даже поля больше не являются частью вашего словарного запаса. Так что же делать стандартно-любящему кодеру?

Это верно. Таблицы. Cellpadding, cellspacing, colspan, все те грубые вещи, которые, как ты думал, ты оставил позади. Таблицы — это единственный способ получить согласованные макеты электронной почты, так что пришло время (временно) забыть ваши CSS-любящие способы и использовать несемантические, грязные таблицы.


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

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

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

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

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

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

1

По моему опыту, HTML-код электронной почты становится очень сложным, очень быстро. Важно иметь план атаки. Итак, вот план (мы вернемся к этому, не волнуйтесь, если вы не будете следовать).

Во-первых, мы начинаем с одной большой таблицы шириной 100% с серым фоном, это наша таблица «обертка».

Далее обратите внимание, что внутри таблицы-обертки есть еще три таблицы: одна сверху для ссылки «просмотр в браузере», одна посередине для основного контента и одна внизу для ссылки «отписаться».

2а

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

2b

Вместо того чтобы использовать CSS-свойства margin и padding , мы будем использовать HTML-атрибуты cellpadding и cellspacing . Считайте, что cellpadding — это почти то же самое, что CSS padding — пространство внутри элемента, вокруг содержимого . Cellspacing — это пространство между ячейками данных в таблице .

Наша таблица #main будет иметь 15px пространства ячеек, так что у нас будет 15px пустого пространства вокруг всего основного раздела контента и 15px между каждой горизонтальной группой. Cellpadding и cellspacing применяются только к родительской таблице, а не к дочерним. Если мы не хотим использовать cellpadding или cellspacing, нам нужно указать это для каждой таблицы.


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

Настройка электронной почты очень проста: задействованы только теги html, head и body . Давайте добавим в таблицу оболочки и три основные таблицы, которые мы обсуждали ранее.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<html>
 
<p><head>
    <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
    <title>Nettuts Email Newsletter</title>
</head></p>
 
<p><body></p>
 
<p><table width=»100%» cellpadding=»0″ cellspacing=»0″ bgcolor=»e4e4e4″><tr><td></p>
 
<p><table id=»top-message» cellpadding=»20″ cellspacing=»0″ width=»600″ align=»center»>
    </table><!— top message —>
 
    <table id=»main» cellpadding=»0″ cellspacing=»15″ bgcolor=»ffffff» width=»600″ align=»center»>
    </table><!— main —>
 
    <table id=»bottom-message» cellpadding=»20″ cellspacing=»0″ width=»600″ align=»center»>
    </table><!— bottom message —></p>
 
<p></tr></td></table><!— wrapper —></p>
 
<p></body></p>
 
<p></html>
</p>

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

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

Также обратите внимание, что все таблицы установлены на align="center" , и мы явно определили их ширину. В электронных письмах HTML, как правило, лучше не определять ширину для переноса таблиц. Вам лучше определить ширину для каждой ячейки, но в этом случае мы нарушим это правило, потому что у нас есть забота о клеточном пространстве / cellpadding.

Это очень просто: просто абзацы внутри выровненных по центру клеток.

1
2
3
4
5
6
7
<table id=»top-message» cellpadding=»20″ cellspacing=»0″ width=»600″ align=»center»>
    <tr>
        <td align=»center»>
            <p>Trouble viewing this email?
        </td>
    </tr>
</table><!— top message —><p>Ê</p>

Нижнее сообщение точно так же.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<tr>
    <td>
        <table id=»header» cellpadding=»10″ cellspacing=»0″ align=»center»>
            <tr>
                <td width=»570″ bgcolor=»7aa7e9″><h1>Communitech Venture Services</h1></td>
            </tr>
            <tr>
                <td width=»570″ bgcolor=»8fb3e9″><h2>News and Events</h2></td>
            </tr>
            <tr>
                <td width=»570″ align=»right» bgcolor=»7aa7e9″><p>July 2010</p></td>
            </tr>
        </table><!— header —>
    </td>
</tr><!— header —>

Не забудьте установить ширину каждой ячейки, которая в этом случае составляет 570px ( 600px-15px пространства ячеек с каждой стороны). Мы также установили свойство align для даты right . Прямо сейчас мы не добавляем фоновое изображение, мы сделаем это позже. В то же время, просто используйте светло-голубой.

Обратите внимание, что мы используем bgcolor вместо style="background:" . Это связано с тем, что значения html лучше поддерживаются в почтовых клиентах, чем свойства CSS.

3a

Это то, что мы получили до сих пор, это выглядит довольно плохо, но макет как раз то, что мы хотели.

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

  • один для изображения,
  • один для пространства между изображением и заголовками,
  • и, наконец, один для заголовков.
3b

Для изображения с рамкой мы собираемся вложить еще одну таблицу в ячейку и установить для ячейки 5 пикселей и присвоить ему серый фоновый цвет. Cellpadding увеличивает ширину элемента, поэтому нам нужно уменьшить определенную ширину ячейки на 10 10px .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<tr>
    <td></td>
</tr>
<tr>
    <td>
        <table id=»content-1″ cellpadding=»0″ cellspacing=»0″ align=»center»>
            <tr>
                <td width=»170″ valign=»top»>
                    <table cellpadding=»5″ cellspacing=»0″>
                        <tr>
                            <td bgcolor=»d0d0d0″><img src=»http://dummyimage.com/170×120/e9e9e9/fff» /></td>
                        </tr>
                    </table>
                </td>
                <td width=»15″></td>
                <td width=»375″ valign=»top» colspan=»3″>
                    <h3>All New Site Design</h3>
                    <h4>It’s 150% Better and 40% More Efficient!</h4>
                </td>
            </tr>
        </table><!— content 1 —>
    </td>
</tr><!— content 1 —>
  • Мы добавили пустую строку таблицы и ячейку над содержимым. Поскольку у нас есть 15px пространства ячеек, мы можем использовать пустую ячейку, чтобы добавить 15px расстояния между элементами. В моем тестировании это работает нормально пустым, но вы всегда можете добавить неразрывный пробел, чтобы быть уверенным.
  • Мы устанавливаем свойство v-align на top . Это важно, потому что он выравнивает каждую ячейку по верху строки. По умолчанию установлено среднее значение, что приводит к некоторым странным результатам.
  • Мы используем фиктивные изображения с сайта dummyimage.com, потому что все изображения в электронных письмах HTML должны быть размещены (подробнее об этом позже), и сгенерированные изображения намного проще использовать. Проверьте сайт, он объясняет, как указать изображение, которое вы хотите с URL.

Это действительно простой раздел: просто таблица из одного столбца с абзацем внутри. Не забудьте установить ширину ячейки и установить выравнивание по центру таблицы.

01
02
03
04
05
06
07
08
09
10
<p><tr>
    <td>
        <table id=»content-2″ cellpadding=»0″ cellspacing=»0″ align=»center»>
            <tr>
                <td width=»570″><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            </tr>
        </table><!— content-2 —>
    </td>
</tr><!— content-2 —>
</p>

Чтобы добавить вертикальное пространство (больше чем 15px пространства ячеек), мы должны использовать изображение распорки. Прямо как 90-е! Мы могли бы использовать пробел GIF и загрузить его, но на данный момент быстрее просто использовать другое фиктивное изображение. Я оставлю это серым, чтобы вы могли видеть это, но позже мы можем установить его белым на белом.

1
2
3
<tr>
    <td height=»30″><img src=»http://dummyimage.com/570×30/e9e9e9/fff» /></td>
</tr>

Что дает нам что-то вроде этого:

3в

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

3d
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<tr>
    <td>
        <table id=»content-3″ cellpadding=»0″ cellspacing=»0″ align=»center»>
            <tr>
                <td width=»180″ valign=»top»>
                    <table cellpadding=»5″ cellspacing=»0″>
                        <tr>
                            <td bgcolor=»d0d0d0″><img src=»http://dummyimage.com/170×120/e9e9e9/fff» /></td>
                        </tr>
                    </table>
                </td>
                <td width=»15″></td>
                <td width=»180″ valign=»top»>
                    <table cellpadding=»5″ cellspacing=»0″>
                        <tr>
                            <td bgcolor=»d0d0d0″><img src=»http://dummyimage.com/170×120/e9e9e9/fff» /></td>
                        </tr>
                    </table>
                </td>
                <td width=»15″></td>
                <td width=»180″ valign=»top»>
                    <table cellpadding=»5″ cellspacing=»0″>
                        <tr>
                            <td bgcolor=»d0d0d0″><img src=»http://dummyimage.com/170×120/e9e9e9/fff» /></td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table><!— content-3 —>
    </td>
</tr><!— content-3 —>

Довольно просто, используйте тот же метод для границы, что и в разделе с 2 колонками. Не забудьте v-align !

Три текстовых столбца — это один и тот же процесс.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<tr>
    <td>
        <table id=»content-4″ cellpadding=»0″ cellspacing=»0″ align=»center»>
            <tr>
                <td width=»180″ valign=»top»>
                    <h5>Exciting New Products!</h5>
                    <p> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
                </td>
                <td width=»15″></td>
                <td width=»180″ valign=»top»>
                    <h5>A Newsletter Every Month</h5>
                    <p>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                        deserunt mollit anim id est laborum.</p>
                </td>
                <td width=»15″></td>
                <td width=»180″ valign=»top»>
                    <h5>New and Improved Forum</h5>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
                </td>
            </tr>
        </table><!— content-4 —>
    </td>
</tr><!— content-4 —>

Добавьте еще один разделитель внизу, и мы почти на месте:

3e

Все остальное просто повторяет то, что мы уже сделали: раздел из 2 столбцов и раздел из 1 столбца с разделителями между ними.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<tr>
    <td>
        <table id=»content-5″ cellpadding=»0″ cellspacing=»0″ align=»center»>
            <tr>
                <td width=»267″ valign=»top»>
                    <table cellpadding=»5″ cellspacing=»0″ bgcolor=»d0d0d0″><tr><td>
                        <img src=»http://dummyimage.com/267×200/e9e9e9/fff» />
                    </td></tr></table>
                </td>
                <td width=»15″></td>
                <td width=»278″ valign=»top»>
                    <h4>This is a heading</h4>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
                </td>
            </tr>
        </table><!— content-5 —>
    </td>
</tr><!— content-5 —>
<tr>
    <td height=»30″><img src=»http://dummyimage.com/570×30/e9e9e9/fff» /></td>
</tr>
<tr>
    <td>
        <table id=»content-6″ cellpadding=»0″ cellspacing=»0″ align=»center»>
            <p align=»center»>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            <p align=»center»><a href=»#»>CALL TO ACTION</a></p>
        </table>
    </td>
</tr>

И основной макет теперь готов:

3f

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

Все ссылки на изображения должны быть абсолютными!


Мы не можем использовать внешнюю таблицу стилей и не можем встроить CSS в заголовок письма, потому что некоторые клиенты удаляют весь заголовок или игнорируют теги стиля. Мы собираемся использовать встроенные стили, что является огромной болью. К счастью, есть полезные сервисы, которые принимают встроенный CSS и делают его встроенным. Я использую веб-сайт под названием Premailer , где вы можете напрямую вставить код, и он выводит то же самое с помощью встроенного CSS.

Мы собираемся сделать встроенный CSS для этого урока, а затем сделаем его встроенным в premailer.

Premailer принимает встроенный CSS и делает его встроенным!

Мы не собираемся делать полный сброс с помощью селектора *, как вы могли бы сделать для веб-страницы. Использование значений по умолчанию приведет к более последовательным результатам. Единственные элементы, чьи отступы / поля нам нужно сбросить, — это те элементы, которые будут иметь пространство вокруг них (от cellpadding / cellspacing), такие как заголовки наших заголовков или наши абзацы.

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

1
2
3
<style type=»text/css»>
    body, #header h1, #header h2, p {margin: 0;
</style>

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

1
2
3
4
5
6
7
8
9
#top-message p, #bottom-message p {color: #3f4042;
#header h1 {color: #ffffff;
#header h2 {color: #ffffff;
#header p {color: #ffffff;
h3 {font-size: 28px;
h4 {font-size: 22px;
h5 {font-size: 18px;
p {font-size: 12px;
h1, h2, h3, h4, h5, h6 {margin: 0 0 0.8em 0;}

И посмотрите: теперь это значительно лучше!

3g

Фоновые изображения работают почти так же, как на веб-странице, за исключением того, что иногда они не работают! Убедитесь, что у вас есть запасной цвет фона, который назначается ячейке как bgcolor для клиентов, которые не поддерживают CSS-фоны.

1
<td style=»background: url(http://tessat.s3.amazonaws.com/email-bg.jpg); » width=»570″ bgcolor=»8fb3e9:><h2>News and Events</h2></td>

Нам нужно стилизовать каждую ссылку, иначе они наследуют цвет по умолчанию, который имеет почтовый клиент, и позволяют также добавить эту рамку вокруг основной таблицы. Мы также собираемся добавить display:block ко всем нашим изображениям, это решает ошибку в Outlook и Hotmail.

Обязательно добавьте «display: block» ко всем изображениям, чтобы избежать странной ошибки на полях в Hotmail.

1
2
3
#main {border: 1px solid #cfcece;}
img {display: block;}
a {color: #4A72AF;}
3h

И мы закончили с легкой частью. Теперь о тестировании!


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

Это клиенты, которых вы должны тестировать, по крайней мере:


Сначала нам нужно найти способ отправки писем в формате HTML. Ваш клиент, вероятно, будет настроен на службу, такую ​​как Mailchimp или Campaign Monitor , которая позволит вам тестировать и отправлять кампании по электронной почте.

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


Мой предпочтительный метод предполагает использование Mailchimp для тестирования и отправки тестовых кампаний. Mailchimp бесплатен для 500 получателей, поэтому вам не нужно платить за тестирование. Имеет простой и удобный интерфейс. Вот краткое пошаговое руководство:

  • Зарегистрируйте бесплатную учетную запись Mailchimp и добавьте список получателей ваших тестовых учетных записей электронной почты: Hotmail, Yahoo !, и Gmail и войдите в свою новую учетную запись.
  • Выберите « Создать кампанию» и выберите обычную «кампанию» на странице основного аккаунта. Заполните основную информацию о кампании, вам просто нужно название для тестирования.
  • На странице дизайна выберите Import -> Paste in code и убедитесь, что вы выбрали Automatic CSS Inliner.
  • Если вы не используете Mailchimp, убедитесь, что вы используете Premailer, чтобы встроить CSS
  • Продолжайте, пока не дойдете до страницы подтверждения , и выберите Отправить тест . Вы можете отправить несколько тестов отсюда, но после этого вам необходимо отправить электронные письма в ваш список.

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


Некоторые из наших тестов оказались довольно хорошими:

4а

Apple Mail

4b

буревестник


Некоторые были немного не в себе, но более-менее одинаковы:

4c

Gmail (сафари)

4d

Outloook 2007

4e

Outlook 2003

4f

Yahoo! почта


У нас также была пара неудач.

4g

Hotmail (ЗЕЛЕНЫЙ ???)

4h

Старый Gmail (исследователь)

Учитывая все вышесказанное, это довольно успешный тест, потому что я тестировал множество элементов в Outlook и Gmail по ходу дела. Проблемы, которые возникают у нас со старыми Gmail и Hotmail, связаны с таблицами стилей по умолчанию, которые используют клиенты. Специальная и уникальная марка Microsoft сумасшедшего дала нам таблицу стилей по умолчанию, которая заменяет все заголовки зеленым стилем текста с !important Иногда я почти уверен, что они хотят свести меня с ума.

4i

Чтобы решить эту проблему, нам нужно добавить объявление !important для всех наших стилей цвета заголовка, например:

1
2
3
h3 {font-size: 28px;
   h4 {font-size: 22px;
   h5 {font-size: 18px;

Для старого Gmail у нас есть аналогичная проблема в заголовке: Gmail добавляет дополнительное поле внизу тегов заголовка. Нам просто нужно переопределить margin-bottom специально.

1
2
#header h1 {color: #ffffff !important;
   #header h2 {color: #ffffff !important;

И мы исправили Hotmail:

4к

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

Если вы сможете уговорить своего клиента подписаться на что-то вроде Litmus, ваша жизнь станет намного проще. Вы также можете протестировать множество клиентов с помощью платных версий Mailchimp и Campaign Monitor.


Вы наверняка столкнетесь с проблемами, которые я здесь не освещал, но у меня есть несколько общих советов по уборке:

  • Проверьте свою математику : я не могу вспомнить, сколько раз я испортил макет, не точно добавив ширину ячейки таблицы. Не забудьте учесть Cellpadding: это увеличивает ширину ваших ячеек.
  • Проверьте таблицы стилей по умолчанию : используйте что-то вроде Firebug или Webkit Inspector, чтобы проверить, не перекрывает ли клиент браузера ваши стили. Если это произойдет, то добавление !important декларации должно решить проблему.
  • Посмотрите : всегда есть хороший шанс, что кто-то уже сталкивался с вашей проблемой. Если Google не помогает, попробуйте просмотреть советы и рекомендации в блогах популярных почтовых служб, некоторые люди зарабатывают на жизнь, и они знают свое дело!
  • Break it Down : если вы не можете найти, где вы ошиблись, вернитесь к началу и проверяйте свою электронную почту постепенно, пока не найдете то, что сломает ее

Вот окончательный код для вашей справки:

Вот как выглядит наш конечный результат, если мы используем реальные картинки:

4k

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


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