如何在没有邮件自动落入垃圾箱的情况下使用php发送电子邮件

我使用PHP的mail()函数发送一些电子邮件。但是我的所有邮件都自动落在垃圾箱里。有没有办法阻止这种情况?如果是这样,我应该在哪里阅读以了解更多信息。 你会推荐我使用PHPmailer吗? 最好的问候, 亚历山大     
已邀请:
我想你的意思是接收器端的捶打盒子。所以基本上接收电子邮件服务器将其视为垃圾邮件。如果: 1)您发送的IP已经被列入黑名单以进行垃圾邮件发送(通常在共享主机中发生) 2)IP和域名相对较新且未知。 (请注意,很多时候,来自成熟网站的新闻稿也会以垃圾邮件结束)。 如果它是您的专用IP,然后为IP设置RDNS,以匹配域名将很可能解决问题。另一种常见的做法是提醒接收者(如果她在您的网站上订阅)检查他们的捶打/垃圾邮件文件夹并将您的电子邮件地址列入他们的邮件帐户。 问候, J.P     
不夸耀,但我是邮件服务器工程师。垃圾邮件过滤器会查找电子邮件中的许多“问题”,并为每个小问题添加“点”。如果有足够的问题加起来,电子邮件可能是(任何):  在SMTP期间拒绝,  路由到垃圾邮件文件夹,  路由到收件箱,但标记为“垃圾邮件”  黑洞(神秘失落)。 要避免此问题,您需要修复几个问题,这将减少您的垃圾邮件分数或垃圾邮件政策冲突。如果您想获得最佳结果,您希望尽可能地了解“电子邮件最佳实践”。 1问题是:不要从Web服务器上的PHP脚本向收件人发送电子邮件。反正不是直接给收件人。 反垃圾邮件软件很久以前就学会了不信任基于网络的电子邮件,因为所有不安全的formmail.pl等等。 从Web服务器发送电子邮件的正确方法是通过有效邮件服务器上的有效邮箱发送电子邮件。因此,如果您的网站有电子邮件托管,请创建一个名为'website-notification@websitedomain.com'的邮箱。称之为你喜欢的。现在,您希望PHP脚本使用Authenticated SMTP发送通过该地址的电子邮件地址。我将离开学习如何使用PHP中的Authenticated SMTP作为学习练习的过程(在线有很多教程)。 一旦您通过有效的SMTP服务器发送电子邮件,也许您的电子邮件更好地发送..但不要就此止步。在其他电子邮件传递域中,您仍可能遇到同样的问题... 2)正如其他人所说,请确保你没有错过To:From:Subject:and Date:。日期必须采用电子邮件的标准日期格式,否则某些垃圾邮件过滤器会标记该日期格式。如果您缺少任何标题,您将被标记为垃圾点。 3)您的FROM地址必须是VALID邮箱。请勿使用“From:noreply@yourdomain.com”发送电子邮件。起始地址必须存在,因为某些反垃圾邮件软件会执行“发件人验证”以测试发件人地址是假的还是假的。 在您的邮件服务器上,创建noreply @。没有人说你实际上必须检查那个邮箱......你可以有一条规则,它可以在不受监控的地址自动删除所有邮件。关键点是,如果其他邮件服务器在连接到您的MX并测试该邮箱时获得“550 No Such User”,则您的电子邮件可能会被标记为垃圾邮件。 4)如果您的域DNS具有SPF记录,请100%确定它列出了可能为您的域发送电子邮件的每个IP。如果不确定,请不要使用SPF记录,因为不良的SPF记录会影响交付率。 5)请勿使用隐藏您的WHOIS联系信息的“域名注册隐私”或“域名代理”服务。任何合法的电子邮件发件人都不需要隐藏域的联系信息。垃圾邮件过滤器会检查这一点。 6)了解您的邮件服务器的IP地址,并定期检查它是否未被SpamCop,SpamHaus或Barracuda垃圾邮件黑名单列入“黑名单”。谷歌更多。 希望我的回答对你有所帮助,并且传达出来并没有简单的答案。如今,如果您想发送电子邮件,您必须了解这些问题。     
JP的答案部分正确,但它也可能是您在电子邮件中的标题我从经验中知道这将内容发送到垃圾邮件文件夹尝试以下内容; 将电子邮件设置为您的域名,如无回复或有效回复。
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "rn" .
    'Reply-To: webmaster@example.com' . "rn" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
    
这可能与您的邮件客户端和垃圾邮件设置配置有关。尝试在
gmail.com
上打开帐户并在那里发送电子邮件,如果可以,您知道这是您的邮件服务器/客户端问题。如果不是,请发布您的PHP代码和您收到的电子邮件的完整电子邮件标题。     
发生这种情况是因为很多次,标题丢失/如果它不是一个众所周知的电子邮件服务器域密钥签名,或类似的东西。如果您已经有一个单独的电子邮件服务器,您应该检查是否可以使用PHP Pear Mail包使用您的电子邮件服务器发送电子邮件,而不是直接通过邮件功能。这就是我觉得方便的东西,因为它更加灵活。     

要回复问题请先登录注册