我有发送邮件的代码
$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
以外的任何邮件提供商发送邮件。
这可能是什么原因
答案 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不在阻塞池中,
另外,请确保您不在任何阻止列表中。
知识产权声誉很重要并且会随着时间的推移而得到改善。