This method allows you to filter selected domains via our Outgoing filter, while using IP authentication. Any domains not configured here will continue to use the standard cPanel router and transport.
Ensure the IP address is added as an authorized smarthost (without authentication).
Ensure the outgoing user has correct limits set matching your traffic volumes.
SSH to the cPanel/WHM node.
Create the file /etc/spamexperts_domains.
Add the domains that you wish to filter outgoing in that file (one per line).
Save the file.
Navigate to Exim Configuration Editor in WHM.
Choose Advanced Editor.
Add the following in “Section: POSTMAILCOUNT” (replace SMARTHOST with the correct SMTP hostname):
smarthost_dkim: driver = manualroute domains = !+local_domains condition = ${if match_domain{$sender_address_domain}{lsearch;/etc/spamexperts_domains}} require_files = "+/var/cpanel/domain_keys/private/${sender_address_domain}" # Exclude null sender messages from relaying via the smarthost condition = ${if or {{!eq{$sender_address}{}} {!eq{$sender_host_address}{}}}} transport = remote_smtp_smart_dkim route_list = $domain SMARTHOST::587 smarthost_regular: driver = manualroute domains = !+local_domains condition = ${if match_domain{$sender_address_domain}{lsearch;/etc/spamexperts_domains}} # Exclude null sender messages from relaying via the smarthost condition = ${if or {{!eq{$sender_address}{}} {!eq{$sender_host_address}{}}}} transport = remote_smtp_smart_regular route_list = $domain SMARTHOST::587
Add the following in “Section: TRANSPORTSTART” :
remote_smtp_smart_dkim: driver = smtp hosts_require_tls = * interface = ${if exists {/etc/mailips}{${lookup{$sender_address_domain}lsearch{/etc/mailips}{$value}{}}}{}} helo_data = ${if exists {/etc/mailhelo}{${lookup{$sender_address_domain}lsearch{/etc/mailhelo}{$value}{$primary_hostname}}}{$primary_hostname}} dkim_domain = $sender_address_domain dkim_selector = default dkim_private_key = "/var/cpanel/domain_keys/private/${dkim_domain}" dkim_canon = relaxed headers_add = "${perl{check_mail_permissions_headers}}" remote_smtp_smart_regular: driver = smtp hosts_require_tls = * interface = ${if exists {/etc/mailips}{${lookup{$sender_address_domain}lsearch{/etc/mailips}{$value}{}}}{}} helo_data = ${if exists {/etc/mailhelo}{${lookup{$sender_address_domain}lsearch{/etc/mailhelo}{$value}{$primary_hostname}}}{$primary_hostname}} headers_add = "${perl{check_mail_permissions_headers}}"
Save and restart.
All traffic from the cPanel/WHM server will be routed to the Spam Experts filtering nodes.