我有这个有趣的东西。当我向 yahoo、gmail 或 hotmail 用户发送电子邮件时。如果我包含一个链接,它将被视为垃圾邮件。但是如果我删除了链接,它将变成“收件箱”,而不是垃圾邮件。奇怪吧??
我的邮件服务器有什么关系吗??如何防止我的电子邮件被视为垃圾邮件?我的电子邮件内容中需要链接 :)
php代码:
// Send Email to the user
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";
// Email Variables
$toUser = '[email protected]'; // recipient
$subject = "Subject HERE!!"; // subject
$body = '<div style="font-family:Arial; color:#333;">
Some content here ...
<a href="www.google.com" target="_blank"> Link here</a>
</div>';
if(mail($toUser,$subject,$body,$headers)){
echo "Email SENT" . '<br>';
} else {
echo "Email cannot sent" . '<br>';
};
猜测一下,邮件服务器会根据文本分析和一大堆其他他们不会告诉任何人的事情来计算每封邮件的垃圾邮件分数 - +3 表示标题中包含非单词,+2 表示嵌入式链接等。很有可能,您生成的一封电子邮件(无链接)的常规分数相当高,但仍然足够低,邮件可以通过。
一些反垃圾邮件解决方案足以将垃圾邮件分数粘贴在邮件标题中 - 在那里寻找类似“X-Spam-Score”的内容。如果你能找出通过邮件的分数是多少,那将告诉你它与被标记为垃圾邮件的距离有多近(垃圾邮件阈值通常约为 12 左右,但他们都有自己的系统) . 我怀疑一条干净的消息的分数会很高,添加链接只是最后一根稻草。
要注意的另一件事是,如果您从脚本生成邮件,请确保它填写了所有适当的标题,因为缺少的标题会使您的垃圾邮件得分提高一点。来自发送邮件的服务器与其中继到的任何服务器之间的 SMTP 对话的日志也会有所帮助。
您需要确保您的邮件服务器(很可能与您的 php 代码运行所在的机器相同)已正确配置为合法发送邮件。您需要确保一些事情是正确的,以避免从该机器转发的任何邮件被标记为垃圾邮件。
首先,您的邮件服务器必须使用它的规范主机名,这与在命令行上运行时返回
HELO
的命令的值相同。hostname
下面postfix
是 中myhostname
变量的值/etc/postfix/main.cf
。其次,DNS 中服务器的正向和反向指针必须匹配,并且必须与上面的主机名值匹配。例如
第三,检查您的邮件服务器是否没有充当开放中继。如果您的邮件服务器被配置为中继来自其他主机的邮件,您应该非常小心,以确保这些主机本身不是开放中继,或者受到适当保护,不会接受来自未经身份验证的主机的邮件。为您检查,例如http://www.checkor.com/ 。
第四,看你的信息内容。从您在上面发布的示例中,您似乎正在发送一小段 HTML,这很可能是带有垃圾邮件过滤器的一组警报(看看您的平均垃圾邮件的组成)。您应该始终使用电子邮件库来撰写邮件,如果您发送 HTML 邮件,您应该包含一个
text/plain
变体。最后,对于大型网站,我们的一些邮件会被标记为垃圾邮件,这只是平均法则。您有责任确保遵守发送自动或批量电子邮件的相应规定,例如CAN-SPAM。其中最重要的部分是人们可以直接取消订阅您的邮件列表。如果你让人们很难做到这一点,那么你的用户更有可能点击他们邮件客户端中的大型垃圾邮件按钮,该按钮将被反馈到邮件主机并针对你的服务器工作。
每个电子邮件站点都会应用自己的垃圾邮件检测规则。您将找不到不被归类为垃圾邮件的完美方法。乍一看,!在主题和完全在 HTML 中的内容是垃圾邮件的良好指标......
发送电子邮件至
[email protected]
,您将收到一份自动报告,其中分析了它的外观和垃圾信息。它可以给你一些想法。您可以从代码中做的很少。虽然您可以使用 DKIM 之类的东西,但不能保证收件人会使用它。就个人而言,我会专注于让您的电子邮件看起来不像是即发即弃的垃圾邮件,而更像是用户实际要求的“官方”邮件。您能否编辑您的帖子以包含您的系统发送的实际电子邮件?
大约 18 个月前,我们在将电子邮件发送到雅虎地址时遇到了问题,因为该链接包含一个新注册的域。
我们通过检查退回的电子邮件确定了这一点。雅虎本身报告“您的电子邮件已被延迟”,但其他几个邮件服务器在错误消息中给出了拒绝投递的线索。将域更改回更旧、更成熟的域解决了该问题。
还要考虑链接中的文字(例如说像 DOWNLOAD FREE SOFTWARE NOW 而不是Download software version 1.0)和链接本身的域名。