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.

up vote 3 down vote accepted

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
    

    and

    spamassassin
         unix  -       n       n       -       -       pipe
         flags=R
         user=spamuser 
         argv=/usr/bin/spamc 
         -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:[127.0.0.1]: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
    
    127.0.0.1:10025 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=127.0.0.0/8
            -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 – Miloš Đakonović 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. – Esa Jokinen Apr 21 '17 at 12:57

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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