我正在使用php和mysql。
每次用户在我的网站上注册时,我都会使用php mail()发送一封电子邮件进行身份验证。
最近我发现,很多Yahoo和Hotmail用户都没有激活他们的帐户。让我们说1000个用户,只有200个被激活。
我很好奇,我尝试使用我的Hotmail帐户注册。令我惊讶的是,我没有收到激活邮件。
我的域名是否被阻止发送电子邮件?如何解决这个问题呢?我测试了我的其他电子邮件帐户(我的公司和gmail),它运行正常。我认为只有雅虎和Hotmail给我带来了问题!
答案 0 :(得分:4)
陛下,谷歌是你的朋友。 简而言之,您的问题没有简单的答案。电子邮件传递并不是非常简单,特别是因为它完全不依赖于您的编程。
99%是您的主机故障。如果您是VPSing,或者是共享主机 - 您可以忘记它,因为您继承了使用同一服务器的其他300人的声誉。
如果您拥有自己的服务器,请检查IP reputation,然后确定您需要2-3个月的完美电子邮件才能开始通过。
如果您有5个月可以吹一个月,请使用ReturnPath或只有CampaignMonitor或MailChimp ESP这样的人来发送您的电子邮件。
DEBUG:如果您拥有root / shell访问权限,请尝试以下操作:
P.S。如果你要进入垃圾邮件文件夹,恭喜!通常,您的邮件将在SMTP级别安静地删除。更糟糕的是,即使你会从雅虎那里得到延迟的SMTP错误:这意味着他们会因为你的投诉比率没有足够的数据而限制你。
P.P.S。设置DNS记录以包含SPF,并为您的MTA推送DKIM签名。当你试图证明你的合法性时,这将有很大帮助。
P.P.P.S。使用http://www.senderbase.org/首先查找您的IP。
祝你好运。答案 1 :(得分:1)
如果我,我会将自定义域名注册到谷歌应用程序,并将打开一个拥有自己域名的Gmail帐户。
然后我将通过谷歌邮件服务器发送电子邮件。除非你的域名是黑名单或某些原因,否则很难进入垃圾邮件文件夹。
以下是通过谷歌邮件服务器发送电子邮件的hello world示例。
$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!");
抱歉,如果你不想那样做。
答案 2 :(得分:0)
关于打击垃圾邮件......你可能需要设置一个发件人政策框架记录...... Hotmail使用SenderID
http://postmaster.msn.com/Guidelines.aspx
http://www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx
http://www.openspf.org/