One way to ensure that you get all email directed at your domain is to create a “catch-all” email address. This means any email routed @yourdomain.com. For example, if my website is NameHero.com, email@example.com will be routed here.
Since this can often be a huge resource drain (i.e. use up disk/Inode restrictions) as well as a "playground" for spammers, we set the default to send a failure message to email sent to an address that does not exist.
However, if you would like to enable this, you can easily do so right inside of cPanel -> Default Address:
From here, you can enable how you would like this routed:
From here, you can see the default setting to fail any email sent to a user that doesn't exist.
As mentioned above, we strongly suggest keeping this enabled unless you have a very specific reason for enabling. It will use up a lot of resources if not carefully monitored/cleaned out!
In the screenshot above, you can see you have several options:
Forward to Email Address - Using this option you can forward the email to your existing email account. If you're using a third-party provider such as Gmail, you should remember they're going to treat Spam like you're sending it from your domain, so you should make sure you're using aggressive Spam filters.
Forward to your system account - I placed a red arrow in the screenshot above as you have to click the Advanced Options link to get this to appear. When a new cPanel account is created, it automatically sets up a "default" email account that can be used as a catch all. If you select this option all un-routed email will go to this inbox.
Pipe to a Program - Some third-party applications accept inbound email as a means of submitting data (like it came from a web form). Only use this option if you specifically know you have a PHP script setup to do this.
Discard (Not Recommended) - This will simply delete any un-routed email at your domain. This is not recommended as the sender will not know you didn't get their message. You should use the default setting, which sends an automatic message letting the sender know the account doesn't exist.
Manage Your cPanel Default Email Address
If you do select the option to use the system account, you can manage that inside of cPanel -> Email Accounts:
From here, the system account will have a "Default" label on it:
While you cannot delete the system email account, you can use the icons to the right to check the account or click manage to clean it up:
Once again I cannot stress how important it is to use this feature with caution. Back a couple of decades ago, this was common practice; to have a "catch all" email account, but nowadays with the massive amounts of spam, it simply becomes a huge resource drain that only causes problems. Unless you have a very specific need, I would suggest keeping the default to fail all un-routed email.