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

您会建议我使用phpmailer吗?

最好的问候,亚历山大

有帮助吗?

解决方案

我想您的意思是在接收器的末端进行打击框。因此,基本上,接收电子邮件服务器将其作为垃圾邮件。如果:

1)您发送的IP已经被黑名单用于垃圾邮件(经常发生在共享托管中)

2)IP和域相对较新且未知。

(请注意,很多次,来自良好网站的新闻通讯也最终出现在垃圾邮件中)。

如果是您的专用IP,则为IP设置RDN,以匹配域名,很可能会解决该问题。另一个通常的做法是提醒接收器(如果她在您的网站上订阅)以检查其thrash/spam文件夹,并在他们的邮件帐户中您的电子邮件地址。

问候,

J.P

其他提示

不夸耀,但我是邮件服务器工程师。垃圾邮件过滤器在每个小问题中寻找许多“问题”,并为每个小问题添加“积分”。如果这些问题中有足够的问题加起来,则该电子邮件可能是(任何):在SMTP期间拒绝,路由到垃圾邮件文件夹,路由到收件箱,但标记为“垃圾邮件“黑人(神秘地迷失)。

为了避免此问题,您想解决一些问题,这将减少您的垃圾邮件分数或垃圾邮件政策冲突。您想竭尽全力学习一些有关“电子邮件最佳实践”的知识,如果您想要最佳结果。

1个问题是:不要从网络服务器上的PHP脚本发送给收件人。无论如何,都不直接向收件人。

由于formmail.pl等的所有不安全的安装,反垃圾邮件软件很久以前就学到了不信任基于网络的电子邮件。

从Web服务器发送电子邮件的正确方法是通过有效邮件服务器上的有效邮箱发送电子邮件。因此,如果您的网站有电子邮件托管,请创建一个名为“网站notification@websitedomain.com”的邮箱。称其为您喜欢的东西。现在,您希望使用经过身份验证的SMTP发送电子邮件 - 通过该地址。我将离开学习如何使用PHP身份验证的SMTP作为您的学习练习的过程(在线有很多教程)。

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

2)正如其他人所指出的那样,请确保您不会缺少:来自:主题:和日期:。日期必须采用电子邮件的标准日期格式,否则某些垃圾邮件过滤器将标记它。如果您缺少任何标头,则将被标记为垃圾邮件点。

3)您的地址必须是一个有效的邮箱。请勿使用“来自:noreply@yourdomain.com”发送电子邮件。从地址必须存在,因为某些反垃圾邮件软件将执行“发送者验证”以测试来自地址是虚假还是假货。

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

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

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

6)知道您的邮件服务器的IP地址,并定期检查它在Spamcop,Spamhaus或梭子鱼垃圾邮件垃圾邮件黑名单中是否没有“黑名单”。 Google更多。

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

JP的答案部分是正确的,但也可能是您从经验中知道的电子邮件中的标题,这将把东西发送到垃圾邮件文件夹,请尝试以下内容;

将电子邮件设置为您的域,类似于无需复杂或有效的答复。

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

这可能与您的邮件客户端和垃圾邮件设置配置有关。尝试开设帐户 gmail.com 并在此处发送电子邮件,如果可以的话,您知道这是您的邮件服务器/客户端问题。如果不是,请发布您所收到的电子邮件的PHP代码和完整的电子邮件标题。

发生这种情况是因为很多次,标题丢失了 /如果不存在众所周知的电子邮件服务器域密钥签名,或者类似的东西。如果您已经有一个单独的电子邮件服务器,则应查看是否可以使用PHP Pear Mail软件包使用您的电子邮件服务器发送电子邮件,而不是直接通过邮件功能发送电子邮件。这就是我发现方便的,因为它更灵活。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top