我有这个有趣的事情。 当我发送一封电子邮件给雅虎,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标题中包含非单词,+2embedded式链接等等。机会是,您生成的电子邮件(无链接)的正常分数是相当高的,但仍足够低,邮件通过。
一些反垃圾邮件解决scheme足以将垃圾邮件分数保留在邮件标题中 – 在那里寻找类似“X-Spam-Score”的内容。 如果你能找出所得到的信息得分是多less,那么它会告诉你被标记为垃圾邮件有多接近(垃圾邮件的阈值通常在12左右,但他们都有自己的系统) 。 我怀疑,一个干净的信息的分数将是相当高的,添加链接只是最后一根稻草。
另外要注意的是,如果你从脚本生成邮件,确保它填写了所有合适的标题,因为缺less的邮件会将你的垃圾邮件的分数提高一点点。 从发送邮件的服务器到中继服务器之间的SMTP会话logging也是有帮助的。
您需要确保您的邮件服务器(最有可能与您的php代码运行的机器相同)正确configuration为合法发送邮件。 您需要确保一些事情是正确的,以避免从该机器中传出的任何邮件被标记为垃圾邮件。
首先,你的邮件服务器必须使用它的规范主机名来表示HELO ,这与在命令行上运行时hostname命令返回的值相同。 在postfix这是/etc/postfix/main.cf myhostnamevariables的值。
其次,DNS中服务器的正向和反向指针必须匹配,并且必须与上面的主机名匹配。 例如
[dave@odessa ~]$ host odessa.cheney.net odessa.cheney.net has address 64.85.168.249 [dave@odessa ~]$ host 64.85.168.249 249.168.85.64.in-addr.arpa domain name pointer odessa.cheney.net.
第三,检查你的邮件服务器是不是作为一个开放的中继。 如果你的邮件服务器被configuration为中继来自其他主机的邮件,那么你应该非常小心地确保这些主机本身不是开放的中继器,或者被正确保护以免接受来自未经authentication的主机的消息。有很多网站会做出检查你的,例如http://www.checkor.com/ 。
第四,看看你的消息的内容。 从上面发布的示例看,您似乎发送了一小段HTML,这很可能是一组垃圾邮件filter(查看您的平均垃圾邮件的组成)。 您应该始终使用电子邮件库来撰写邮件,如果您发送HTML邮件,则应该包含text/plain变体。
最后,在大型网站上,我们的一些邮件会被标记为垃圾邮件,这只是平均值的法则。 您有责任确保您遵守适用于发送自动或批量电子邮件的规定,如CAN-SPAM 。 这个最重要的部分是让人们退订邮件列表的简单方法。 如果你让这个人很难,那么你的用户更有可能打到他们的邮件客户端中的大垃圾邮件button,这将被反馈到邮件主机,并会对你的服务器工作。
每个电子邮件站点将应用自己的规则来检测垃圾邮件。 你不会find一个完美的方法不被列为垃圾邮件。 乍看之下,! 在主题和内容完全在HTML是垃圾邮件的好指标…
发送电子邮件至[email protected] ,您将收到一份自动报告,分析它的外观以及垃圾邮件是什么。 它可以给你一些想法。
你从代码中可以做的事情很less。 虽然您可以使用DKIM之类的东西,但不保证收件人将使用它。 就我个人而言,我会专注于使您的电子邮件看起来不像是即发即弃的垃圾邮件,更像是用户实际要求的“官方”的东西。 你可以编辑你的文章,包括一个实际的电子邮件,您的系统发送?
大约18个月前,我们遇到了问题,我们的电子邮件传递到雅虎地址,因为该链接包含一个新注册的域名。
我们通过检查退回的电子邮件来识别这一点。 雅虎本身是在报告“你的电子邮件已被推迟”,但其他一些邮件服务器在错误信息中提供了一个线索拒绝交付。 将域更改回更老的更成熟的域解决了这个问题。
还要考虑链接中的单词(例如,下载免费软件而不是下载软件版本1.0 )以及链接本身的域名。