Sunday, May 11, 2008

Designing around spam filters

A guide on email newsletter design wouldn’t be complete without a section on spam
filters. You have to design your emails a certain way, if you want your messages to make
it past them. But you can’t go overboard, either. Spam filters can smell fear. If you try
too hard, they know it, and they attack. So just be cool, act normal, and don’t make any
obvious mistakes.
How anti-spam systems work
Before getting into the nitty-gritty design tips, you need to know how all the various
anti-spam mechanisms work out there. Once you get an overall understanding of how
they work, designing around them will be much easier.
Bayesian Filtering
This is one of the most important ones to learn about, since it’s installed in so many
email applications these days (like Outlook, Mozilla Thunderbird, and Apple Mail).
Bayesian filters work by watching users classify email as “junk”
(such as when they click a “this is spam” button). It reads the junk
mail, compares it to other emails you called “junk,” and looks for
common traits in the subject line, the content, the hyperlinks, the
sender, etc. Over time, Bayesian filters learn to scan for those “traits”
in every email message you receive. Every time they find something
that looks “spammy,” they assign a “score” to it. For instance, using
“Click here!” might get you 0.7 points. Using bright red fonts might
get you 2 points. Including the word, “mortgage” might get you 1 point, but using the
word, “Viagra” will get you 5 points. Once an email exceeds some threshold (set by the
user), the email is classified as spam, and thrown into the junk folder. It’s amazing how
many different things Bayesian filters look for. To read some, go to the MailChimp Blog
and search for “Funny Spam Assassin Criteria”
MailChimp also comes with a spam filter checker (look for the “Inbox Inspector” under
our Account tab). It’ll tell you exactly what your email’s spam score is, and what you
need to change if you want to improve your chances with spam filters.
Black Lists
A while back, some server admins got really, really, angry at all the junk mail they
received. So they started to track the IP addresses of the servers that sent them spam,
and put them on “blacklists.” Anytime they received email from a server on their
blacklist, it was deleted immediately. It worked pretty well. So they started to share their
lists with other server admins. And other admins started to add on to those blacklists.
Pretty soon, the blacklists got very, very big. Large ISPs started to sync up with them. If
you send email that’s very “spammy” you could end up on one of these blacklists
(whether the recipients are opt-in or not). Once you make it on to a blacklist, good luck
getting off. Geeks are notoriously difficult to negotiate with (we know, because we’re
geeks). This is why you need to make sure you only send to recipients who gave you
verifiable permission to email them, and you need to have proof that each one of them
opted in to your list (such as through a double opt-in system). Want to know the easiest
way to get blacklisted? Let your company’s sales team blast out an email newsletter to a
list of “prospects” that they collected from conferences, and that they scraped off of
websites. You’ll get blacklisted, guaranteed.
Email Firewalls
Managing email servers (and incoming spam, viruses, and phishing attacks) can be a lot
of work. So large corporations usually install “email firewalls” (Google the terms,
“Barracuda Firewall” or “Postini” for some examples) to handle their incoming email.
Think of them as “spam filters on top of spam filters.” They’re big, heavy-duty
gatekeepers, and they’re not friendly at all.
They often use a combination of Bayesian-style/adaptive filters, community reporting,
blackhole lists, and a little bit of proprietary “magic pixie dust” to keep spam out of the
company. Most of the time, when your email’s not getting through to a larger company,
it’s their firewall. You can think of these firewalls as kind of Xenophobic and paranoid.
They’re all twitchy, and tend to ask questions like, “Okay, is this sender new to me? Why
is he sending copies of the same, exact email, to a bunch of people in our company?
Spammers do that kinda stuff. Hmm, how long has their server been around? Can I
really trust this sender?” Spam firewalls are usually only a problem when you first start
sending campaigns to a big client or something. You’ll experience some deliverability
issues in the beginning, because you’re “new.” They’ll eventually “learn” to let you
through. To expedite things, you may have to ask the IT people in charge of the firewall
to “white list” your IP Addresses (or the IP address of your email service provider).
If you’re interested in learning more about email firewalls, search for “email firewalls” at
the MailChimp blog:
http://mailchimp.blogs.com
Challenge/Response Filters.
These are more common among “at-home” recipients (because they’re too intrusive to
use at work). When you send email to someone with a challenge/response filter, here’s
what happens. If you are not
already in that person’s “buddy
list” or “address book,” then
you’re considered a stranger to
him. And if you’re a stranger, you
could be a spammer. So their
challenge/response filter sends
you an automatic reply with a
question that you have to answer,
or some link you have to click
(this is to prove you’re a human,
and not a spambot). The screenshot you see to the right is an example of a typical
challenge/response reply, from Spamarrest, a very popular vendor.
The thing to remember here is that you have to be “white listed” if you want your emails
to get through. So when people fill out your opt-in forms on your website, ask them to
“please add our email address to your address book...” Use your opt-in process as a way
to “set expectations” and get “whitelisted” up front. Whenever you send a newsletter,
make sure the “reply-to” address that you use is valid, and that a human checks it after
each campaign. You can expect to receive a couple auto-replies like this after every
campaign you send. Whenever we send our MailChimp Monkeywrench newsletter, we get
about half a dozen of these autoreplies. I have to manually click each one of them if I
want the email to get delivered.

Labels: , , , ,

Common Mistakes to Avoid

Here are some of the most common mistakes people make when coding HTML emails:
1. Not coding “absolute paths” to their images. Remember, attaching graphics and
using “relative paths” won’t work. You need to host the images on your server,
then link to them in your code.
2. Using JavaScript, or ActiveX, or embedding movies. That stuff just doesn’t work
in HTML email.
3. Getting over ambitious with designs. Designing HTML email isn’t the same as
designing web pages. You can’t have all the CSS-positioning, DIVs, DHTML, and
complex, embedded tables like you can in web pages.
4. Forgetting---or refusing---to include an opt-out link. It’s stupid and
unprofessional not to allow recipients to unsubscribe from your list. Oh yeah, it’s
illegal, too. Be sure to read and understand The CAN-SPAM Act of 2003.
6. Letting your permission “grow cold.” If you’ve been collecting opt-ins at your
website like a good email marketer, but you haven’t sent an
email in several months, your subscribers have forgotten all
about you. So when they receive a full blown email newsletter
from you “out of the blue” they’re going to click their “this is
spam button” in their email application (related blog post: Surviving the inbox
whack-a-mole game). Don’t let your permission grow cold. Send occasional
emails. If you’ve been collecting emails for years, and you’re only just now
sending your first email to everyone, you should send a little “re-invitation” to
your list. Something like, “A really long time ago, you subscribed to my email list.
Well, I’ve finally got some time to start sending my really cool newsletter, and I
want to make sure you still want to receive it. Click here to sign up...” At the very
least, send an email and place some kind of text at the top that reminds them of
where and when they opted in. People usually forget about opting-in to
something after about 6 months or so.
7. Sending to a list without permission. This is the worst offense. Lots of
“innocent” marketers, who “mean well” commit this heinous crime. Here are
some common ways legitimate marketers can inadvertently become known as
“evil spammers:”
Getting an email list from a tradeshow. “But I’m exhibiting there, and the
tradeshow host said it would be okay, and when people purchased
tickets, the fine print said that we could email them, and...” Nope. You’re
spamming. Don’t do it. If they didn’t give you permission to email them,
they didn’t opt-in to your list. If they didn’t opt-in, you’re spamming.
Even if you can legally send them email marketing, those recipients are
more likely to report you for spamming them. Then, you’ll get
blacklisted. Plus, your company will look really slimy. Don’t do it. If a
tradeshow host is collecting email addresses, then they should be doing
the emailing. It’s all about permission, and setting expectations.
• Getting a list of “fellow members” from some trade organization. Just
because they joined a club, and the club posted contact information so
everyone could keep in touch with each other, it doesn’t mean each
member gives you permission to send them newsletters and offers. If you
sent them a personal greeting from your own email account, they
probably wouldn’t mind. That’s what the organization’s “members list” is
for. But add them to a list and send them a huge email newsletter, and
you’ll be reported for spamming. Don’t do it.
• They go to events, and swap business cards. The business cards just get
thrown into a “prospects” pile. Years later, they get an intern to finally
type all the contact info from those cards into a database. Then, one day
out of the blue, they send a big, fat email newsletter to everyone. As if
they actually want to hear from you! Trust us, they don’t.
• Fish bowl of business cards. Similar to the example above, but they hold
an event, and collect business cards in a fishbowl to win a “door prize.”
The people who dropped their business cards into the bowl wanted the
coffee t-shirt you’re giving away (plus all the fame & glory). They didn’t
opt-in to your list.
8. Using a WYSIWYG to “code” your HTML. WYSIWYGs are notorious for generating
absolutely horrible HTML. They insert so much junk code, it’s unbelievable. Even
the ones that generate “clean” code don’t know how to “rig” things to work in
email applications (like sticking your embedded CSS below the body tag). To
code HTML email properly, you need to learn a little HTML. It’s really not that
hard. Plus, you can download free HTML email templates at our website:
http://www.mailchimp.com/resources/templates/
Forgetting to test. Thoroughly. When you send HTML email, you’ve really got to
test it in as many email applications you can. Then you have to test on different
operating systems. Then different ISPs (we’ll explain shortly). If you keep things
simple, and build a rock solid, thoroughly tested template for each newsletter,
you won’t have to test so much. But you should always send at least a few
campaigns to yourself before sending it out to your entire list.
10. Sending nothing but a big, gigantic graphic as their HTML email. Sigh, that’s
what spammers do. And since most email programs block images by default,
what do you think your recipients see when (if) they open your email? Many spam
filters will block your email if you don’t have a healthy balance of images and
text.

Labels: , , , ,

Plain-text Email

Don’t forget your plain-text email! You need it for people who can’t (or won’t) view
HTML. Sometimes, the plain-text version of your email is the one that gets displayed if
your recipient checks his email on his mobile device.
If you don’t take the time to create the plain-text version of your HTML email, you’ll just
look like a lazy spammer (spam filters will penalize you for only sending HTML). When
you send a campaign in MailChimp, you’ll need to create both versions of your message
(HTML & Plain-text). Then we “bundle” them together in “multipart format” and send
them off. Your recipients’ email applications then decide which version to display.
The Art of Plain-text email
There’s definitely an art to constructing your plain-text email. You can’t just use the
same text from your HTML email. It has to be formatted juuuust right, so the best way
to do it is to build it from scratch, or copy-paste the content from your HTML email, then
reformat it heavily.
Here are some tips for your plain-text emails:
1. Use a plain text editor, like TextWrangler for the Mac, or Windows NotePad.
Don’t use something like Microsoft Word, because it won’t give you the kind of
“raw” text files you need. You need an application that gives no formatting
whatsoever.
2. If you’re using MailChimp, create a plain-text message in your text editor, then
simply copy-paste it into the “plain text message” field in MailChimp. No
uploading required. Or, you can just type straight into MailChimp’s interface.
One thing I like to do is pop-up preview my HTML email, highlight all my content,
then paste it into the plain-text field in MailChimp. Then, I go and reformat
everything.
3. By default, some email applications start to wrap your plain-text messages at
about 60 characters or so. That’s not really a big deal to most people. Just let
your text wrap wherever their email programs want it to. But if you have content
that you absolutely do not want to wrap unexpectedly (like in the middle of a
hyperlink), one nice little trick is to type a letter 60 times across the top of your
message, and use that as your visual “ruler.” As your content approaches the end
of that ruler, hit your return key and “hard wrap” the line. Again, this is only if you want very strict formatting. These days, I let my plain-text emails just wrap
fluidly.
4. People don’t read email. They scan email. Especially plain-text email. So make it
really easy to find important information with bullet points and visual markers
(see screenshot below)
5. You can’t code a clickable link with plain-text email. You just have to type out
the entire URL. Some email applications will make it clickable automatically.
Some won’t.
One thing we’ve noticed is that a lot of people spend so much of their time on the HTML
version of their message, they’re too “drained” to work on their plain-text email (we’re
guilty of that ourselves). So they either ignore it, or they slap some junk in, or they
“cheat” a little, and type in something like, “Evidently, you can’t view HTML email, so
visit this URL in your browser to see our newsletter in all its glory.” We think this is a big
mistake. So don’t put all your energy into the HTML version of your email. Save some
love for your plain-text message too. If you find yourself spending so much time coding HTML that you’re too pooped to make a plain-text email, you should consider setting up
one re-usable template that you can just select, and “fill with content” every campaign.
No need to reinvent the wheel for every campaign.

Labels: , , ,

Anatomy of a Good, Healthy HTML Email Newsletter

Your company name in the “From.” Recipients should recognize who the email is
from instantly. It can’t be deceptive in any way (duh). If a recipient has to strain
his brain to remember who you are, he’ll click “this is spam” instead of opening.
2. A relevant subject line (don’t be “spammy”), with your company or newsletter
name in it. So they instantly know who the email is from, and what it’s about
(hence, “subject” line).
3. The “To:” field of your email should be personalized to the recipient’s name, not
their email address. MailChimp lets you “merge” recipient names into this field, if
you have it in your database. You would insert *|FNAME|* *|LNAME|*, for example. Search our help documents for “merge tags” if you want detailed
instructions.
4. A one-click opt-out link that removes people from your list immediately.
Consider placing it at the top of your email (as well as in the footer), so that
people who want off your list can find it really easy (instead of clicking their
“Junk” button). If you use MailChimp’s Managed List functionality, you would use
our *|UNSUB|* tag to generate your unsubscribe link (it’s required in every email
you send from our system). Any recipient who clicks it will be instantly removed
from your list. If you use our built-in HTML email templates, we insert that link
into the footer for you (no coding required).
5. In addition to your opt-out link, you might also include a link in your header for
recipients to “view this email in your browser.” Point it to an archived version of
your email on your server. This helps if the email got forwarded to friends, and
then got mangled along the way. MailChimp automatically keeps an archived
version of all your campaigns on our server. You can just use our *|ARCHIVE|* tag
in your emails to link to yours. If you use our built-in HTML email templates, we
automatically place this link at the top of all your emails.
6. A link to your company’s privacy policy should be in your email. If you don’t have
a privacy policy, you can use the DMA’s privacy policy generator. Google the
phrase, “DMA privacy policy generator”
7. Your valid, physical mailing address (P.O. Boxes aren’t good enough), and as
much contact information as possible. The more contact information you
provide, the more reputable your email will look.
8. Bonus: It’s a really good idea to also include some kind of reminder text, like
“You are receiving this email because you signed up at our website.” People
forget opting-in to lists, and they get a little trigger-happy with the “this is spam”
button. That can get you reported to the major ISPs, so you want to prevent that
as much as possible. Also, in the rare case that a recipient reports you to an antispam
organization, having this reminder text can make the difference between a
server admin blacklisting you forever, or contacting you for further explanation.
If you use our built-in email templates, MailChimp inserts that reminder text into
your email footer automatically.

Labels: , , , ,

Background Colors

Remember when we told you (above) about how browser-based email services (like
Yahoo!Mail and Hotmail) strip out your tags? That’s
what you need to remember when coding your background colors and images. You normally specify that stuff in your tag, but you can’t rely on that with HTML
email. You’ll need to create a big, 100% wide “table wrap” around your email. Set your
background color in that table, and use some CELLPADDING as needed. If you’re into
CSS, you might be tempted to use a div instead. But we’ve seen DIVs break quite
frequently in email applications, so we don’t recommend them.

Labels: , , ,

Flash, (and JavaScript, ActiveX, movies, and other stuff

You can deliver HTML emails with Flash in them, but most recipients won’t be able to
view them. Not unless they’re using an email program that uses a browser to render
their HTML email. Microsoft Outlook was a program that used Internet Explorer to
render HTML email, so Flash would sometimes work there. But Microsoft Outlook 2007
is no longer going to use IE to render email. They’re using Microsoft Word instead, so
Flash is not going to work there anymore. Anyways, most anti-virus applications block
the code used to embed Flash movies, and they block JavaScript, ActiveX, and even
background music files. All that stuff has been used in the past to spread viruses, so it’s
commonly blocked now.
Point emails to landing pages
If you’ve got a great animation or movie to show to your recipients, just send a simple,
intriguing GIF or JPEG graphic in your HTML email, then link it to a “landing page” on
your website with the animation in it. Same goes for JavaScript, ActiveX, and movie files.
Anti-virus applications block them from running. So fancy rollover or pop-up navigation
and streaming videos just aren’t going to work either. The only email application on our
test machines that will actually play fancy stuff (like Flash and movies) seems to be
Outlook 2000 (which is kind of old, these days). Unless you know for a fact that every
single one of your recipients uses Outlook 2000, and you know their anti-virus
applications won’t block your stuff from running, don’t send Flash, JavaScript, ActiveX,
or movies in HTML email. Just won’t work reliably.

Labels: , , ,