Skip to main content

What to do with SpamAssassin after installing Amavis? [Resolved]

As far as I know, Amavis has SpamAssassin on his own (I think Perl Mail::SpamAssassin).

Before installing Amavis, I was using SpamAssassin binary and daemon (spamc and spamd) plugged into MTA (Postfix via pipe).

My question is: what to do - is it safe to apt-get remove spamassassin now after installation and configuring of Amavis?

OS is Ubuntu 14.04 LTS.

Asked April 21, 2017
Posted Under: Network
1 Answers

According to Ubuntu 14.04 Server Guide Mail Filtering:

Amavisd-new is a wrapper program that can call any number of content filtering programs for spam detection, antivirus, etc.

You still need SpamAssassin, so you should not uninstall it. Actually, amavisd-new-postfix depends on spamassassin, so removing the package with apt-get remove spamassassin will also remove Amavis.

This chart visualizes how the pieces fit together (based on the same Mail Filtering guide):

Ubuntu + Postfix + Amavisd

You should

  1. remove the pipe to SpamAssassin from your Postfix configuration, i.e. remove:

    smtp      inet  n      -      -      -      -      smtpd -o content_filter=spamfilter


         unix  -       n       n       -       -       pipe
         -e /usr/sbin/sendmail 
         -oi -f ${sender} ${recipient}
  2. integrate Amavis to Postfix, instead.

    For Postfix integration, enter the following from a terminal prompt:

    sudo postconf -e 'content_filter = smtp-amavis:[]:10024'

    Next edit /etc/postfix/ and add the following to the end of the file:

    smtp-amavis     unix    -       -       -       -       2       smtp
            -o smtp_data_done_timeout=1200
            -o smtp_send_xforward_command=yes
            -o disable_dns_lookups=yes
            -o max_use=20 inet    n       -       -       -       -       smtpd
            -o content_filter=
            -o local_recipient_maps=
            -o relay_recipient_maps=
            -o smtpd_restriction_classes=
            -o smtpd_delay_reject=no
            -o smtpd_client_restrictions=permit_mynetworks,reject
            -o smtpd_helo_restrictions=
            -o smtpd_sender_restrictions=
            -o smtpd_recipient_restrictions=permit_mynetworks,reject
            -o smtpd_data_restrictions=reject_unauth_pipelining
            -o smtpd_end_of_data_restrictions=
            -o mynetworks=
            -o smtpd_error_sleep_time=0
            -o smtpd_soft_error_limit=1001
            -o smtpd_hard_error_limit=1000
            -o smtpd_client_connection_count_limit=0
            -o smtpd_client_connection_rate_limit=0
            -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters

    Also add the following two lines immediately below the "pickup" transport service:

     -o content_filter=
     -o receive_override_options=no_header_body_checks

Answered April 21, 2017
Since you were using Postfix to pipe messages to Spamassassin, it should use the same configuration when called by Amavisd. You probably don't need to change anything. Both will do spam filtering based on server-wide configuration from /etc/spamassassin/ In setups with mailbox_command = procmail -a "$EXTENSION" users have possibility to use Spamassassin independently with :0fw \n | spamassassin in their .procmailrc. This allows using custom settings in .spamassassin/user_prefs, which this Amavisd setup naturally omits. – Esa Jokinen 1 hour ago
 CanDoerz  1 year ago
Thanks. But, do you think I should do something with configuration? Maybe to restore params to default - or not? I think that conf files has my own, adjusted params, example: rewrite_header Subject required_score 3.0 use_bayes 1 – Miloshio 1 hour ago
 CanDoerz  1 year ago
Your Answer