CPanel whm ip based authenticaion in spam expertCPanel whm ip based authenticaion in spam expert

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.