Email Archiving with cPanel and Exim

If you're interested in saving a copy of all incoming and outgoing mail for a particular domain, look no further! This idea can be expanded a little further to include all domains on the server or other stipulations, however we are going to include the config for a single domain.

First we'll need to make a copy of the existing cPanel Exim filter so our rules don't get overwritten by cPanel, so get into the shell as root and execute:

cp -a /etc/cpanel_exim_system_filter /etc/cpanel_exim_system_filter_modified

In this new file, insert the following at the bottom, modifying domain.com to the domain of your choosing and the email addresses (incoming|outgoing)@domain.com appropriately as well:

#Incoming/Outgoing Email Archiving
if ("$h_to:, $h_cc:, $h_bcc" contains "domain.com")
then
  unseen deliver "incoming@domain.com"
endif

if $sender_address_domain is domain.com
then
  unseen deliver "outgoing@domain.com"
endif

Finally, we need to modify the default Exim filter file in the WHM so that this new file is used. Go to Main » Service Configuration » Exim Configuration Editor and modify the System Filter File line; save.

The last step of course is to create the email accounts specified above if you've not already done so!