5
votes

I am using the following code to send out a Multipart/Alternative HTML and Plain Text email. The emails are sending fine content wise, however some of them are getting caught in spam filters. This is the code I am using.

$notice_text = "This is a multi-part message in MIME format.";
$plain_text = "Some Plain Text Here\n\n";
$html_text = '<html><head><title>Sample HTML Email</title></head><body>';
$html_text .= '<p>Some text will go here.</p>';
$html_text .= '<p><img src="http://www.mydomain.com/img/offers.jpg" /></p>';
$html_text .= '<p>Can\'t see the images? <a href="http://www.mydomain.com/print_offer.php?promo=' . $promo_code . '">Click here</a></p>';
$html_text .= '</body></html>';

$semi_rand = md5(time());
$mime_boundary = "==MULTIPART_BOUNDARY_$semi_rand";
$mime_boundary_header = chr(34) . $mime_boundary . chr(34);

$from = "Test Email <[email protected]>";
$subject = "Get Your Offers Here";

$body = "$notice_text

--$mime_boundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

$plain_text

--$mime_boundary
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

$html_text

--$mime_boundary--";

mail($email, $subject, $body,
    "From: " . $from . "\n" .
    "bcc: " . $bcc . "\n" .
    "MIME-Version: 1.0\n" .
    "Content-Type: multipart/alternative;\n" .
    "     boundary=" . $mime_boundary_header);

What is causing it to go into spam filters? When I send the email as a plain text they go through just fine, it is only when I send the HTML email that they are getting caught. Any help would be appreciated. Is there more I can add to the headers to help with spam filter prevention?

2
"Get Your Offers Here" -- that sets off my internal spam filter.George Cummins

2 Answers

5
votes

Many spam filters use a cumulative scoring system to decide whether an incoming message is spam. Individual "spammy" problems may slide through, but if several of them are present in a particular email, a threshold reached and the message is dumped.

In your message, I see a few things that may increase your score:

Subject: "Get Your Offers Here"

Solution: Try including specific text about the contents of your email and consider including your company name

and

From: "Test Email: [email protected]";

Solution: Use a real email address. Also, make sure the server you are sending email from is configured properly (see SPF)

and

Content: Unknown

Solution: Make sure your content is specific and relevant. Make sure any links point to the domain from which the email originated. Avoid using too many "spammy" keywords ("offer," "free," "l@@k", etc.).

You can perform a smell test on your own emails. Remove all references to your company and products and enter generic terms. Consider the result to see if you would delete the message if it arrived in your mail box.

2
votes

The direct link to your image file also scores very high on spamdar.