如何使用php发送电子邮件而邮件不会自动进入垃圾箱

Ale*_*der 1 php email recycle-bin phpmailer

我正在使用PHP的mail()函数发送一些电子邮件。但是我所有的邮件都会自动放入垃圾箱。有办法防止这种情况吗?如果是这样,我应该在哪里阅读以了解更多信息。

您会推荐我使用PHPmailer吗?

最好的问候,亚历山大

Sco*_*ive 5

不要自夸,但我是邮件服务器工程师。垃圾邮件过滤器会在电子邮件中查找许多“问题”,并为每个小问题添加“要点”。如果这些问题加在一起,那么该电子邮件可能是(以下任何一项):在SMTP期间被拒绝,被路由到Spam文件夹,被路由到Inbox,但被标记为“ SPAM ”(被神秘丢失)。

为避免此问题,您想修复几个问题,这将减少垃圾邮件得分或垃圾邮件策略冲突。如果您想获得最佳结果,则想自己开辟一条路,实际上学习一些有关“通过电子邮件发送最佳做法”的知识。

1问题是:不要从Web服务器上的PHP脚本向收件人发送电子邮件。无论如何,不​​是直接给接收者。

由于formmail.pl的安装不安全等原因,反垃圾邮件软件很早就学会了不信任基于Web的电子邮件。

从Web服务器发送电子邮件的正确方法是通过有效邮件服务器上的有效邮箱发送电子邮件。因此,如果您的网站具有电子邮件托管,请创建一个名为“ website-notification@websitedomain.com”的邮箱。随便叫什么。现在,您希望PHP脚本使用Authenticated SMTP通过该地址发送电子邮件。我将剩下学习如何从PHP使用身份验证SMTP的过程作为学习练习(在线上有许多教程)。

通过有效的SMTP服务器发送电子邮件后,也许可以更好地传递电子邮件。.但不要止步于此。在其他一些电子邮件传递域中,您仍然可能遇到相同的问题...

2)就像其他人指出的那样,请确保您不缺少收件人:发件人:主题:和日期:日期必须为电子邮件的标准日期格式,否则某些垃圾邮件过滤器会对其进行标记。如果您缺少任何标头,则会被标记为垃圾邮件点。

3)您的FROM地址必须是一个有效邮箱。不要使用“发件人:noreply@yourdomain.com”发送电子邮件。发件人地址必须存在,因为某些反垃圾邮件软件会执行“发件人验证”来测试发件人地址是否是虚假或伪造的。

在您的邮件服务器上,创建noreply @。没有人说您实际上必须检查该邮箱...您可能有一条规则可以自动删除不受监视的地址上的所有邮件。关键是,如果其他邮件服务器在连接到MX并测试该邮箱时获得“ 550 No Such User”(550没有此类用户),则您的电子邮件可能被标记为垃圾邮件。

4)如果您的域DNS有SPF记录,请100%确保它列出了可能为您的域发送电子邮件的每个IP。如果不确定,请不要使用SPF记录,因为不良的SPF记录会损害交货率。

5)不要使用“域注册隐私”或“域代理”服务,这些服务会从WHOIS中隐藏您的联系信息。任何合法的电子邮件发件人都无需隐藏域的联系信息。垃圾邮件过滤器将对此进行检查。

6)了解您的邮件服务器的IP地址,并定期检查它是否在SpamCop,SpamHaus或梭子鱼垃圾邮件黑名单中未被“黑名单”。谷歌更多。

希望我的回答对您有所帮助,并传达出没有简单的答案。这些天,如果您要发送电子邮件,则必须注意这些问题。