我使用-o content_filter=spamassassin和一个像这样的传输在我的postfix设置中实现了spamassassin mailfiltering:
spamassassin unix - nn - - pipe user=spamassassin argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
接下来,我想通过使用user_prefs选项来实现基于用户的spamassassin首选项,如此处所述。
我通过围绕sendmail创build一个包装脚本来调查这个问题(因为无论如何它都有${recipient}作为参数)。
#!/bin/bash echo "$@" >> /var/log/sendmail-test.log /usr/sbin/sendmail-orig "$@"
这段代码实际上揭示了别名似乎在被交给spamassassin之前被处理。 那很棒。
我在做这件事时注意到的另一件重要的事情是,在main.cf中包含这样一行很重要:
spamassassin_destination_recipient_limit = 1
如果你不这样做, ${recipient}将会包含多个用户,这也会导致基于用户的偏好崩溃。
当有这样的设置,spamc可能被多次调用相同的邮件,但只是不同的用户一遍又一遍。 这导致了另一个问题: spamassassin如何处理邮件相同的内容,但只是一个不同的收件人?