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
  • Carlos

    Nice article. Helpful. Althought #8 and #11 are a little contradictory. #8 has a nested table and #11 says not to nest tables.
    But all in all. Great article and helpful for future mailings.

    • http://dmolin.com.br/blog/ André D. Molin

      In #7 and #19 too.
      But a great article. Thanks.

      • Carlos

        True did not see that either.

    • http://twitter.com/furley Furley

      “Apart from the 100% width wrap table, …”

  • http://www.takingweb.com Takingweb

    “Email clients live in the past”…mailings are my nightmare when i code them! :P
    nice article….add it to my preferred articles! ;)

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      There always a nightmare aren’t they! Can’t see them getting any better any time soon unfortunately!

      I am glad you enjoyed my article, and good luck!

  • james

    very cool. a ajaxy php newsletter sign up script would save my life right now!

  • Dan

    This is a good read. I look forward to the day that email clients widely support tags this way we can put tables to rest. haha

    I’ve seen big brands go up 700 px in width for emails templates. (apple, barnes and noble)

    I always stick with 600, just to be safe. :-)

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      I prefer 600px because you get some people who have a preview panel which lines up vertically next to the list of emails, these can be super thin.

      Can’t go wrong with 600px, like you say.

  • http://www.designfollow.com/ designfollow

    very useful

    thank you

  • http://www.bobricca.com Bob

    Sweet article. A couple things I’m not totally in agreement with…

    6: Give all Images Alt Tags – Personally I’d use alt tags when you feel like they would add to the design. Most email clients have images off by default. Use alt tags as an extra way to break your message through to the reader. One way not to use them is to have a bunch of design elements that are image based with alt tags set… its going to be very hard for the reader to make sense out of your email when the important message is surrounded by alt tags like “left-image” “right-image” “border-left” etc…

    7: Do not Set Widths or Heights to Images – Another thing to use with intelligence… some email clients like Hotmail only allow the alt tags to display in the width/height of the image they are applied to. This means that if you haven’t set a width and height, readers won’t see your alt tags. (also: consider wrapping images with span tags and using inline styles to style them)

    11: Try not to Nest Tables – I completely disagree. Nesting tables is important and almost inevitable if you want to have any sort of design that’s less than completely basic.

    12: Avoid Background Images – You can use the background attribute on a table cell… which works fine in almost every email client except outlook 2007 (which as a fail safe you should set a background color)

    • http://www.bobricca.com Bob

      Actually I misread #11…. stacking tables would work too. :)

  • http://www.fatlizardmedia.com Juan C Rois

    I personally have not had the opportunity to send email newsletters. MOstly what I’ve done is to create scripts that send an email automatically, let’s say as as welcome message after a new user creates a profile.
    But one thing I’ve never known is, once you have the HTML email template, what do you do with it? how do you send it?
    What I would do is add it as a string to the $message variable in the php mailer class and run the script to send the email.
    I just don’t believe is the most efficient way of doing that!
    Any ideas?

  • http://www.jeffadams.co.uk Jeff Adams

    i love how NETTUTS has released this to coincide with the new category over at Themeforest.

    All really useful information, takes me back to the old days lol.

    One thing I had no idea about was the Hotmail fix, so cheers for that!

  • http://vector.laroouse.com esranull

    good post but Does not work?

  • Huckleberry

    Nice tut. I tell new hires there’s no better way to learn HTML w/ CSS and HTML emails. They seem to really boost understanding of CSS.
    Another great trick, rather than set the table to 100%, is to set it in a tag. The reason, as you mentioned, is some email clients strip out the tag. Thus, setting a div right after the body makes that div act like a body tag. Then you can set you table width to 600px, style it w/ a margin:0 auto; and you’ve got a nice centered table that fits practically any Preview window.
    Great advice throughout the tut, though.
    Thanks.

    • Huckleberry

      It striped out my code! As I was saying, add a ‘div style=”width:100%;” ‘ right after the body tag, which gets stripped out, thus the div acts like a body tag. You can then set your table width to 600px and you’re good to go!

    • http://www.ferdychristant.com Ferdy

      I really hope you’re kididng. HTML emails are about the worst way to learn HTML and CSS, since it learns you how things on the real web were many years ago. If you start learning by HTML email, you learn it the wrong way from the start.

      • Huckleberry

        Actually, I didn’t mean they teach you HTML, which they do, though as you pointed out, the ancient method. But it really helps on learning CSS. Having to do inline styles over and over really drives it home.

  • http://inspiredbywordpress.co.uk Daniel Groves

    I will not be having a go at this. Table based layouts are way to complex.

    • http://eatstudio.com josheat

      If you’re worried about that man, create the table layout without any styling in Dreamweaver or something similar. Then bring the code into a text editor and iron out some of the redundant stuff WYSIWYG editors give you.

      Then do colors etc.. from there!

  • http://www.thatbelinda.com Belinda

    I have to send HTML newsletters on a regular basis for work (despite my actual job being account management – someone found out I could code ;-) ) – there’s a number of things I struggle with, such as trying to ‘relearn’ tables after trying so hard to bash it out of my head in the past! This list is really helpful, I’m totally bookmarking :-D

  • http://spotdex.com/ David Moreen

    Good tips, one day I might actually get around to using them. I have to many things to going on simotaniously right now :/

  • http://www.solemone.de/ solemone

    this is useful for that topic

    http://inlinestyler.torchboxapps.com/styler/

    (via @smashingmag)

  • http://subigya.com suBi

    @huckleberry

    I don’t think sending out email newsletters are a good way to learn HTML/CSS because most of the features are not supported in many email clients, even the most used and major ones.

    Good article… Also make sure that all the “ALT” tags for images are striped out of symbols. I have this on my bookmark, that converts a regular word doc into plain txt. It really helps, also for the regular txt version.

    http://jonathanhedley.com/articles/2008/03/convert-microsoft-word-to-plain-text

  • http://www.derekloewen.com Derek Loewen

    For 19, an alternative to using a spacer.gif is to add   (non breaking space) inside the empty cell. Dreamweaver does this by default and it works well from the times I’ve had to implement tables.

    • http://www.derekloewen.com Derek Loewen

      Looks like the entity didn’t show, its: & n b s p ;
      but without the spaces.

    • http://www.dan123.co.uk Dan

      I agree if you’re talking about width but if you want to have table cell 10px tall you need to use spacer.gif or set a font-size to 1px inside this cell

  • http://www.ravelrumba.com Rob

    This is a good summary.

    Regarding #11 (Nesting Tables), nesting tables is actually fine as long you don’t use colspan. If you span more than 2 columns it can cause problems, especially in Lotus Notes where it can explode the whole layout. Avoid colspan and you can usually nest as much as you want.

    For sending test emails to yourself, the fastest way, if you’re on a mac, is to use Safari’s “Mail Contents of this Page” feature. (I don’t want to spam but I’ve written a blog post about it. If you’re interested, click the link on my name and look for the post about Safari. =)

  • http://www.zoomission.com Dominic Morin

    This is the best post I’ve read about Email design best practices. Bravo Matthew!

    @zoomission

  • http://www.danielneumann.com/ Daniel

    A list of CSS styles that you can safely use in emails. This makes coding your design much easier. Saved me lots of testing.

    http://www.danielneumann.com/blog/safe-css-styles-for-html-emails/

  • Fábio Antunes

    Great article.. And one of the ones that was missing for some time at tutsplus.

    Good Work indeed.

  • Symons

    You contradict yourself in several places and telling people to use a spacer image is retarded at best. There are some helpful tips in your article but please, don’t call these tips “best practices”. Teach people how to do things the correctly.

  • http://www.preeminentproductions.com/blog Anthony

    Very nice. Thanks for this. Very useful.

  • http://thx2madre.tistory.com Irene

    Great :) This is useful~

  • Michele

    Step 4 has a few grammar/spelling issues that should be cleared up…
    “Please note that they’re are other, more convenient services”

    But otherwise it’s a very simple, clear article. Thanks!

  • http://www.webdesigners-hub.com Vijendra Mishra

    Thanks … article is simply gr8 … specially those workarounds for problems in different browsers.

  • http://www.ferdychristant.com Ferdy

    Overall, a good article. A few remarks:

    “7: Do not Set Widths or Heights to Images”

    Could not disagree more. Even with images disabled in the client, setting the width and height will at least keep your design in balance. It also more clearly shows that the email has images, which is a trigger to enable them for users.

    “10: Link Styling
    Don’t forget to style the tag. This will overwrite the email client’s standard link tags.”

    True, but how is this different from the normal web?

    Finally, I like to add one tip that I find important:

    21: avoid HTML emails

    Unless you have a strong need for a branded, complex newsletter, just stick with plain text emails.

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      If image sizes are not set, you are able to create a really nice gracefully degraded email when images are off. You aren’t making the image a set size, which can seriously affect your styled alt tags, sometimes making them unreadable.

      Plus if you use the table stacking method, you are able to restrict the size of anything within.

      • http://www.jamessmith.co.uk James

        I agree with Ferdy – In Outlook 2003, images without dimensions expand to take up 100% width, which is really bad for those single pixel tracking gifs – completely breaks the layout in some emails I receive (most notably the ones from Mailchimp, which I find quite ironic).

  • http://www.studioweber.ro Alex Flueras

    Thank you for this article, great resource for every web designer.

  • http://www.surrealillusions.co.uk Nick

    Hi, Some good points but I’d thought I’d mention a few things as I work with email newsletters almost everyday and I’ve learnt these things from experience.

    7: Widths and heights on emails. I’ve found in Outlook 2007 and Lotus Notes 6 (I think it is), that if no width or height is set, then the image is not displayed. In more complex designs, setting the width and height can help in keeping the design intact with images disabled.

    9: Agreed. Although worth noting if you have a client that insists on Lotus Notes (despite it been the worst email client ever built), that setting widths do not seem to work. The email will spread itself out wider than 600px in some circumstances, although I’ve yet to figure out when it does this.

    11: Have to agree with a few other users about this. Nested tables are about the only thing you can do in designs. Where padding and margins are stripped out in some email clients (such as gmail), nested tables are a way to get the same effect without excess spacer images.

    13: Borders do work in Thunderbird! But thats the only email client I know that displays them.

    Some of the other tips are very useful though for those that are new to email newsletters. Thanks!

  • http://www.dan123.co.uk Dan

    Hello,
    I don’t agree with few bit in this article.
    1. You need to set width and height to an image. Smaller images [icons, etc.] expand when there is no width or hight attribute
    2. My emails are 640px wide and it’s absolutely fine. Sometimes 40px makes a huge difference
    3. Nested tables are alright. I have never had a renderability issues while using nested tables
    4. Borders work but only with nested tables. You need to make a table with specified width attribute and then place a table 100% wide inside with inline style describing border. I use it all the time
    5. For hotmail bug you can place this style in header only as hotmail doesn’t get rid off styles from header

    At the end I’d like to say that I test my emails carefully in many emails clients across different OSs and browsers and haven’t got any issues at all

  • http://www.equestrianclearance.com Lee Marriott

    Thanks for this post its exactly what i was looking for! The resources at the bottom of the post were also extremeley helpful.

    Thanks again!

  • http://shwartz.eu Shwartz

    Very good article. Would like to add some points here as well.

    6. Give all Images Alt Tags. Disagree with this one. Outlook 2007 do not show alt tags, and as for statistics then Outlook 2007 is the most popular. Add alt tag but be ready if they won’t be seen. There is statistics:

    http://fingerprintapp.com/email-client-stats

    7. better set width and height of images. Why? Because sometimes if there is no images but there is background color then this block can expand up to 1000px. Have no idea why this happening.

    11. Sometimes there is no other choice and have to nest Tables. Problem is with IE6 which will add space between block. To avoid this problem add style=”font-size:0″ and this will remove space.

    19. be careful as if you set 1px images then your email could be set as spam.

  • Aidan O’Donnell

    i would also disagree with “7: Do not Set Widths or Heights to Images”

    If you don’t fix image widths then some clients (namely Outlook) expand the image widths to 100% if the page, which destroys your template layout…

  • http://www.mediahodai.com Carlos Camacho

    #13 Borders. This is wrong. I use them. They work on all clients I tested.

    #19 This is bad. spacer.gif are a clue that the email is jumk/spam

    Further tips
    —————
    * Use an email deployment company – They will throttle the sending and also work with the ISPs to stay on their white lists
    * Don’t send emails to people who don’t want them. They opted in, OK. They didn’t, don’t send
    * Send on a regular schedule
    * Be careful of padding and margins styles set to .
    * Put all images on your server
    * Use basic fonts, like arial,sans-serif
    * Have a balance of images and text. Too much images will be tagged as spam
    * Check your markup. Good markup = legit email. Bad = possible spam

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      Borders are sometimes an issue in Yahoo, dependent on functionality.

      Great further tips though! Thanks!

    • http://www.2pebbles.com Sinisa

      Borders don’t work in Lotus Notes.

      It is a shity email client but business users use it.

  • Jamie

    Great article!

    A few tips of my own if I may as I used to create 10 or so templates a quarter for work until we found a base that worked and built a cms around it.

    1. Drop the tags. Each paragraph tag requires its own tag to insure it is rendered correctly. If you use table cells to position your text and use tags to replicate paragraph spacing you’ll find that you have more control over how your text gets interpreted. You can also the use one tag per and cut down the headaches from changing styling on each and every .

    2. For every set every property, alignment, borders, spacing and padding as well as repeating this with styles. I stick with left top for alignment and zero everything else as a base and then alter individual cases where required. Once again this is all about maximising client rendering.

    3. Personally I’d also double up on 1px spacers and non breaking spaces. Belt and braces approach again, what will fail in one will be caught by the other.

    4. Find a base scaffolding layout that works and save it. Try and alter your designs to fit that structure. Once you have tested once and you know that the template works you’ll be down the pub much faster than testing from scratch.

    I have the luxury of a testing client that tests a combination of around 140 browsers, clients and OS’s. I have to get my emails as close to looking identical in every single client as I possibly can. There are a few that as a company we just don’t worry about and we provide a text alternative to back these choices up. Of the million or so emails we send a week we feel confident that everybody can read something and I think that’s the key. Decide who your target audience is, dust of that part of your brain that you filed html 4 under and code like it’s 1999 :)

    Oh and as an addition to this most excellent article, Themeforest’s email templates and the chimp based email advert that crops up on the site take a look at this article that outlines what css works when it comes to emails:

    http://www.campaignmonitor.com/css/

    Keep up the good work net tuts and…. *ahem* codeigniter screencasts *ahem* ;)

    • Jamie

      Gah, point 1 lost all its tags even though i spaced them…

      1. Drop the (p) tags. Each paragraph tag requires its own (font) tag to insure it is rendered correctly. If you use table cells to position your text and use (br) tags to replicate paragraph spacing you’ll find that you have more control over how your text gets interpreted. You can also the use one (font) tag per and cut down the headaches from changing styling on each and every .

  • http://www.andrislinz.ch Andris

    Since I have to design and code some e-mail newsletters soon. This article is very informative and helpful to me. Thank you very much.

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      Glad to see this can help you out. Let me know how you get on?

  • http://www.awmcreative.com Aaron

    Hey, thanks for the post. Here’s some comments:

    #11: “Try not to Nest Tables” – I don’t see the advantage of this point, especially with a more complex e-mail newsletter.

    #13 “Borders don’t work” – actually they do, but not in Lotus Notes or IE 6, and 7. I do agree with your fix though.

    I also want to point out another helpful link that is a VERY helpful CSS guide for email newsletters: http://www.campaignmonitor.com/css/

    …and because I’m picky…the newsletter example you give has links that say “click here,” very bad.

  • http://dobrzanski.net Jaroslaw Dobrzanski

    Option #19: Use a spacer.gif

    You can always use a td with a space:
    nbsp;

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      True enough, but you may still get some spacing, so its best to use the idea I stated or the font-size:0; that other great peeps have suggested.

  • http://www.awmcreative.com Aaron

    sorry, one more thing…

    #8: “Wrap the Email in a 100% Width Table” – are you saying that body tags don’t take attributes such as style, bgcolor and link, vllink, etc? I’m not sure this is completely accurate.

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      Hi,

      The body tag will be stripped out, you simply substitute this with the 100% wrap.

      • http://www.awmcreative.com Aaron

        Thanks for the quick reply Matthew.

        The reason I ask is because the company I work for has a newsletter, which I get daily, and there are attributes within the body tag. When I receive the email the tags aren’t stripped out. Maybe certain e-mail clients strip this out?

      • http://www.matthewkirk.co.uk Matthew Kirk
        Author

        All email clients deal with all types of things differently, thats what makes email development so fun!

        If you keep everything within tables that you have developed, its a lot easier to iron out any possible issues you may come across, like body attributes.

        Just remember, web based clients have there own body tags, so its dependent on how they set themselves up e.g. iframes and the like!

    • Jamie

      I don’t use this one myself but I can see it having the advantage of being able to add a colour to it if you want that little extra control over the background maybe?

    • http://www.ravelrumba.com Rob

      Wrapping everything in a 100% width table prevents the problem that occurs when a user forwards an email. If the background color is set on the body, the background color will often leak into the top of the forwarded email. This can drive people nuts. Assigning the background color to the 100% width wrap keeps things tidy.

  • Chase

    One post that sums up what took me months to learn. Nobody talks about email much so its nice to see something like this. Two things.

    1) Everyone needs to remember #17. There are laws about a lot of this stuff. I believe it has to do with CAN SPAM or something like that. No expert on this but I do know its a big deal especially if you are sending emails for your company.

    2) For those who always want to do super fancy emails. Marketing people Im talking to you! Make sure you take a look at this link http://www.campaignmonitor.com/css/ It will tell you what you can and cant use for certain email clients in regards to css. Remember #1 and things get a lot easier.

  • dev

    Code in table?

  • Nikola

    Hi,

    Awesome article, is there any chance to share source code for testing script you mentioned at the very end of article?

    • http://www.matthewkirk.co.uk Matthew Kirk
      Author

      Its pretty much all PHPMailer (http://phpmailer.worxware.com/).

      Have a look at that and you will see how its done.

  • http://blog.usability-idealist.de/ fwolf

    FYI: You have to use inline styles thanks to the latest Outlook plague, which is NOT ANYMORE based on IE but on the Word HTML Rendering Engine (I guess whoever has cooked this fuck up together @ M$ must have been on LSD or other brain-damaging drugs).

    A year ago I’ve actually built a PHP-based newsletter generator and sender which destructed proper, good-looking XHTML + CSS source code to this rather crude and table layout and patched up inline style peace of makeshift. It’s still stumbling around somewhere, so if you need help with this kind of issues, just ask (and I’ll release it for free-as-in-beer or so) ;)

    cu, w0lf.

  • http://www.webdeneyimleri.com/ Volkan Görgülü

    Good article, now I am more clear on some issues

  • http://www.crearedesign.co.uk Stephen Webb

    Being a beginner when it comes to email newspapers and marketing I’ve found this guide very useful and an excellent introduction to the best practices. With the ongoing development of the web in general email marketing is fast becoming as important as physical marketing, and getting it to work correctly is essential.

    It’s quite a challenge to forget everything you know and work in the old ways of the web, using tables and in-line styles are obviously the complete opposite of web practices today.

    I’ll be using this guide again in the future, thanks for an excellent tutorial. I look forward to reading similar tutorials on marketing soon!

  • http://brianswebdesign.com Brian Temecula

    I really enjoy text only email. The world would be a better place without HTML email.

  • http://philadelphiapersonalinjury.com Philadelphia personal injury attorney lawyer

    Nice tutorial. I could definitely use these tips to build my own design. It would help a lot for my job, just to make everything look cleaner and more professional. Bookmarking for sure.

    Thanks a lot, great to read.

  • http://tugbucket.net Alan

    It seems you put a lot of emphasis on browser testing when the real test would be email client testing. Testing on Hotmail, Yahoo, Gmail is fine and dandy but, you need to test on Outlook Webmail, Outlook ’03 and Outlook ’07. As these three are used heavily in corporate environments.

    On point #19, spacer gifs are sadly a must to make several clients behave. Outlook ’03 and ’07 though don’t like to obey when you tell a 2px gif to be 100px wide. In fact ’03 likes to make it maybe about 50px and stop. Mind of it’s own. To make the client based Outlooks play along nicely, you really need a Xp x 1px spager gif for every td that does not contain a content related image that fills the width horizontally.

    My last email project consisted of several ranging from 1px x 1px to 400px x 1px. There we maybe half a down separate sized spacer gifs used to ensure that Outlooks cooperated.

    On #20: download Thunderbird. It gives a good test environment and easily sends HTML emails.

  • wayne

    Superb article. I learned a few things I had been missing in creating my own email designs. Thank you.

    I do however have a small bit of (hopefully) constructive criticism for the author. It only takes a few Google searches, and less than two minutes to learn both the differences and correct usage of the following words:

    • there
    • they’re
    • their

    Again, thank you for the great article. Your content was spot on.

  • http://www.lonegrainger.com/ Brandon

    Really enjoyed this article. It was very helpful. Thanks for all your work!

  • http://bloggerarticle.com/ Blogger Article

    very good advice because it would make email more interesting to read .. thank you very much..