I am having terrible problems with sending emails via PHP to Hotmail and Yahoo. I am sending through PHPMailer which is supposed to make delivery more reliable. They keep ending up in the spam boxes.
It is software I am distributing so I have to make sure the emails will definitely send. I can't rely on whitelisting IP addresses or anything like that.
When I send the emails as plain text they end up in the Hotmail inbox and Yahoo spam box. Then all I did was change to sending them as html and guess what, they go to the Hotmail spam box and Yahoo inbox.
These are the things I have concentrated on that I have heard could make a difference:
- Focus on not using "spammy" words
- Sender email address is the same domain the email is being sent from
- Proper return-path header
Does anybody have any advice for me?
Have also had similar problems, how do you find out if your SPF, DomainKeys and senderID are all ok ?
I have just implemented SPF. If you look at the message source on Gmail you will see a line like this if the SPF check has passed:
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;
I have done SPF and quoted-printable but the problem still remains. There are no attachments either.
The body of the two emails is identical, but if it is sent as plain text it goes to the Hotmail spam box and Yahoo inbox. If it is sent as html it goes to the Hotmail inbox and Yahoo spam box.
I know they don't give away their spam check algorithms for obvious reasons, but I really wish they would give you a clue as to what is triggering the message being labelled as spam.
Have you tried sending as both plain text and html in the same e-mail,
using Content-Type: multipart/alternative ?
It seems to be working OK now.
Yahoo and Hotmail must used cached SPF data whereas Gmail seems to use fresh data.
Either way it is all fine now.
Now just to explain to all my users how to get their SPF records sorted out.....