无法向@gmail发送邮件

时间:2014-01-10 12:19:34

标签: php email

我有发送邮件的代码

$to = "account@gmail.com";
$subject = "mail title";
$message = "mail content";

$from_mail = "sender@site.com";          

$headers = 'MIME-Version: 1.0\r\n'.
           'From: '.$from_mail.'' . "\r\n" .
           'Reply-To: '.$from_mail.'' . "\r\n" .
           'Content-type: text/html; charset=utf-8' . "\r\n";
           'X-Mailer: PHP/' . phpversion(); 

此代码为除@gmail以外的任何邮件提供商发送邮件。

这可能是什么原因

2 个答案:

答案 0 :(得分:3)

我的猜测 - 就像其他人一样 - 是你的消息转到垃圾邮件文件夹。但目前还不清楚这个脚本是什么机器。这是您的localhost测试环境还是其他独立的开发服务器?或者它是一个正常运行的生产服务器?

如果这是本地主机或其他独立的测试环境,我的猜测是Gmail(甚至可能是AOL)阻止您的邮件成为潜在的垃圾邮件。

但如果这是一个面向前方的生产服务器,问题很可能追溯到机器所在的IP地址丢失的PTR(又名:反向DNS记录)。

正如on this site所述。

  

PTR记录主要用于检查服务器名称是否实际   与连接所在的IP地址相关联   启动。

意思是,如果许多邮件服务器无法将有效的PTR记录连接到域,则会将其设置为简单地将任何邮件标记为垃圾邮件。

此外,如果这是具有多个IP地址的生产服务器,则SPF(发件人策略框架)记录可能存在问题。阅读更多on this site

  

更准确地说,SPFv1允许域的所有者指定   他们的邮件发送政策,例如他们用来发送哪些邮件服务器   来自他们域名的邮件。

所以SPF记录是DNS记录,基本上说:“好的,您认为您是来自xyz.com IP地址1.2.3.4的电子邮件?让我查看你的SPF记录,嘿! SPF记录显示,1.2.3.4的IP地址发送的任何电子邮件都很酷xyz.com!你不是垃圾邮件。“

虽然在处理电子邮件时还有其他因素,例如延迟交付或接收,但我非常有信心解决PTR,并且您发送的IP地址的SPF状态将清除这一点。这不是编码问题,而是您身边的网络和邮件基础架构配置问题。

答案 1 :(得分:2)

由于垃圾邮件,电子邮件提供商对接收邮件的要求越来越严格。

如果您使用的是共享主机,那么该电子邮件服务器可能名声不好,您可能需要更改提供商或使用他们提供的任何邮件服务。通过电子邮件发送支持可能是一个好的开始

很多时候,邮件并未完全阻止,而是延迟了。我会等一会儿,检查电子邮件是否到达那里。我还会检查邮件队列,看看电子邮件的状态是什么

确保您拥有相应的DNS记录: _ dkim _ spf _ dmarc

确保设置了反向dns并且ip不在阻塞池中,

另外,请确保您不在任何阻止列表中。

知识产权声誉很重要并且会随着时间的推移而得到改善。