20 Email Design Best Practices for Beginners

20 Email Design Best Practices and Resources for Beginners

Even for experience designers, building email newsletters isn’t easy. You receive a lovely looking design, and you crack on with the development. Unfortunately, it just doesn’t work as it should in every email clients. Styles don’t display, images aren’t visible, etc.

This is where these twenty best practices come in handy.

1: Keep the Design Simple

Emails are not like complex website designs; they should be nicely designed, but somewhat basic. Try basing your designs on a main header image followed by the main content.

The cleaner the design, the easier it will be to code, and the less chance of any abnormalities happening between various browsers and email clients.

2: Use Tables

Email clients live in the past, so all emails must be built using tables for layout. Some CSS styling can be used, but we will discuss this later.

Not Accepted

	<div id="header">
		<h4>Header 1</h4>
	</div>
	<div id="content">
		Lorem ipsum dolor sit amet.
	</div>f
	<div id="footer">
		Sign off and footer
	</div>

Accepted

	<table>
		<tr>
			<td>Header 1</td>
		</tr>
		<tr>
			<td>Lorem ipsum dolor sit amet.</td>
		</tr>
		<tr>
			<td>Sign off and footer</td>
		</tr>
	</table>

3: Have Web Browsers at the Ready

Make sure you have as many web browsers as possible available to you. Who knows who will view your email, and what he or she will be using to view it!

At the very least, use these:

  • Internet Explorer 6
  • Internet Explorer 7
  • Internet Explorer 8
  • Mozilla Firefox 3
  • Apple Safari 3
  • Google Chrome

4: Sign Up for all the Major Email Clients

Sign up for as many email accounts as you can think of. Below is a list of email clients to get you started:

Please note that they’re are other, more convenient services that can be used instead; however, many of these charge monthly fees. For more information, review Litmusapp.

5: Use Inline Styles

If this were the website world, every developer on the planet would say, "do not use inline styles, create a class for it". Unfortunately, in an email, this is not possible, as the email clients will strip them out, and we don't want that. So if anything needs to be styled, use inline styles.

Elements like font type and size can be used within the <table> tag, but individual styles should be placed on <td>'s.

6: Give all Images Alt Tags

This is a very important step to take, but is often forgotten by many. Styling the <td> for which images are in, with font types, size and color, will allow for your email to degrade gracefully when images are off by default.

No Alt Tags

Alt Tags

7: Do not Set Widths or Heights to Images

Again, this is a further step to take in order for a lovely gracefully degraded email. If images are off by default, there dimensions will be present, leaving a lot of unnecessary white space throughout.

8: Wrap the Email in a 100% Width Table

Email clients only take the code within the body tags, not the body tags themselves. In order to use a background color, you must create a 100% width table to "fake" the background effect.

	<table width="100%">
		<tr>
			<td>
				<table width="600" align="center">
					<tr>
						<td>Lorem ipsum dolor sit amet.</td>
					</tr>
				</table>
			</td>
		</tr>
	</table>

9: No Wider than 600px

Many people don't actually open their email; they instead view them in the preview panel. On average the smallest preview panel is around 600px, so always design your emails accordingly, unless you don't want your full email viewable in the preview panel, of course.

10: Link Styling

Don’t forget to style the <a> tag. This will overwrite the email client's standard link tags.

	<a href="#" style="color:#000000; text-decoration:none;">Link</a>

11: Try not to Nest Tables

Apart from the 100% width wrap table, you should try your best not to nest additional tables. This is easily avoidable; use the stacking system instead.

This allows for a much easier, controllable email.

Avoid

	<table>
		<tr>
			<td>
				<table>
					<tr>
						<td>Lorem ipsum dolor sit amet.</td>
					</tr>
				</table>
			</td>
		</tr>
		<tr>
			<td>
				<table>
					<tr>
						<td>Lorem ipsum dolor sit amet.</td>
					</tr>
				</table>
			</td>
		</tr>
	</table>

Use

	<table>
		<tr>
			<td>Lorem ipsum dolor sit amet.</td>
		</tr>
	</table>
	<table>
		<tr>
			<td>Lorem ipsum dolor sit amet.</td>
		</tr>
	</table>

12: Avoid Background Images

Stick to block colors rather than images for the backgrounds for your text; only use funky gradients, images, etc. when no text is involved.

13: Borders don't Work

Within emails, we don't have much room for browser or email clients specific fixes, so when we have borders that can either sit outside or inside the <td> or be included or excluded from the <td> width, there's not much we can do.

The fix? Drop two extra <td>'s to either side of the main <td>, and set the background color in each one. This will again "fake" the look of a border and work in all browsers and email clients.

Won’t Work

	<td width="600" style="border-right:1px solid #000000; border-left:1px solid #000000;">Lorem ipsum</td>

Will Work

	<td width="1"></td>
	<td width="598">Lorem ipsum dolor sit amet.</td>
	<td width="1"></td>

14: Hotmail Bug Fixes

Over the past couple of years, Microsoft has vastly improved the Hotmail/Live service. But… one huge bug you will come across is the strange padding added to all images. Why do they do this? Who knows? All I know is, there is a wonderfully easy fix.

	<img src="image.jpg" style="display:block;">

On every image tag, simply add display:block, as shown above.

15: Encode All Characters

Although we don’t technically have to encode characters, it’s best we do.

When viewing emails in various email clients, we cannot guarantee the charset every website is using, so encoding characters allows us to be certain that all characters are being displayed as they should.

May Work

	"Some sample code - with special characters"

Will Definitely Work

	&quot;Some sample code &#45; with special characters&quot;

16: JavaScript = Junk Email

You cannot, unfortunately, include any type of JavaScript. So no fancy pop-ups or auto-scrolling emails please! If you do decide to include it anyway, your email may be sent to the junk folder. Email clients will see you as a threat. And this is obviously not good. So please stick to plain old HTML.

17: Give the User a Way Out

When sending general newsletters to various clients/customers, although you have a lovely designed and developed email, that user may not want your email (hard to take, I know). Always allow them a way out, by adding an unsubscribe link to the bottom of the email, like so:

If you would like to unsubscribe from this newsletter, simply click here

18: Users Want Options

Some users may be utilizing a very basic email client – maybe they’re checking there webmail at work or on their phones. Images and complex designs may not be best for these types of clients,. Consider, at the top of the email newsletter, having a link which points to the email on a web server somewhere, so the user can view the email in all its glory.

Cannot view this email? View it here

19: Use a spacer.gif

Some browsers (Internet Explorer), don't get on with empty <td>'s. Even if the <td> is set to 10px in width. IE will ignore this and set it to 0.

The fix is to add a transparent GIF, and set this to 10px wide. This then provides you with something to put within the <td>, thus fixing IE's issues with having empty <td>'s.

Won’t Work

	<td width="300">Lorem ipsum dolor sit amet</td>
    <td width="10"></td>
    <td width="300">Lorem ipsum dolor sit amet</td>

Will Work

	<td width="300">Lorem ipsum dolor sit amet</td>
    <td width="10"><img src="images/spacer.gif" width="10" height="1" /></td>
    <td width="300">Lorem ipsum dolor sit amet</td>

20: Send Tests

This is the most important aspect of email design; sending test emails allows you to view them in all browsers and email clients, looking for any bugs and odd variations.

I have setup a way to allow me to send test, by all means, use mine!

Username: test
Password: nettuts

For more comprehensive testing, use a service like CampaignMonitor or LitmusApp.

Other Helpful Resources

General Email Marketing info:

Email Inspiration:

Services

Email Design Tools

Premium Email Templates


Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • Aaron

    Perfect. Much appreciated!

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

    Hi!

    I found this article very good. :) It was really very informative. You can find further information about Email Newsletter’s and Newsletter Software at http://www.newsweaver.com.
    Keep up the excellent work, it’s obvious from the sheer number of comments you have gotten how good your articles are.

  • Darryl

    What’s an alt tag? Does it look like this: ? I’ve heard of an alt attribute, but not an alt tag.

  • http://www.sfgiants.com AJ

    For #13, what you suggested won’t work properly in Hotmail:
    1.
    2. Lorem ipsum dolor sit amet.
    3.

    Rather, use a spacer that’s the same color as the border. For instance, if I want the border to be red, I’d have to create a 1×1 pixel spacer and color it red. Then place it in one of the TD tags (1 or 3), and add a bgcolor. For example:

    Lorem ipsum dolor sit amet.

  • http://www.sfgiants.com AJ

    For #13, what you suggested won’t work properly in Hotmail. You coded:

    <td width=”1″></td>
    <td width=”598″>Lorem ipsum dolor sit amet.</td>
    <td width=”1″></td>

    Rather, use a spacer that’s the same color as the border. For instance, if I want the border to be red, I’d have to create a 1×1 pixel spacer and color it red. Then place it in one of the TD tags (1 or 3), and add a bgcolor. For example:

    <pre name=”code” class=”html”>
    <td width=”1″ bgcolor=”#ff0000″><img src=”../red-spacer.gif”></td>
    <td width=”598″>Lorem ipsum dolor sit amet.</td>
    <td width=”1″ bgcolor=”#ff0000″><img src=”../red-spacer.gif”></td>

  • Jonathan

    Wish I would have found this 5 years ago :)! This is great!

  • Maloy Chakraborty

    Great tips….Can anyone tell me how to send the HTML email? I’ve designed the email and uploaded to my server, now what to do?

  • Guru

    Very Informative.. Thanks for sharing…

  • walott

    just found another strange behavior in Outlook 2010, an directly inside a , both with fixed height, but with a lot of unexplained/out of logic extra space above, until i wrapped the inside a … go figure…
    hope this help, thanx for the great articles!

    • walott

      oups, sorry for the previous comment, this wwas meant to be :

      just found another strange behavior in Outlook 2010, an directly inside a , both with fixed height, but with a lot of unexplained/out of logic extra space above, until i wrapped the inside a … go figure…
      hope this help, thanx for the great articles!

  • Some Guy

    Thanks bro, I used your site to test mail a bit.

    I hate newsletters. Who read them anyway? Coding practices from 90-x is not worth it.

  • http://www.apnajahanian.com APNA JAHANIAN

    can you recommend any email marketing software please>?

    • http://www.markettraq.com Mike

      Sure Apna, why not give MarketTraq Email a try? The WYSIWIG (that is, What You See Is What You Get) email editing tools and SmartTemplates can help with many of the issues email marketers experience when creating emails.

  • http://www.riaxe.com Sanjeeb Sahu

    Thanks for sharing.
    I must use some of your HTML template designs.

  • Sarah

    The article was lovely; I’ve been researching everywhere looking to make a strong strategy for building a better email newsletter, and this is the first guide in which absolutely every piece of information I’ve read is sensible, actionable, and doesn’t fly in the face of other established best practices.

    One question: Does styling at TD tag cause image alt text to be styled, should the image be blocked? Your example made me think this might be the case — this would be good to know.

    Also, it’s been a few years since this article was published. Have any of the items on this list changed — is any of this advice now “old and outdated,” or is this all still current good advice?

  • http://www.lotusmarketing.ca Sherbrooke Marketing

    Great article.

    The resources links at the end were very good for me. I’ve read a couple and got good insights.

  • May

    Why can’t I see assigned Body background in hotmail?works only in gmail…

    I was also wondering if you could post the php code or explain how I can build my own test environment?

    Thanks!!!!

  • Julian

    Nested tables are OK, it seems. The only client that appears to have issues with them, is lotus notes, and then only when they’re 8 levels deep. See here: http://www.campaignmonitor.com/blog/post/2644/nested-tables-in-email-how-much-is-too-much/

    Also, you can do background images, but you should include a fallback (ie – make sure it looks nice with a solid background color you choose).

  • http://www.hloom.com Hloom

    It’s funny how in order to create a high-quality email template you just have to forget everything you knew about proper CSS, everything we are trying to go away from – tables, spacer images, etc.

    I made a mistake once of sending email newsletter with all that proper CSS styling… that did not work out well. From now on I always purchase templates from somewhere – much easier.

  • Asa Shatkin

    This is a really comprehensive list, Matthew. Nice job. I’m also a big fan of EmailonAcid for email client testing (I have no affiliation with them, been using them for more than a year and I it’s a big time-saver).

  • http://kutec.co.in/ KU

    Is there any EMAIL TEMPLATE simulator/tester like “Adobe Labs” for websites.

  • http://cubicleninjas.com/ Tyler Etters

    K.I.S.S.: Keep it simple, stupid! The simpler your email the less time it’s going to take to develop one that looks good!

  • http://www.emailmonks.com/ Karen Walters

    Incredible post ! great examples and content on email marketing and design. I’ve been developing HTML email newsletters for about a year now, but always finding areas that need improvement or fine-tuning.
    This is something I am definitely going to bookmark since there is just so much to go through.

    http://www.emailmonks.com/design/email-newsletter-designs.html