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.


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/master.cf 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
  • 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 Apr 21 '17 at 12:22
  • 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/local.cf. 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. Apr 21 '17 at 12:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.