How to send emails and avoid them being classified as spam
I have been developing a PHP application and one of the features in that application is the ability to send e-mails to users. However, when I tried to send e-mails via application (SMTP) to Gmail and Hotmail accounts, they always go to Spam/Junk box. This doesn't happen when I use Google SMTP for sending them. Those e-mails were delivered properly to Inbox.
What I have done:
- Set up reverse DNS
- Set up Domain Keys (DKIM) and SPF (v=spf1 +a +mx +ip4:220.127.116.11 ?all)
- Run various IP/domain checks and I didn't see any problem there.
- Sign up to SNDS. After checking my IP, it says "All of the specified IPs have normal status".
- Contact Gmail and Hotmail supports. They did not see anything offhand that would be preventing my mail from reaching their customers and suggested me to join Sender Score Certified Mail Program (although they made no guarantees that it would guarantee email deliverability to their customers).
Sample of email header that was gone to Spam box (site name was replaced by xxx):
Delivered-To: firstname.lastname@example.org Received: by 10.50.17.8 with SMTP id k8csp200979igd; Sun, 23 Dec 2012 05:13:19 -0800 (PST) X-Received: by 10.50.53.162 with SMTP id c2mr13168931igp.112.1356268399035; Sun, 23 Dec 2012 05:13:19 -0800 (PST) Return-Path: <email@example.com> Received: from server.xxx.com (server.xxx.com. [18.104.22.168]) by mx.google.com with ESMTPS id gx9si16855394igb.34.2012.12.23.05.13.18 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 23 Dec 2012 05:13:18 -0800 (PST) Received-SPF: pass (google.com: domain of firstname.lastname@example.org designates 22.214.171.124 as permitted sender) client-ip=126.96.36.199; Authentication-Results: mx.google.com; spf=pass (google.com: domain of email@example.com designates 188.8.131.52 as permitted sender) smtp.mail=admin@xxx .com; dkim=pass firstname.lastname@example.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xxx.com; s=default; h=Content-Type:MIME-Version:Message-ID:Subject:Reply-to:From:To:Date; bh=C+NTtxJMfonnwJsUGv2YpiHXmAQt43Cmk567o37IJhA=; b=UlnRc4rM6uVp44OaPfIicZ3vgH7eKR+7E4BQwADhtVSgvlmnwlw4aqGanvUZn8jGCWJ4hdPNFY3GLWJ5uT82EM57baCL0t7yxgjWg7/CXm4IHJ0SusxWI+e5JjGBv3pd; Received: from server.xxx.com ([184.108.40.206]:38728 helo=applicationnewtest.xxx.com) by server.xxx.com with esmtpa (Exim 4.80) (envelope-from <email@example.com>) id 1Tmlwc-0004uj-GQ for firstname.lastname@example.org; Sun, 23 Dec 2012 07:50:22 -0600 Date: Sun, 23 Dec 2012 07:50:22 -0600 To: New Supplier <email@example.com> From: Distributor Bid Builder <firstname.lastname@example.org> Reply-to: Distributor Bid Builder <email@example.com> Subject: Supplier Purchase Order Email Copy Message-ID: <firstname.lastname@example.org> X-Priority: 3 X-Mailer: PHPMailer 5.0.0 (phpmailer.codeworxtech.com) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_f8c08c9269c441d7a0e04b7ba37e9adf" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server.xxx.com X-AntiAbuse: Original Domain - gmail.com X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - xxx.com X-Get-Message-Sender-Via: server.xxx.com: authenticated_id: email@example.com --b1_f8c08c9269c441d7a0e04b7ba37e9adf Content-Type: text/html; charset = "UTF-8" Content-Transfer-Encoding: 8bit This is purchase order document for purchase order #1001.<br><br><hr>P.S. This is a post-only mailing. Replies to this message are not monitored or answered. --b1_f8c08c9269c441d7a0e04b7ba37e9adf Content-Type: application/octet-stream; name="Supplier Purchase Order #1001 Email Copy.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Supplier Purchase Order #1001 Email Copy.pdf" (attachment)
Do you find anything wrong with my configuration?
While gathering information for Microsoft's JMRP program registration, I'm not sure what I should do next (if it doesn't make those e-mails go to inbox). Is it really necessary to register to Sender Score Certified program/use email delivery service? Is there a non-commercial solution for this?