PHP 邮件正在被发送到垃圾邮件

PHP Mail is Being Sent to Spam

我知道这个网站上有很多类似的问题,但是 none 对我有帮助。

我有以下 PHP 代码:

<?php
$to = "mymail@inbox.com";
$from = "no-reply@heygee.com";
$subject = "Confirm your registration!";
$message = "Please follow this link to confirm your registration: www.bit.ly/32106";

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: HeyGee! <no-reply@heygee.com>" . "\r\n" .
"Reply-To: mymail@inbox.com" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

$ok = @mail($to, $subject, $message, $headers, "-f " . $from);   
?>

假设 mymail@inbox.com 是我的测试电子邮件。每当我将邮件发送到我的地址时,我总是会在我的垃圾邮件文件夹中收到邮件。这是为什么?是否有任何更正或技巧可以防止邮件到达垃圾邮件?

谢谢。

这与你的编程本身无关。将电子邮件作为垃圾邮件过滤是在客户端完成的,您对此无能为力(如果是的话,数以百万计的垃圾邮件发送者会这样做)

您遇到的问题是您的电子邮件看起来像垃圾邮件。尝试写一封更好的电子邮件,正文超过 1 行。我还会从主题中删除感叹号;这也是使它看起来像垃圾邮件的原因。

如果您的垃圾邮件检测系统为您提供了有关将其标记为垃圾邮件的原因的详细信息(SpamAssassin 可以根据其配置方式执行此操作),则使用该信息来修复您发送的电子邮件。

您的邮件被发送到垃圾邮件文件夹的原因要么是因为您电子邮件的内容,要么是接收方无法验证该电子邮件是否确实来自 [=11= 中指定的域] 地址,即发件人(您)是否有权代表 heygee.com.

发送电子邮件

内容部分容易改正。您需要避免错误的语法、模棱两可的链接(例如 google.com 但指向 example.com 的链接)等。您的邮件应该措辞恰当(排除垃圾邮件中经常出现的那些词),最好还包括一个 unsubscribe link(如果发送到邮件列表)。

现在是第二个也是困难的部分。您在 from 地址中写入的域应该与您执行此邮件脚本的域相同,或者应该由该域的 TXT 记录授权代表它发送邮件。最简单的方法是(假设您有 DNS 访问发送域名的权限)添加一个 TXT SPF 记录,允许您的脚本所在的服务器的 IP 代表它发送邮件. 示例 SPF 记录:

"v=spf1 ip6:1080::8:800:200C:417A/96 -all"

以上记录表示Allow any IPv6 address between 1080::8:800:0000:0000 and 1080::8:800:FFFF:FFFF.

结帐: SPF (Wikipedia)

另外,你可以在这里看看http://www.openspf.org/

现在,如果您没有 DNS 访问权限,则只需将 from 地址的域名更改为服务器的域名,它应该会修复它。

希望对您有所帮助。