缺少 X-Spam-Status 标头

缺少 X-Spam-Status 标头

我最近升级到了 Ubuntu 14.04.1 LTS (trusty),并按照https://help.ubuntu.com/14.04/serverguide/mail-filtering.html并且可以正常发送和接收邮件。

虽然我确实X-Virus-Scanned在邮件中看到了标题,这表明邮件确实正在处理中,但我没有看到任何X-Spam-Level标题X-Spam-Score被添加到邮件中。这使得下游procmailrc和客户端过滤更加困难。

虽然/etc/amavis/conf.d/20-debian_defaults 确实大大减少了发往我收件箱的垃圾邮件,但在调整之前我担心会出现误报,而且不知道会出现什么情况,所以暂时$final_spam_destiny = D_DISCARD将其设置为。这暴露了问题。D_PASS

我不确定从哪里开始诊断问题(否则我会发布一个可疑的配置文件)。

/etc/amavis/conf.d/15-content_filter_mode 有以下几行未注释启用病毒和垃圾邮件检查,并且病毒检查似乎正在根据标题进行工作。

Spam Assassin 似乎也启动得很顺利。

SpamAssassin 调试设施:信息
SA 信息:缩放:能够使用 360/360“body_0”编译规则(100%)
SpamAssassin 加载的插件:AskDNS、AutoLearnThreshold、Bayes、BodyEval、Check、DKIM、DNSEval、FreeMail、HTMLEval、HTTPSMismatch、Hashcash、HeaderEval、ImageInfo、MIMEEval、MIMEHeader、Pyzor、Razor2、RelayEval、ReplaceTags、Rule2XSBody、SPF、SpamCop、URIDNSBL、URIDetail、URIEval、VBounce、WLBLEval、WhiteListSubject
SpamControl:SpamAssassin 上的 init_pre_fork 已完成

我也在 /etc/amavis/conf.d/50-user 中进行设置$log_level = 2;,但在日志中没有看到任何明显的错误。

问:下一步有什么建议吗?

更新(看来我已经有了正确的设置):

/etc/amavis/conf.d$ grep sa_tag_level_deflt *
20-debian_defaults:# $sa_tag_level_deflt  = 2.0;  # add spam info headers if at, or above that level
20-debian_defaults:$sa_tag_level_deflt  = -999;  # add spam info headers if at, or above that level

答案1

/etc/amavis/conf.d/20-debian_defaults http://pastebin.com/5xuvNVtD

将第 36 行更改为如下内容:

$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level

保存并重新启动服务或重新加载配置后,所有电子邮件都应具有 x-spam-status 标头。

答案2

命令的输出head -n 1 /etc/mailname必须是您的域,例如example.com

mail.example.com如果输出类似这就是问题所在

因此,你可以通过更改文件来解决这个问题/etc/amavis/conf.d/05-domain_id

解决方案 #1

里面/etc/amavis/conf.d/05-domain_id

改变:

    chomp($mydomain = `head -n 1 /etc/mailname`);

到:

    chomp($mydomain = `hostname -d`);

PS: 的输出hostname -d必须是您的域,例如example.com

比以往最简单的解决方案:

里面/etc/amavis/conf.d/05-domain_id

改变:

    chomp($mydomain = `head -n 1 /etc/mailname`);

到:

    $mydomain = "example.com";

答案3

所以,问题解决了,这只是一堆事情的集合,我会在这里详细说明,以便其他遇到同样问题的人能够了解到。

首先,垃圾邮件刺客似乎在使用 ipv6 运行时存在问题(在某些环境中)。不知道为什么。编辑/etc/default/spamassassin,或者/etc/init.d/spamassassin如果您没有,请将其添加--ipv4OPTIONS列表中。然后使用service spamassassin restart退回服务,并service spamassassin status检查 spamd 是否正在运行。此步骤对于您的配置可能不是必需的。

接下来,确保您有一个/etc/procmailrc文件,它的权限是全世界可读的,并且它包含如下内容:

DROPPRIVS=yes
:0fw
| /usr/bin/spamc
:0
* ^X-Spam-Status: Yes
$HOME/mail/possible-spam

接下来,如果你正在运行网页管理工具你需要检查 procmail 服务,确保它没有向你发出警告后缀未配置为使用进程邮件。在 中/etc/postfix/main.cf,您需要注释掉默认运行 deliver 并将其替换为 procmail。编辑后mailbox_command您需要运行。service postfix restart

#mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"
mailbox_command = procmail -a "$EXTENSION"

如果您已手动将垃圾邮件移至名为的邮件文件夹中spam,那么您需要像这样训练垃圾邮件杀手:

sa-learn --progress  --dbpath ~/.spamassassin --spam --mbox ~/mail/spam

请注意,可以进行一些进一步的调整,并且需要service spam assassin restart在之后进行,但这可能会有所帮助。

一、如果您收到大量垃圾邮件,请将 的值/etc/spamassassin/local.cf设置为稍低一些:required_score

#   Set the threshold at which a message is considered spam (default: 5.0)
#
required_score 4.0

在同一个文件中/etc/spamassassin/local.cf,通过在末尾添加以下内容,还可以按垃圾邮件较多的国家/地区进行过滤。以下是俄罗斯和中国,根据一些电子邮件分析,这两个国家/地区在历史上的垃圾邮件贡献率非常高。

# Filter Russia
header RELAYCOUNTRY_RU X-Relay-Countries =~ /RU/
describe RELAYCOUNTRY_RU Relayed through Russia
score RELAYCOUNTRY_RU 8.0

# Filter China
header RELAYCOUNTRY_CN X-Relay-Countries =~ /CN/
describe RELAYCOUNTRY_CN Relayed through China
score RELAYCOUNTRY_CN 8.0

report_header 1
fold_headers 1
detailed_phrase_score 1

以上不仅解决了丢失的标题,我怀疑是procmail没有被调用。

相关内容