Ответ в одном предложении будет следующим: «1. Используйте макеты на основе таблиц, 2. Только встроенный CSS и 3. test в каждом возможном почтовом клиенте».
Клиентское тестирование, вероятно, является наиболее важным, потому что каждый почтовый клиент (и комбинация клиент + браузер) может иметь свои причуды, и многие из них только что изучены; например, использование HTML-атрибутов width & height, потому что Outlook не всегда будет следовать встроенным стилям для width и height, или что Gmail имеет тенденцию добавлять поля вокруг изображений, если вы явно не установите margin: 0 для элементов HTML и т. д. и т. д.
Когда исправление внешнего вида электронного письма в формате HTML в одном клиенте приводит к нарушению его в другом клиенте, не добавляйте все новые и новые стили: попробуйте упростить HTML / CSS, даже если это означает писать больше разметки. Например, если отступы и поля выглядят неправильно, такой же вид может быть достигнут путем добавления большего количества строк или столбцов в таблицу и фиксирования их высоты / ширины. Больше тегов проще, чем беспокоиться о том, как все почтовые клиенты будут отображать блочную модель CSS.
В HTML-формате для электронной почты есть множество статей и постов, таких как http://articles.sitepoint.com/article/code-html-email-newsletters, которые полезны, хотя многие устарели в новых версиях клиентов.