July 14, 2015

Copy Outgoing Email on a cPanel Server with Exim

Note: It is mentioned in the comments that recent versions of cPanel include an Email Archiving feature that stores copies of email on the server for you.  If this is what you’re trying to do, this feature is probably the better option. However, if you’re trying to forward copies of outgoing email to other addresses, the instructions in this post are appropriate.
A common request we get is how a user can automatically BCC outgoing email to another address. This is most often requested by law firms that need to be able to retain copies of communication. Forwarding incoming email is easy – there’s already a section in cPanel for it. However, if you want to forward outgoing email there’s a small twist.
First, go to WHM > Exim Configuration Editor, then click “Advanced Editor” at the bottom. Don’t make any changes, just click “save”. This should create a file on the server called /etc/exim.conf.local. From command line as root, you’ll need to edit /etc/exim.conf.local and add some options to the @CONFIG@ and @TRANSPORTSTART@ sections. The end result would look like this (plus any edits you may have already made):

@AUTH@
@BEGINACL@
@CONFIG@
system_filter_directory_transport = local_copy_outgoing

@DIRECTOREND@
@DIRECTORMIDDLE@
@DIRECTORSTART@
@ENDACL@
@RETRYEND@
@RETRYSTART@
@REWRITE@
@ROUTEREND@
@ROUTERSTART@
@TRANSPORTEND@
@TRANSPORTMIDDLE@
@TRANSPORTSTART@
local_copy_outgoing:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
group = cpaneleximfilter
user = cpaneleximfilter
mode = 0660
maildir_format = true
create_directory = true
Now, make a copy of the existing system filter file to a custom location, so cPanel updates don’t mess with it:
cp /etc/cpanel_exim_system_filter /etc/cpanel_exim_system_filter_custom
Edit /etc/exim.conf.localopts and change the “systemfilter” option to match our new file:
systemfilter=/etc/cpanel_exim_system_filter_custom
Now, open /etc/cpanel_exim_system_filter_custom and add the following block of code to the end of the file:
if $header_from: contains "@senderdomain.com"
then
unseen deliver "other@emailaddress"
endif
Replace the blue text with the sender domain (or email address) and the email address that outgoing mail should be copied to.
Apply these new settings to the exim.conf and restart:
/scripts/buildeximconf
service exim restart
Now when you send email from the email address or domain specified in the filter file, it will be copied to the other email address.

0 comments:

Post a Comment