Well... to me, backscatter is more of a symbol that you are doing something wrong (maybe wrong is too strong of a word... ill-advised)
Backscatter is going to happen for 3 main reasons:
• You have a filter set up and set to fail the message
• You have a forwarder setup that is malfunctioning in some capacity. Autoresponders also fit in here.
• You have an improperly configured contact form or script that is sending mail.
Filters that fail are probably the best example of what real backscatter is. But this is just an improper behavior. A mail server cannot accept a message and then decide to bounce it without expecting to get caught up in backscatter. I really have no idea why cPanel has this as an option... beats me!
Forwarding mail off a server (to a server that you have no control of) and using autoresponders are just a really bad idea. Unfortunately you can't stop it completely. But the more unchecked mail you forward off of the server the more issues you are going to have. If you're going to forward mail off of the server, then you really need to have some type of spam checking done BEFORE your server accepts the message. Now I don't know how cPanel's "Do not forward any mail that SpamAssassin determines is spam" function works. If cPanel is accepting the message AND THEN scanning it for spam and rejecting it... then you're back to the fail in filter scenario in the above paragraph. I developed a system a long time ago that grabs a list of email addresses that forward off of the server and forces a spam check of any message sent to any of those addresses BEFORE exim accepts the message. This helps quite a bit. But still if a message passes this spam test, gets accepted by my server, and then Hotmail or where ever the message is ultimately going rejects the message, this can generate backscatter.
Autoresponders also fit in here, perhaps a bit more because autoresponders - by nature - are suppose to automatically respond. If someone sends an email from a non-existant email address to an email address with an autoresponder, then that autoresponder is going to generate backscatter because it will never be able to send the autoresponder message back to the non-existant email address.
The bottom-line here... if the whole world would stop forwarding mail off of the server (intra-server forwarding - forwarding to email accounts within the same server - is fine, because you can ultimately control email accounts there) this would go a long ways towards solving this issue.
Improperly configured contact forms or scripts. A lot of times we see users who keep a default email address set as the envelope-sender within their script or contact form - i.e.
[email protected] - this may work fine as long as the person submitting the contact form uses a real email address. But when bots, spammers, or just abusive users use that form and don't put in a real, proper email address, then this causes the server to attempt to send a bounce message to
[email protected] This is solved (I use the term loosely) by informing the website owner that their script is misconfigured.
[email protected] needs to be their real email address.
Another issue we see with contact forms and scripts... people may write the script in such a way that the message is sent "from" whatever email address the submitter puts on the form. This is fine for the From header... but the envelope-sender needs to be set to a real, known to be good, email address. The envelope-sender is where bounce messages are going to be sent from. If the creator of the script writes the script so that the envelope-sender is dynamically set based on the user's input, then if the To address is not configured properly (see above paragraph) then the bounce message may go to a non-existant email account... backscatter.
So the only way to really solve all of this is through end-user education. Why are users forwarding mail off of the server? Why are they not just advertising their Gmail account and instructing users to send there? The more hoops you add (adding forwarders) to the process, the greater your surface area for issues. If you're using an autoresponder, why? These days, everyone checks their mail on their phone anyway - is a message telling everyone that you are on vacation really necessary? If a user is not properly configuring their scripts... nothing is going to solve that except for fixing the configuration of the script (which I'd be willing to bet was in the documentation for setting it up, but was conveniently overlooked).
RBLs will function a lot like a global SpamAssassin. If a connecting IP coming into your mail server matches one of the RBLs, then the connection is denied. Exim never gets to accept the message. This will help a lot too.
To the point about silently discarding message in filters... I would tend to agree, I don't like that option either. I always try to advise users to move those messages out into another folder and then review that folder from time to time. If you discard a message automatically... you'll never know that it was discarded. So if someone is complaining that they wrote you an email and you never got it... check your filters. If that person uses any word or language that you have set to filter... the filters are unbiased, they don't care if you know the person that is sending you the message or not... if it matches something in the filter, it's going to act on that filter. And if the action on that filter is to delete it... it's gone and you and the sender are none the wiser.