Provide options for bounce processing.
Each feature can be enabled/disabled with a true/false toggle in the [check]
section of config/bounce.ini
:
Some features can have rejections disabled in the [reject] section.
[check]
single_recipient=true
empty_return_path=false
bounce_spf=true
non_local_msgid=true
[reject]
single_recipient=true
empty_return_path=false
bounce_spf=false
non_local_msgid=false
bad_rcpt=true
all_bounces=false
When enabled, blocks all bounce messages using the simple rule of checking for MAIL FROM:<>
.
It is generally a bad idea to block all bounces. This option can be useful for mail servers at domains with frequent spoofing and few or no human users.
Valid bounces have a single recipient. Assure that the message really is a bounce by enforcing bounces to be addressed to a single recipient.
This check is skipped for relays or hosts with a private IP, this is because Microsoft Exchange distribution lists will send messages to list members with a null return-path when the 'Do not send delivery reports' option is enabled (yes, really...).
Valid bounces should have an empty return path. Test for the presence of the Return-Path header in bounces and disallow.
When enabled, rejects bounces to email addresses listed in config/bounce_bad_rcpt
.
Include email addresses that should never receive bounce messages. Examples of email addresses that should be listed are: autoresponders, [email protected], [email protected], and any other email addresses used solely for machine generated messages.
Parses the message body and any MIME parts for Received: headers and strips out the IP addresses of each Received hop and then checks what the SPF result would have been if bounced message had been sent by that hop.
If no 'Pass' result is found, then this test will fail. If SPF returns 'None', 'TempError' or 'PermError' then the test will be skipped.
Parses the message body and any MIME parts for Message-ID: headers and strips out the host name. If the host name is not a local domain, the bounce will be rejected.
This test needs to know which domains are 'local' to your mail server. If you use the rcpt_to.in_host_list plugin and have populated the config/host_list
file, then you're done. Alternatively you can populate the config/bounce_msgid_allowed_domains
with a list of local domains.
Add bounce
to Haraka's config/plugins file. If desired, install and customize a local bounce.ini.
cp node_modules/haraka-plugin-bounce/config/bounce.ini config/bounce.ini
$EDITOR config/bounce.ini