Update Amavisd config file, ask it to listen on one additional network port
10030
(you're free to use another port), and one additional policy_bank
:
$inet_socket_port = [10024, 9998, 10030];
$interface_policy{'10030'} = 'QUARANTINE';
$policy_bank{'QUARANTINE'} = {
clean_quarantine_method => 'sql:',
final_destiny_maps_by_ccat => {CC_CLEAN, D_DISCARD},
};
$clean_quarantine_to = 'clean-quarantine';
Restart Amavisd service.
/etc/postfix/master.cf
, ask
Postfix to listen on one additional network port 10026
(you're free to use
another port):127.0.0.1:10026 inet n - - - - smtpd
-o content_filter=smtp-amavis:[127.0.0.1]:10030
-o recipient_bcc_maps=
-o sender_bcc_maps=
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o local_recipient_maps=
-o relay_recipient_maps=
-o strict_rfc821_envelopes=yes
-o smtp_tls_security_level=none
-o smtpd_tls_security_level=none
-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_end_of_data_restrictions=
-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_address_mappings
service postfix restart
user@domain.com
, set its per-user
transport to smtp:[127.0.0.1]:10026
.Now all emails sent from/to user@domain.com
will be quarantined into SQL
database (specified in Amavisd config file, parameter @storage_sql_dsn
).
Send an email to user@domain.com
for testing:
# echo "mail body" | mail -s "test subject" user@domain.com
All documents are available in BitBucket repository, and published under Creative Commons license. You can download the latest version for offline reading. If you found something wrong, please do contact us to fix it.