views:

276

answers:

3

I am using php and mysql.

Each time an user register on my website, I will use php mail() to send a single email for authentication.

Recently I found out that, a lot of yahoo and hotmail users are not activated their accounts, lets say upon 1000 users, only 200 are activated. I am curious, and I try register using my hotmail account. To my surprise I didn't get the activation email.

Is my domain being blocked from sending email?? How to solve this problem? I tested my others email account (my company and gmail), it works fine. I think only yahoo and hotmail give me problems!!

Please help, its been few days, I have lost a lot of potential customers, I don't want to lose it anymore!!

+3  A: 

Sire, Google is your friend. In short, there is no simple answer to your question. Email delivery is not very trivial, especially since it does not depend on your programming entirely.

99% is your host fault. If your are VPSing, or on shared hosting - you can forget about it since you are inheriting reputation of other 300 people using the same server.

If you own your server, check your IP reputation and then figure that you will need 2-3 months of flawless emailing to start getting through.

If you have 5K to blow a month, use ReturnPath OR just someone like CampaignMonitor or MailChimp ESPs to deliver your emails.

DEBUG: If you have root/shell access, try the following:

  • "dig mx yahoo.com" from shell
  • copy first or second authorized answer
  • telnet (IP/domain) 25
  • manually emulate SMTP conversation like this
  • Paste what the Yahoo mail server tells you here

P.S. If you are getting into spam folder, congrats! Typically your mail will be dropped at SMTP level, quietly. Worse even you will get deferred SMTP errors from Yahoo : that means they throttle you because they do not have enough data on your complaint ratios.

P.P.S. Setup DNS records to include SPF, and also push DKIM signing for your MTA. This will help greatly when you will try to prove your legitimacy.

P.P.P.S. Use http://www.senderbase.org/ to look up your IP first.

Good luck.

Terry Felkrow
Should I contact my host? in my email content, i have 3 links, activate, company and delete account link. Is that considered spam content? (well, i dont think so, cuz I was follow other website email content)
mysqllearner
Do you have a shared hosting, VPS or dedicated?
Terry Felkrow
Use this site (http://www.senderbase.org/) to look up your domain/IP, see what the blacklists tell you
Terry Felkrow
Added debug section on top, try that and post back
Terry Felkrow
Ok, i am trying the debug now
mysqllearner
Well, I am not sure why. But it seems like yahoo can went through now. Weird!! Anyway, thanks for the help.
mysqllearner
Great! Don't forget during peak hours your emails will take awhile to get through.
Terry Felkrow
A: 

If me, I will register my custom domain to google apps, and will open an gmail account with own domain.

Then I will send email through google mail server. Its hard to goes into spam folder, unless your domain is in blacklist or some reasons.

Here is the hello world sample of sending email through google's mail server.

$user=$from="[email protected]"
$to="[email protected]"
$passwd="[email protected]'s password"

require_once 'Mail.php';

$params = array(
'host'=> 'tls://smtp.gmail.com','port'=> 465,'auth'=> true,'debug'  => false,
'username' => $user,
'password' => $passwd
);

$smtp = Mail::factory('smtp', $params);
$smtp->send($to, array('From'=>$from,'To'=>$to), "Hello World!");

sorry, If you dont want to do like that.

S.Mark
People like you break the Internet!
Terry Felkrow
Agree with Terry. But, thanks for the answer though
mysqllearner
Well, main point is to work properly and need to think for customer, isn't it? I don't think its bad idea to use google email server.
S.Mark
yes and no. If enough spammers use this hack, something worse in terms of "filtering" will get implemented. Example: email stamps. Do you want to pay to send emails? No? Well people that use tricks may as well cause this.
Terry Felkrow
ah ok, you talking from the side from spammer. ok, absolutely true. but I still believe he and me is not spammer :D
S.Mark
Yep, I am not spammer. lol Thanks guys
mysqllearner
A: 

It's all about fighting spam... You probably need to setup an sender policy framework records... Hotmail uses SenderID

http://postmaster.msn.com/Guidelines.aspx
http://www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx
http://www.openspf.org/

Good luck!

Ben