我按照大多数网站推荐的此类操作系统设置的说明进行了 Postfix + SpamAssassin 设置。基本上我编辑了我master.cf的添加:
smtp inet n - - - - smtpd -o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Run Code Online (Sandbox Code Playgroud)
SpamAssassin 实际上工作正常并且我的电子邮件被过滤了,但是我注意到以下内容。过去,在 SpamAssassin 之前,将电子邮件发送到我的服务器时,标题会显示如下内容:
Return-path: <sender@sender-server.dev>
Envelope-to: <destination@my-server.dev>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.sender-server.dev ...
by mail.my-server.dev
Run Code Online (Sandbox Code Playgroud)
在 SpamAssassin 之后,它们显示:
Return-path: <sender@sender-server.dev>
Envelope-to: <destination@my-server.dev>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.my-server.dev ...
by mail.my-server.dev
Run Code Online (Sandbox Code Playgroud)
看起来在启用 SpamAssassin 时,Received: from …
我更新了我的/etc/spamassassin/local.cfspamassassin 文件以更新一些分数规则。然而,即使在重新启动 spamassassin(通过服务)之后,新的分数也不会显示在垃圾邮件中。事实上,该文件中的任何内容似乎都不会影响 spamassassin 的工作方式。
我使用 exim 作为我的 MTA 但这应该无关紧要。所有软件包都是通过 apt-get 安装的,并且是 14.04 的最新版本。
例如,我有这个:
score HTML_MESSAGE 2.0
Run Code Online (Sandbox Code Playgroud)
中定义/etc/spamassassin/local.cf。我重新启动了 exim 和 spamassassin。 spamassassing --lint显示 int hat 文件没有错误。然后又收到了一封垃圾邮件:
0.0 HTML_MESSAGE BODY: HTML included in message
Run Code Online (Sandbox Code Playgroud)
在 X-Spam-Report 字段中。
我跑spamassassin -D < spam了,cfg文件的加载顺序好像不对:
Jun 8 13:34:07.300 [21668] dbg: config: read file /etc/spamassassin/local.cf
...
Jun 8 13:34:07.600 [21668] dbg: config: read file /var/lib/spamassassin/3.004000/updates_spamassassin_org/50_scores.cf
...
Jun 8 13:34:07.787 [21668] dbg: config: read file /var/lib/spamassassin/3.004000/updates_spamassassin_org/73_sandbox_manual_scores.cf
Jun 8 13:34:07.788 …Run Code Online (Sandbox Code Playgroud)