One of the underrated features of cPanel is the “Account level filtering” and “User level filtering.”
For cPanel users, these can be powerful tools, but must be used carefully so please read this full post before creating your first filter.
These two features are located in the “Mail” section of cPanel. “Account level filtering” lets you filter all the email addresses on your domain at the same time, while the “User level filtering” allows you to create filters for individual email addresses
It is important to make the filters very specific so you don’t end up losing real email.
After you have clicked on either “account level” or “user level” filtering, click the “manage filters” link.
Then click the button that says “create new filter.”
First you must give your new filter a name.
Then we recommend using “from” and “subject” rules because those are more specific and are processed faster by the server.
We do not recommend creating “body” rules because that requires the server to scan the entire email which can slow down your email delivery, and can also lead to more instances of false positives.
When selecting an “action” at the bottom, we recommend the “fail with message” option as you can mention to rejected senders why the email was rejected and provide an alternate contact, like a website address (but not another email address!) You can even mention at their email was filtered based on content so try removing any spam-type content before re-sending.
When done you can test the filters by going back to cPanel, clicking on the active filtering level and clicking the “manage filters” link.
Have fun, but again be careful to be very specific in your rules so that you don’t lose real email.
Related: How to Use SpamAssassin to stop spam