【问题标题】:Spamassassin false negative for message from textSpamassassin 对来自文本的消息的误报
【发布时间】:2013-06-26 09:21:35
【问题描述】:

背景:

我正在下载我的 twitter 提要并将它们保存到文本文件中,并且我想使用带有 Mail::SpamAssassin 的 perl 脚本来检查垃圾邮件的可能性。所以我关注this post 从文本中加载消息。我的所有邮件在我的 if 语句中一直被标记为“非垃圾邮件”,即使是 419 诈骗邮件。

问题

  • 我做错了什么?
  • 我必须配置 Spamasssasin 文件吗?
  • 我的消息需要采用特定格式吗?
  • 我的项目有更好的选择吗?

详情:

代码:

use Mail::SpamAssassin;
use strict;
use warnings;


open FILE, "<", ~/Messages/twitter_tweet.ema' or die;
my @lines = <FILE>;

my $spamtest = Mail::SpamAssassin->new();
my $mail = $spamtest->parse(\@lines);
my $status = $spamtest->check($mail);
print $status->get_report();

if ($status->is_spam()) {
    print "Totally Spam\n";
} else {
    print "not spam\n";
}

 $status->finish();
 $mail->finish();
 $spamtest->finish();

输出:

(未找到报告模板)

不是垃圾邮件

注意事项:

我没有配置 spamAssasin 我只是开始使用 perl 模块

在我的主目录中有一个名为 ~/.spamassassin/user_prefs 的文件,但我没有碰它

【问题讨论】:

  • open FILE, "&lt;", ~/Messages/twitter_tweet.ema' or die; 这是复制错误还是您的脚本也缺少文件名周围的开头 '

标签: perl twitter spam spamassassin


【解决方案1】:

我写了一个回复(如下),没有注意到你是如何开始这个问题的。 “我正在下载我的 twitter 提要并将它们保存到文本文件中”部分是关键。很关键。具体来说,SpamAssassin 旨在扫描电子邮件,并包含来自标头的丰富元数据。 Twitter 提要没有标题。

我见过的最好的 twitter 反垃圾邮件技术,主要是学术研究,而不是可用的代码,涉及跟踪关注者并为每个用户建立声誉的密集链接图。这几乎是 twitter 中唯一可用的元数据,因此 SpamAssassin 除了推文(“正文”)内容本身之外别无他法。

当然,贝叶斯机制可以提供帮助,尽管它同样由标题和特定于电子邮件的标记化技术组成。 URI DNSBLs 也可以,但其他查找(Razor2、Pyzor、所有 DNSBLs)是无用的,99% 左右的正则表达式规则签名也是如此。 (另请注意,许多在线索引针对实时查找进行了调整,因此旧条目会过期,因此如果您扫描几天前的垃圾邮件,即使曾经有过,它也可能不再有条目。)

最好使用一些仅包含内容的垃圾邮件过滤器。如果您有足够大的消息集合,则可以在子集上训练基于贝叶斯的过滤器,然后在其余部分上运行它。如果这是一项持续的努力,请在发现错误时纠正错误,随着时间的推移,它应该会改进为可用的东西。

如果您真的想使用 SpamAssassin,请阅读此答案的其余部分。请记住,我是在假设您收到真正的 rfc5322(最初为 rfc822)电子邮件的情况下编写的。


有两种可能性:您有一个调用问题(SpamAssassin 无法正常运行或您没有正确提取判决)或您有一个效率问题(SpamAssassin运行但没有所需的准确性,在这种情况下,是一个假阴性问题)。

这是GTUBE 测试字符串:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

要在两者之间进行诊断,请将上述 GTUBE 测试字符串添加到测试消息(复制真实消息并将该字符串包含在正文中),然后再次尝试运行您的代码。

  • 如果它没有标记为垃圾邮件,则说明您有调用问题
  • 如果您的 419 未标记为垃圾邮件,则说明您有效率问题

调用问题:尝试启用调试。在此处粘贴您的输出。我需要更多线索来诊断这类问题。

功效问题:您可以通过确保您拥有blocklists(DNSBLs 和 URI DNSBLs)和联网插件(例如RazorPyzor)并且您积极参与来从根本上改善 SpamAssassin 的结果training Bayes(需要 200 多封垃圾邮件和 200 多封火腿)。 spamtips.org ultimate setup guide也有很好的提示。

如果您需要有关特定垃圾邮件示例的进一步帮助,您必须发布该邮件,并在可能的情况下进行有限的编辑,并在某个位置保持原样,例如Pastebin.com(如果够短,可以在 StackOverflow 上粘贴,但大多数垃圾邮件都不短)。

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    相关资源
    最近更新 更多