0

我正在开发一个应用程序,该应用程序允许用户构建电子邮件活动以进行集体分发(当然,遵循所有良好的非垃圾邮件实践)。如果他们输入关键内容,例如“退款保证”或“免费伟哥”、所有大写主题行等,我们希望在其中放置某种评分系统来帮助他们。

在进行了大量研究之后,将他们的电子邮件内容发送给 SpamAssassin、获得分数并将其返回给他们看起来会很棒。我可以编写自己的垃圾邮件检测,但它无法与 SA 竞争。

问题是,我不知道如何使用 php 与 SA 对话。我不能只给它一些 html 并得到一个数字和一些警告吗?有没有其他开源解决方案?

4

1 回答 1

1

实现起来可能太简单了,但可能是这样的开始:

<?php

$sa_program = "/usr/local/bin/spamassassin"; //your path to the executable
$mail_message = "/tmp/mail_message";         //file on server

exec("$sa_program < $mail_message", $output, $return);

if (!$return) { // "0" is success in 'Nix
    if (strstr(implode("\n",$output),"X-Spam-Flag: YES")) {
       //it's spam, according to SA
    } else {
       //it's not
    }
}

我不知道你是否可以给它一个字符串变量而不是磁盘上的文件。

另请记住,我没有检查分数......您可能也想这样做(“X-Spam-Status: Yes, score=5.0” --- 请记住“否”作为可能的值)。

请注意,它是一个很棒的工具,但 SpamAssassin 的配置和操作不适合胆小的人。除非你花费了大量的工作来训练它,无论是垃圾邮件还是垃圾邮件,都很难相信它的贝叶斯过滤器……至少对我来说很难。

希望这可以帮助。

于 2015-08-25T20:11:49.947 回答