Sending email to yahoo and hotmail users?
I am using php and mysql.
Each time a user registers on my website, I use php mail() to send a single email for authentication.
Recently I found out that, a lot of Yahoo and Hotmail users have not activated their accounts. Let us say of 1000 users, only 200 are activated.
I am curious, and I try to 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 gma开发者_高级运维il), it works fine. I think only Yahoo and Hotmail give me problems!
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.
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="sender@yourdmain.com"
$to="receiver@email.com"
$passwd="sender@yourdmain.com'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.
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!
精彩评论