I've been developing websites for over a decade now, but quickly found that many of my habits in developing for the web are useless when developing for email clients. This has caused me an enormous amount of frustration, so I thought I would ask a question that would hopefully surface the best practices and necessary considerations for others like myself who may find themselves designing for gmail, outlook, etc. from time to time.
Example: <style>...</style>
vs inline CSS.
In short: what transfers over from the web-world to the email-world, and what doesn't.
Inline css and tables - think web development circa 2000 and you'll be fine. Campaign monitor have an excellent resource for what stuff email clients can deal with. Also use http://www.emailonacid.com/ for testing - saves having to send loads of tests.
This seems like a great place to list some resources for anyone trying to learn HTML email. This is (probably) the most comprehensive list of HTML Email resources you will find on the web. Happy learning.
Getting Started Guides:
CSS Support & General Guides:
You should always inline your CSS in html-email. Here is a list of CSS Inlining Tools
Responsive Guides:
Templates & Frameworks:
Responsive Alternate Examples:
Also the Ted Goas Responsive link above has an excellent fluid example.
Troubleshooting & General Guides:
You'll need to use VML to get background images working in Outlook (Except in the body tag). Here are some VML links:
I have been doing these (at quite times) for my work for a while now. There are many pitfalls with HTML emails. Different Email clients render HTML differently from each other and make IE6 look advanced.
Here's a summery of what I've learned so far.
This is far from a comprehensive list, but should set most people on the right track.
I myself found this guide very useful as well: Guide to CSS support in email clients.
This is good too, so see what inline CSS is supported in what email browser: http://www.campaignmonitor.com/css/
I and also recomend litmusapp (google it!). This a s a good tool for checking things.