Wiadomości e-mail HTML w 2013 r .: Jak kontrolować odstępy między elementami, takimi jak akapity i obrazy?
Obecnie przeprojektowuję niektóre szablony e-maili HTML, czego nie robiłem od kilku lat na tak głębokim poziomie.
Zrobiłem mój szablon w pliku HTML, który testuję lokalnie w przeglądarce i wszystko wygląda dobrze.
Używam tabel do układuJedyne inne tagi, których używam, są<p>
<a>
i<img>
CSS jest w a<style>
tag po otwarciu<body>
tag na razie, ale przed wysłaniem konwertuję go na style inlineMailChimp's CSS Inliner Tool. Po prostu umieściłem go w tagu stylu, aby łatwiej było Ci zobaczyć CSS. Nie ma to znaczenia dla wielu klientów w celach testowych.Teraz, gdy wysyłam testowe wiadomości e-mail z mojej aplikacji PHP, staram się, aby przeszły do klienta e-mailowego wyglądającego tak samo jak moja makieta.
Najważniejszą rzeczą, którą zauważam, jest to, że style marginesu / dopełnienia wydają się być ignorowane (np. Outlook 2007) lub dodatkowe dopełnienie / margines jest dodawany do rzeczy takich jak<td>
co sprawia, że wszystko jest bardziej wyściełane niż mówiłem (np. Hotmail).
Przykład źródła
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<body>
<style type="text/css">
td {font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#444;}
a {color:#056DA5;}
p {margin:0; padding:6px 0 6px 0;}
.tel {font-weight:bold; color:#056DA5;}
#wrapper {padding:10px;}
#signoff {padding:18px 0;}
#signoff #questions {padding-bottom:18px;}
#signature {padding-top:20px; border-top:1px solid #EEE;}
#signature td {font-size:12px; color:#777;}
#signature #logo {padding-bottom:12px;}
#signature #contact p {padding:3px 0 3px 0;}
#signature #contact a {text-decoration:none; font-size:13px; font-weight:bold; color:#C00;}
#signature #contact .tel {padding-top:6px; color:#777;}
#signature #social {padding:20px 0 20px 0;}
#signature #social a {margin-right:8px;}
#signature #address {font-size:11px; color:#999;}
</style>
<table id="wrapper" width="100%" bgcolor="#FFFFFF">
<tr>
<td>
<table>
<!-- ROW 1 -->
<tr>
<td>[CONTENT]</td>
</tr>
<!-- ROW 2 -->
<tr>
<td id="signoff">
<p id="questions">If you have any questions, email us at <a href="mailto:[email protected]">[email protected]</a> or call <span class="tel">01234567890</span>.</p>
<p>Thanks,</p>
<p>Company</p>
</td>
</tr>
<!-- ROW 3 -->
<tr>
<td id="signature">
<table cellpadding="0" cellspacing="0">
<tr>
<td id="logo" colspan="3">
<img src="http://www.example.com/images/email/logo.gif" alt="Company" />
</td>
</tr>
<tr>
<td id="contact">
<p><a href="http://www.example.com">www.example.com</a></p>
<p><a href="mailto:[email protected]">[email protected]</a></p>
<p class="tel">01234567890</p>
</td>
</tr>
<tr>
<td id="social">
<a href="https://www.facebook.com/"><img src="http://www.example.com/images/email/facebook.gif" alt="Facebook" /></a>
<a href="https://twitter.com/"><img src="http://www.example.com/images/email/twitter.gif" alt="Twitter" /></a>
</td>
</tr>
<tr>
<td id="address">Company, address, city, post code</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Spróbuj wyświetlić kod HTML w przeglądarce, a następnie spróbuj wysłać wiadomość e-mail, aby zobaczyć, co mam na myśli.
Co robię źle i jak mogę sprawić, by e-mail przeszedł z zamierzonym CSS?