10 Tips for Designing HTML Emails

by on 24th June 2010 with 57 Comments

Love ‘em or hate ‘em, HTML emails are a wildly popular marketing tool and you will almost definitely come across clients that want you to build them.

If you don’t know anything about HTML emails, they’re annoying to develop and break all the rules you’ve ever learned as a web designer, but being able to code them is a valuable skill to possess. Today we’ll look at ten quick and easy tips to get beginners started on the road to creating beautiful and functional emails.

#1 Use Tables

Wait what? Didn’t we abandon non-semantic table-based designs ages ago? Yep, and now you get to experience the joy all over again. Unfortunately, most email clients don’t support a plain old CSS layout like you’re used to. Instead, it’s back to the 90s and familiarizing yourself with cellspacing.

If you’re unfamiliar with table-based layouts, here’s a simple example.

Each table is divided into rows with cells. Each row is represented by <tr> and each cell is represented by <td>. Here’s a quick rundown from W3Schools of some available table-related tags.

screenshot

Table Tools

If you want an easy way to build the basic structure of an HTML table, check out the free generators below.

#2 Use Inline CSS

HTML emails do support limited CSS, but you can’t use an external style sheet. Instead, you use inline CSS to style the various elements in the tables.

Some text goes here.

The snippet above shows you the basic syntax for inline CSS. As you can see, the code is essentially the same, you just embed it right into the code of your HTML rather than linking to another document.

Inline CSS Tools

If you’re more comfortable using an external stylesheet during development, just use one of the tools below to convert it to inline styling once you’re finished.

  • Premailer: Converts CSS to inline styles and checks your code against email standards
  • HTML Inline Styler: Converts CSS rules into inline style attributes

#3 Nest Your Tables

Another quirk regarding email clients is that they are quite inconsistent when it comes to interpreting margins and padding. To overcome this problem, use nested tables whenever possible. The code is a little messier but you’ll have much greater compliance across the board.

To “nest” a table simply means to place one table inside of another. You can nest multiple tables, just be wary of overnesting and creating a huge mess. Some email clients start to get buggy around eight nests, but you should be able to come in far below this number for most of your designs.

#4 Watch Your Width

Several email clients are fairly limited in their width. For instance, consider the online Gmail client. Building a normal size webpage and then displaying it in the tiny Gmail window will force the user into awkward horizontal scrolling.

There are too many possible clients and screen sizes to code for every scenario so the consensus among the web community is usually just to keep your emails fairly narrow. As a rule of thumb, try to stay under 600 pixels wide in every email design you create.

#5 Be Careful With Images

There are several complications to consider when using images in HTML email. First, some clients don’t support background images, others do support them but will often have them turned off by default. This is by no means an argument that you shouldn’t use images in your design. The strongest selling point of HTML emails is that they surpass the quality and possibilities of the rich text already available in most email clients. Eliminating images altogether can really reduce the benefits.

Instead of completely abandoning images, just make sure that your message works fine without them. Use background colors as a fallback so any text will remain readable and test your layout with images disabled.

Another thing you have to be aware of with images is that you can’t (or at least, shouldn’t) embed them into the email. Instead, you’ll have to host them long-term on a reliable server and then link to them in your code.

Finally, make sure you watch your load times. People are used to clicking on an email and seeing the contents, not waiting for images to load. If you make me endure long load times, I’ll hit delete faster than you can explain why it’ll be worth the wait.

#6 Allow Easy Unsubscribing

HTML emails are most often part of a stream of newsletters subscribed to by a user. Many times users sign up for a service and don’t even realize it means they’ll be receiving a newsletter. Other times they consciously decide to sign up but change their mind later.

In either case, unsubscribing should be a painless process that virtually anyone viewing the email should be able to figure out. To accomplish this, include an unsubscribe link and make sure it’s easy to spot. Designers and marketers who attempt to hide this link lack integrity and respect for their audience.

If the person doesn’t want your email, they’re not reading it anyway. There’s no value in sending 10,000 emails to spam folders all over the world. It’s far better to know that those receiving your newsletter are actually interested.

#7 Consider Your Content Carefully

Marketers and business owners often see an email newsletter as the sole source of consistent contact with their customer base. They are therefore often tempted to fill it with as much content and information as possible. As a designer, help them resist this urge by designing a template that showcases a little information extremely well rather than a lot of information very poorly.

The key here is quality over quantity. No on will read a thousand word marketing email. You have, at the very best, 3-5 seconds to grab the average reader’s attention before they hit delete. Accomplish this with fast loading, attractive visuals, concise copy and clear descriptive headers.

#8 Include Other Viewing Options

In addition to including an unsubscribe option, you should present at least two alternate ways to view the email for anyone not receiving their preferred experience. For the minimalists, a simple text version is best. There are plenty of people out there who think that email should stay simple and simply don’t want to see your fancy-pants attention grabbing graphics.

At the opposite end of the spectrum are users who do want the full rich experience but are being held back by a buggy email client. For these users include a fairly prominent link (often at the top) that allows them to view the email in a browser. Because browsers are infinitely better for displaying HTML and CSS, you can even beef up the browser-based version by coding it more like you would a normal web page (or simply have the browser display the original version).

#9 Test Thoroughly

When designing a web page, one of the most annoying processes you have to go through is cross-browser testing. This process usually involves testing for Webkit, Mozilla, IE and maybe even Opera if you’re really dedicated. If you can believe it, designing for email clients is even worse!

There are upwards of 30 popular email clients, each with their own standards and varying support for different commands. To begin, test in the email clients that you have handy. Sign up for accounts with popular webmail clients like Gmail, AOL and Yahoo. Also make sure to test out the default apps for both Macs and PCs.

Obviously, you can’t test every client. If you’ve got the budget, sign up for a month of a service like Litmus during the testing phase. This will allow you to quickly get a preview of the finished product on 33 different email clients and is one of the best ways to ensure that everyone is covered.

screenshot

During the design stage, be sure to check out The Email Standards Project. This is one of the single best sources available for detailed reports regarding what is and isn’t supported by various email clients.

#10 Use a Template

The best way that I’ve found to begin the process of designing your first HTML email is to grab a template. Even if you have a very specific design in mind, modifying a professionally developed template rather than starting from scratch can save you countless hours in troubleshooting time.

This will also give you a good look into how other developers structure and style their tables. Just remember that if you’re going to redistribute or sell an email template as stock art, you shouldn’t be stealing from someone else’s work! In these cases, you’ll want to really know what you’re doing and develop your own structure from the ground up.

Free Email Templates

screenshot

Fortunately, you don’t have to pay a dime to snag some quality free templates from which to start your design process. Most of the premium email services offer free downloads to get you started, often with no signup required. Check out the resources below:

Conclusion

To sum up, when designing email templates, start with a good basic template, code like your dad did a decade ago, keep your content both conceptually and physically lean (less than 600 pixels wide), make it easy to unsubscribe and see alternate versions, and test like crazy.

Leave a comment below and let us know if you found the article helpful. Also be sure to share any bits of wisdom you’ve picked up along the way for designing HTML emails.

Comments & Discussion

57 Comments

  • http://www.imkevintan.com Kevin Tan

    Thanks Joshua. It’s an awesome tip.

    I’ll try to further customize my HTML email with the tips above.

    By the way, do you know any good resources or templates for AWeber?

  • gregory the web designer

    fyi – you say use inline css and show an image and code of some embeded css

  • http://knowledgecity.com Jae Xavier

    although i like html emails, plain text prevails.

  • http://heptagrama.com Tedel

    This is true. Actually, I use plain HTML for my website’s mailing: , included.

  • http://whygee.com Steve Yancharas

    Here are some inexpensive email templates that look pro: http://themeforest.net/category/email-templates

  • Pingback: CSS Brigit | 10 Tips for Designing HTML Emails

  • Pingback: ngleader's me2DAY

  • http://www.mitchellmcleod.com Mitch McLeod

    I do quite a lot of HTML templates and the hardest clients to build for is web based like gmail. They strip a lot of css and over-ride h1, h2,and h3 tags. :)

  • http://helloued.com Kimcool

    I think the title is more clear,in the mail some elements is so colorful and can’t to do.

  • http://www.bittenbydesign.com Nick – freelance graphic and web designer

    You will probably find that you can’t run images in the background of a table cell and place text over the top of it in the cell, it doesn’t work in some versions of outlook. Nested tables is a way around it, but it can make for some messy looking code. (and a greater risk for something to go wrong)

  • Joshua Johnson

    Thanks for the insight guys!

  • http://www.jetwebconsulting.com John

    Great post. I use Email on Acid (http://www.emailonacid.com) for our HTML emails. It’s a lot faster and cheaper than Litmus. Just thought I would throw that out there in case people are looking for other alternatives for test HTML emails.

  • http://www.stefan-reichert.com Stefan

    Use Mailchimp ;)

  • Asif

    Nice article Joshua. Your aticle will help the developers to use it as guidelines.

  • http://johan.notitia.nl/ Johan de Jong

    Finally an article which really gets to the point of HTML e-mail.

    One small addition at #2 (inline CSS): Most mail clients don’t support CSS inheritance, which means you have to enter the styles at every single element.

    eg. you can’t set the styles at a td which should apply at the paragraphs within it. So you’ll have to set the style for each paragraph within the td.

  • http://www.chrismorata.com Chris Morata

    One problem I’ve ran into several times while coding HTML emails is extra white space around images. I’ve found that this problem can be solved in 2 ways. First, write your table cells with images inline (no indentation), and add an inline style of display: block; to the images. Hope this helps anyone out!

  • Pingback: HTML Emailing - projektujemy - develway.pl

  • http://www.TheSecretAssistant.com Jeri Winkler

    What about hyperlinks? I’m suddenly having problems getting hyperlinks to work properly. Mainly the actual “link” doesn’t correspond to where I wanted the link. Very strange!

  • Ivan Pierre

    @Jeri did you put an external link, say http://… If you generate the mail from your site local links will not work.

  • http://stylishwebdesigner.com/ Tanya

    very useful tutorial. thnx for sharing this

  • http://www.likethegoddess.com likethegoddess

    You’ve covered most of the major points in this clear, concise article.

    I’d suggest a clarification that the concern in HTML email design is images in general, not only background images. Many email clients will not display images by default. In such cases, the user may be allowed to turn on the display of images within an individual email. Some email clients will display your alt text within a space-holding box when images are not automatically displayed. So, if you make your text compelling, your users may choose to view your images if they do not display by default or by their own settings.

    Also, consider any legal requirements for your message. For instance, the U.S. has CAN-SPAM legislation: http://bit.ly/9J3HYy

  • Pingback: Here’s What We’re Reading – June 26, 2010 :: Warbux Creative

  • http://www.studiodino.com StudioDino

    A good reminder for all eps. for the up and coming web designers.

  • http://www.ksnagra.com Kanwaljit Singh Nagra

    Very good post – always good to brush up on the basics, I hope one day email clients could render pages like browsers, vastly improving the user experience and providing consistency :D

  • http://www.sixthirtythree.wordpress.com Six_33

    Wow! I have been looking for this very information.

  • Pingback: delicious Links: 26. June 2010 | miZine

  • http://www.avis-el.bg климатици

    Thanks for sharing this tips :) goes to Bookmarks :)

  • http://www.farengambrill.com Faren

    Nice article. I tend to do quite a lot of HTML email campaigns and they can be a nightmare at times.

    Just don’t forget to test your emails in Outlook 2007 as it uses Word to render the email which brings up a host of other problems!

    I actually did a post on my blog about designing HTML emails also, if any of you are interested please take a look: http://tinyurl.com/2c7ahh3

  • http://niceemails.com Email Templates

    Great Post! You should visit http://niceemails.com. Nice Emails is the premiere marketplace for purchasing Premium Email and E-card Templates.

  • http://freshsparks.com FreshSparks

    Good refresher before I tackle the next HTML email. I agree with Faren, always test your template on as many email software clients as you can.

  • http://www.pixlogics.com Farhan khan

    Very nice article on designing HTML emails. I was looking for it from some time and now i got this. This will be really helpful for me for designing HTML emails.

  • Pingback: Ultimate Guide to HTML Emails – Basics, Tips, Tutorials and Resources | CG Stream

  • Pingback: Ultimate Guide to HTML Emails - Tips,Tutorials and Resources

  • http://www.endlessstudio.com erin

    Thanks for the guideline!
    now you need to start designing it. Get some tip from http://www.email-gallery.com

  • Pingback: Ultimate Guide to Email Marketing Succes - Basics, Tips, Tutorials and Resources » FullView Design

  • Pingback: HTML邮件的终极指南 | PM.Camp

  • Kelly Johnsno

    Yahoo is now adding their own css to every email you send to/through them.

    They will choose what they think are key words and link them. So, you’ll need to include css rules to over write them. Their class is .yshortcuts

    This is a HUGE tip for those who watch the integrity of their designs.

  • http://www.prosist.eu Отработени Масла

    Thanks for the insight guys…

  • http://www.chilterndisplays.co.uk Scott

    very helpful, gonna try and put this info to good use..

  • http://dandemordxzxzsts.com Karyl Tollerson

    Many thanks for the awsome article. I’ll keep an eye about your site, i allready saved it to personal list :)

  • http://www.gonocturnal.com David Elliott

    HTML emails are the bane of my existence.

  • http://www.gergovprint.com Kалендари

    Very good post. Thanks guys!

  • Kevin

    @Chris Morata: you saved my day!!! Thanks a lot for your hint concerning the white spacing images in html mails @ google mail.

    Cheers,
    Kevin

  • http://emailwear.net Emailwear

    If you are looking for a newsletter design, you should visit http://emailwear.net where you’ll find a great collection of html email templates for you newsletters.

  • http://pm-klimatici.com климатици

    Good article for junior front-end devolper

  • http://www.newsweaver.com/ Newsweaver Newsletter Software

    If you are looking for a email marketing software provider you should visit http://www.newsweaver.com/. Where you will find a company that create, deliver and track meaningful email campaigns.

  • http://www.webdesignmu.com/ mauritius web design

    Nice article exactly what i was searching for thanks for sharing

  • http://www.luchistroy.com Алуминиеви Парапети Варна

    This is true! Actually, I use plain HTML for my website’s mailing, included

  • http://www.iwebprovider.com Innovative Web Provider

    Very organize post and informative. This will help me in building mailing system. thank you so much for this. I really needed it.

  • http://twitter.com/sagarranpise Sagar Ranpise

    Hi, Nice post! Just a question regarding outlook issue. If you send mailer from outlook to any email(gmail,yahoo, rediff etc) the mailer shows some extra spaces and the mailer appears to be broken. Any solution!!!

  • Pingback: HTML Email « smurray10

  • http://ideamax.eu Уеб дизайн & SEO

    Very useful article indeed…thanks

  • http://www.paragon9.com Josie Bond

    Thanks for the help. Your article helped me understand a better approach to html emails.

  • http://www.futureofcleaning.com harrison

    Hi guys just coding my 2nd html email now and I am having trouble with white space around the images . . . If anyone can help out with this I can email them the code … contact me through my email address harrison.tait@gmail.com

    Thanks

  • http://klimatici.biz/ климатици Daikin

    that is very interesting and useful, thank you :)

  • Pingback: Husband forgetting about a wedding anniversary - Newsletter templates | Newsletter templates

  • http://remont-klimatici.com/ климатици

    The HTML are easy.I`m looking for JAVA and C# codes.I`m looking in google but not find noting iteresting.

Subscribe
Membership
About the Author