views:

78

answers:

3

When sending an HTML email can you link to an external style sheet or does the CSS need to be included in the email?

Also, if you can link to an external style sheet, which way is more efficient/is smarter to use: linking to the style sheet or including it in the HTML?

+4  A: 

You're best off embedding the CSS in your HTML.

I believe inline styles (added in a style attribute on each element) are more widely supported than including a <style> section, too.

I just Googled and came across this tutorial - looks pretty good at first glance... http://articles.sitepoint.com/article/code-html-email-newsletters

Chris Roberts
+6  A: 

Can you? Yes.

Should you? No. Most likely the email client will block external links and therefore your mail will not appear as you think it should.

If you must send html mail, embed everything into the email message itself. External links which automatically call back to the home server to load additional resources are one thing spam filters don't like.

Chris Lively
+5  A: 

Forget efficient. Forget smart. Forget maintainable. This is HTML mail we're talking about.

HTML mail and Webmail clients are extremely limited, partly for security reasons but mainly because they're just rubbish. External style sheets almost certainly won't work. HTML-embedded style sheets probably won't work. Inline style="..." attribute on every damn element... has a much better chance of working, but still, don't be surprised when many users can't see styles at all, or some styles don't work, or some basic HTML doesn't work, and the content ends up looking like a 1997 browser threw up all over it.

HTML mail is an exercise in unpleasantness. I hate to receive it. I hate even more to author it. The sanest route for everyone is to forget HTML mail and just send a plain text message including a link to a full web page, where you can have as much CSS, JavaScript and Flash loveliness as you like.

bobince
+1 for that first line alone.
alex
Pretty much the only place I use tables anymore is in HTML mail. Sometimes it is really the only way to get the email to display.
Bertine
+1: I wholeheartedly agree with every single word.
Chris Lively
+1: Thank you. Wish I could up-vote more.
J.Hendrix