James Keating wrote:

Dear Sirs/Madams,

I have been attempting to properly integrate SpamAssassin into Postfix and have not found the solution that I am looking for. Currently I have Spamassassin running as a daemon (spamd, version 3.1.0a-2) which uses MySQL to store Bayes, AWL, user preferences and stats. Postfix is currently configured to connect to spamd using a pipe setup inside master.cf. Here is the current configuration:

smtp inet n - - - 50 smtpd -o content_filter=spamassassin

spamassassin unix       -       n       n       -       50      pipe
user=nobody argv=/usr/bin/spamc -u ${recipient} -d localhost -e /usr/lib/sendmail -oi -f ${sender} ${recipient}

This setup appears to work properly but I am concerned about what happens when/if spamc cannot communicate properly with spamd. Currently if spamd is not functioning or is dead, the message is passed through to sendmail, instead of being deferred and placed back into the queue until spamc can connect to spamd. I have modified the spamc flags to contain -x (which is supposed to stop the graceful fall back), but sendmail is still passed the message and it is delivered to the user. I have already tried amavisd-new, spampd, qpsmtpd and a simple shell script for connecting to spamassassin. None of these allow me to fully use spamassassin's per user preferences and get proper fall back when/if spamd is dead. I am hoping there is another option that I have not tried yet. Any input would be greatly anticipated.

Thanks,
  James


Is this a high volume mail server?

If it is not, you could call spamc/spamd procmail, check the email to see if it has spamassassin results, and if it does not, run it through spamassassin instead.... This is dangerous if your mail server is high volume because spamassassin chews a lot more resources then spamc/spamd

Something like this should do the trick (this is off the cuff, and just a reference, you will have to modify for your exact setup).

master.cf
spamassassin unix       -       n       n       -       50      pipe
argv=/usr/bin/procmail -m /path to procmailrc/procmailrc ${sender} ${recipient}

:0
* < 512000
{
       :0fw
       | spamc

       :0fw
       * !^X-SPAM-STATUS:
       | spamassassin
}

:0
! -f  "$@"



Reply via email to