How to send emails and avoid them being classified as spam?

186,598

Solution 1

Be sure that your emails don’t look like typical spam emails: don’t insert only a large image; check that the character-set is set correctly; don’t insert “IP-address only” links. Write your communication as you would write a normal email. Make it really easy to unsubscribe or opt-out. Otherwise, your users will unsubscribe by pressing the “spam” button, and that will affect your reputation.

On the technical side: if you can choose your SMTP server, be sure it is a “clean” SMTP server. IP addresses of spamming SMTP servers are often blacklisted by other providers. If you don’t know your SMTP servers in advance, it’s a good practice to provide configuration options in your application for controlling batch sizes and delay between batches. Some mail servers don’t accept large sending batches or continuous activity.

Use email authentication methods, such as SPF, and DKIM to prove that your emails and your domain name belong together. The nice side-effect is you help in preventing that your email domain is spoofed. Also check your reverse DNS to make sure the IP address of your mail server points to the domain name that you use for sending mail.

Make sure that the reply-to address of your emails are a valid, existing addresses. Use the full, real name of the addressee in the To field, not just the email-address (e.g. "John Doe" <[email protected]> ) and monitor your abuse accounts, such as [email protected] and [email protected].

Solution 2

Automatically unsubscribe recipients of your message whose e-mail addresses bounce, and establish complaint feedback loops with major mail providers and automatically unsubscribe recipients who report your message as spam/junk. This will go a long way to improving your reputation and deliverability.

Solution 3

This question mentions that the basics are in place, but as we're pointing others to this as a Canonical Question I just want to be sure we cover our bases.

These minimums are essentially required these days:

  1. Make sure you have forward and reverse DNS configured correctly. A mail server has to identify itself in a HELO/EHLO exchange, that name should lookup to the IP the server is using. Similarly the reverse lookup of that IP should return the name.

  2. Make sure your server is actually sending the hostname in that handshake. Your server should not be sending an IP address.

  3. Make sure your IP address isn't on any DNSRBLs (blacklists). If it is, get that taken care of.

  4. Check the reputation of your IP with the more popular reputation services (SenderScore is a big one right now, but that might not hold up over time). These services generally have guidelines for improving your reputation, but are not an outright "go/no-go" like RBLs.

  5. Don't fake headers, don't lie in headers, and make sure you're including the minimum headers in messages (Date and From are required, there should be a Subject, Sender, Reply-To, and To/Cc/Bcc [as applicable]). This is one of my biggest pet-peves with valid newsletters I want to receive ending up in Junk because they fake an Outlook Express header, leave out the date, or something similar.

Optionally you should consider setting up SPF, DKIM, and DMARC. These help with deliverability, but are not required (not by the vast majority of e-mail servers).

Solution 4

Unfortunately there are many different filtering techniques and some major mail providers won't publish what they use and/or what weights are given to various tests/filters, so knowing how to get through is difficult. Basically spam has driven ISPs and users into a situation where they sometimes make it difficult for such legitimate messages (especially bulk messages such as your newsletter) to get through. I no longer consider email to be the half-way-reliable transport method it once was.

To be a little less negative and more helpful... As you are having specific problems with a particular client there may be things the program can tell you. I don't know specifically about outlook as I don't use it anywhere myself, but many mail filters inject headers into messages to list what filters were used, what the result was, and what the weighting given to that filter was. So if you look at the full source of the messages they did get moved to junk folders you may find useful clues. As an example, SpamAssassin based filters inject headers of the following form:

X-Spam-Flag: YES
X-Spam-Score: 13.371
X-Spam-Level: *************
X-Spam-Status: Yes, score=13.371 tagged_above=-10 required=5.4
    tests=[BAYES_99=3.5, FB_GET_MEDS=0.803, RCVD_IN_SORBS_WEB=0.619,
    RCVD_IN_XBL=3.033, RDNS_NONE=0.1, URIBL_AB_SURBL=1.86,
    URIBL_BLACK=1.955, URIBL_JP_SURBL=1.501]

(that example has been plucked from a genuine spam message in my junk pile)

This is not definite though as bayesian filtering and other methods that involve user training are common - so what your filters pass and fail may differ markedly to other people's even though the client was configured identically out-of-the-box. You might have to consider some other outlet for your news (many people are trying to use social networking protocols for this, with varying degrees of success).

Solution 5

Like others said, you want to avoid "looking" like a spam message when sending the email but you can't necessarily tell what will or won't make you look like spam because techniques vary.

One thing you might want to consider is sending a plain text email to your customers for each newsletter that actually contains a quick description/greeting followed by a "click here to view our latest newsletter!" message; that way you can host your message on a web server, you're reducing the size of emails (and load on your mail server) and as a bonus you can check the logs on your web server to get feedback on just how many customers are actually reading your messages vs. deleting them.

Share:
186,598

Related videos on Youtube

kcode
Author by

kcode

Updated on September 17, 2022

Comments

  • kcode
    kcode almost 2 years

    This is a canonical question about how to handle email sent from your server being misclassified as spam. For additional information you may find these similar questions helpful:

    Sometimes I want to send newsletters to my customers. The problem is, that some of the emails get caught as spam messages. Mostly by Outlook at the client (even in my own Outlook 2007).

    Now I want to know what should be done to create "good" emails. I know about reverse lookup etc., but (for example), what about a unsubscribe link with an unique ID? Does that increase a spam rating?

  • kcode
    kcode almost 15 years
    This is very interesting. I did not know anything about these feedback loops. Do all providers offer such a program?
  • Admin
    Admin almost 15 years
    Not all providers, no. But most of the major ones, including Yahoo and AOL and others. All of the complaint feedback loops I'm aware of require that messages are sent from a domain which is authenticated by DKIM or DomainKeys. I believe some also require SPF, but less commonly.
  • Ernie
    Ernie almost 15 years
    Hmm. I've never seen a spammer use that tactic before...
  • user1364702
    user1364702 almost 15 years
    Generally straight text with a legitimate link or two (not a lot sprinkled liberally) tends to get through...otherwise I can't email links to myself or other people without them getting flagged as spam. It's like saying that you've never seen spammers sent instant messaging with "dirty words" to entice people to respond. Legit traffic does it too. The key is not to be "too spammy"...a username like bevans is probably not as suspicious as "hottienakedchick69", even if the content is the same, you know what I mean?
  • John Gardeniers
    John Gardeniers almost 12 years
    That's a workaround. A proper solution would be to rectify your faulty system and ensure you at least have a proper SPF record in DNS.
  • Krista K
    Krista K almost 12 years
    Actually, if the ISP your mail server is on gets black-flagged as spam, good luck with that. We were on Rackspace at the time. Using Google as the SMTP helped since Google made sure it is not black-listed.
  • hookenz
    hookenz about 11 years
    And use multipart/alternative versions of your html email that contains just text only. It means the spam scanner will have more useful stuff to go by when classifying it.