[英]Cant send mail to @gmail
我有此代码用于发送邮件
$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
以外的任何邮件提供者发送邮件。
这可能是什么原因
与其他情况一样,我的猜测是您的邮件已发送到SPAM文件夹。 但是尚不清楚此脚本在什么计算机上运行。 这是您的localhost测试环境还是其他隔离的开发服务器? 还是功能正常的生产服务器?
如果这是一个localhost或其他隔离的测试环境,我猜测Gmail甚至可能是AOL都将您的邮件作为潜在的SPAM进行阻止。
但是,如果这是面向前的生产服务器,则该问题很可能是由于机器所在的IP地址缺少PTR(aka:反向DNS记录)引起的。
如本网站所述 。
PTR记录主要用于检查服务器名称是否实际上与从其发起连接的IP地址相关联。
这意味着,如果许多邮件服务器无法将有效的PTR记录连接到域,则它们会将它们简单地标记为垃圾邮件。
另外,如果这是具有多个IP地址的生产服务器,则您的SPF(发送方策略框架)记录可能存在问题。 在此网站上阅读更多内容 :
更准确地说,SPFv1允许域的所有者指定其邮件发送策略,例如,他们使用哪些邮件服务器从其域发送邮件。
因此,SPF记录是一个DNS记录,基本上说:“好吧,您认为您是来自xyz.com
IP地址1.2.3.4
的电子邮件? 让我查看您的SPF记录,嘿! SPF记录说, xyz.com
从IP地址1.2.3.4
发送的任何电子邮件都很酷! 您不是垃圾邮件。”
尽管还有其他一些因素,例如在处理电子邮件时延迟发送或接收,但我非常有信心解决您从其发送的IP地址的PTR和SPF状态将清除此问题。 这不是编码问题,而是您身边的网络和邮件基础结构配置问题。
由于垃圾邮件,电子邮件提供商对接受邮件的要求越来越严格。
如果您使用共享主机,则该电子邮件服务器的信誉可能很差,您可能必须更改提供商或使用其提供的任何邮件服务。 电子邮件支持可能是一个好的开始
很多时候,邮件没有被完全阻止而是被延迟。 我会等一会儿,然后检查电子邮件是否到达那里。 我还要检查邮件队列,看看电子邮件的状态是什么
确保您具有适当的DNS记录:_ dkim _ spf _ dmarc
确保设置了反向DNS,并且该IP不在阻塞池中,
另外,请确保您不在任何阻止列表中。
IP信誉至关重要,并且会随着时间的推移而不断提高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.