cPanel/WHM Username-based Authentication

  1. Log in to SpamExperts, ensure the User is added as an authenticating method by following the Add an Outgoing User > Authenticating User instructions
    1. When adding the Authenticating User, ensure the correct limits are set matching your traffic volumes
  2. Open WHM and navigate to the Exim Configuration Editor
  3. Select Advanced Editor
  4. Add the following to the POSTMAILCOUNT section:
  5. smarthost_dkim:
      driver = manualroute
      domains = !+local_domains
      require_files = "+/var/cpanel/domain_keys/private/${lookup{$sender_address_domain}dsearch{/var/cpanel/domain_keys/private/}}"
      # 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
      # 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 

    Replace SMARTHOST with the your SMTP hostname

  6. Add the following to the TRANSPORTSTART section:
  7. 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/${lookup{$dkim_domain}dsearch{/var/cpanel/domain_keys/private/}}"
      dkim_canon = relaxed
      headers_add = "${perl{check_mail_permissions_headers}}"
      hosts_require_auth = *
    
    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}}"
      hosts_require_auth = * 
  8. Add the following to the AUTH section:
  9. SpamExperts_login:
      driver = plaintext
      public_name = LOGIN
      client_send = : username@demo-domain.invalid : yourUserPassword

    Replace username@demo-domain.invalid with your username, and YourUserPassword with your password

    Please ensure any special characters in the password required are escaped.

  10. Save and restart
  11. Make sure that you Allow list all your SpamExperts IPs, or add the SpamExperts hostname (spf.antispamcloud.com) to the following location:
  12. Exim Configuration Manager > Basic Editor > Access Lists > "Only-Verify-Recipient".

Disclaimer: This documentation may contain references to third party software or websites. N-able has no control over third party software or content and is not responsible for the availability, security, or operation, of any third-party software. If you decide to utilize a release involving third-party software, you do so entirely at your own risk and subject to the applicable third party’s terms and conditions of the use of such software. No information obtained by you from N-able or this documentation shall create any warranty for such software.