UPDATE: WHM/cPanel removed support for in version 11.50, so changes below are not valid for versions 11.50+
If you make an SMTP test on http://mxtoolbox.com you might be getting a following error shown in the test results “Reverse DNS does not match SMTP Banner”.
This error is showing because your SMTP greeting message is not matching the PTR records for the IP of the SMTP server used in test.
Following files need to be used and configured properly, for SMTP banner to match reverse DNS records.
/etc/mailhelo
/etc/mailips
/etc/mail_reverse_dns
/etc/exim.conf
Configure Exim to use mailhelo and mailips file
Go to WHM to Home »Service Configuration »Exim Configuration Manager and in Basic Editor on Domains and IPs tab set following settings:
Send mail from account’s dedicated IP address: OFF
Reference /etc/mailhelo for outgoing SMTP HELO: ON
Reference /etc/mailips for outgoing SMTP connections: ON
Configure necessary values in configuration files
Edit or create /etc/mail_reverse_dns file and set the following in it for needed IPs.
x.x.x.x: rdns of the IP x.x.x.x y.y.y.y: rdns of IP y.y.y.y
Edit or create /etc/mailhelo file and set following in it for the domains that you want to setup SMTP banner for.
example.com: reverse dns of the IP used for example.com domain *: default SMTP HELO for unconfigured domains
Edit or create /etc/mailips file and set following in it:
example.com: x.x.x.x #x.x.x.x is the IP used for outgoing mail for domain example.com *: y.y.y.y #y.y.y.y is the default IP that will be used for unconfigured domains
Configure exim.conf to use correct SMTP Banner
Following values need to be configured in exim.conf for SMTP Banner to be set to rDNS values set in /etc/mail_reverse_dns.
smtp_active_hostname
message_id_header_domain
smtp_banner
Be default only smtp_banner
is set on cPanel servers, and it has a different value then needed.
root@server1 [~]# egrep "smtp_active_hostname|message_id_header_domain|smtp_banner" /etc/exim.conf smtp_banner = "${primary_hostname} ESMTP Exim ${version_number} \
smtp_banner
will probably look like this on your cPanel server.
"${primary_hostname} ESMTP Exim ${version_number} \#${compile_number} ${tod_full} \n We do not authorize the use of this system to transport unsolicited, \n and/or bulk e-mail."
Configure values in exim.conf over shell
Locate the line smtp_banner
and change its value so it looks like following:
smtp_banner = "${smtp_active_hostname} ESMTP Exim ${version_number} \"
Add smtp_active_hostname
line value to exim.conf
to look line following:
smtp_active_hostname = ${lookup{$interface_address}lsearch{/etc/mail_reverse_dns}{$value}{$primary_hostname}}
Add message_id_header_domain
line to exim.conf
to look like following:
message_id_header_domain = $smtp_active_hostname
In the end related values in exim.conf
should look like this:
root@server1 [~]# egrep "smtp_active_hostname|message_id_header_domain|smtp_banner" /etc/exim.conf smtp_banner = "${smtp_active_hostname} ESMTP Exim ${version_number} \" smtp_active_hostname = ${lookup{$interface_address}lsearch{/etc/mail_reverse_dns}{$value}{$primary_hostname}} message_id_header_domain = $smtp_active_hostname
Restart exim with /scripts/restartsrv_exim
and SMTP tests should now pass without the SMTP banner warning.
Configure values in exim.conf over WHM
In your WHM go to Home »Service Configuration »Exim Configuration Manager and go to Advanced Editor.
Search for the smtp_banner
field and change default value to:
"${smtp_active_hostname} ESMTP Exim ${version_number} \"
Find the “Add additional configuration setting” button and add two new configuration settings smtp_active_hostname
and message_id_header_domain
.
For smtp_active_hostname
set the following value:
${lookup{$interface_address}lsearch{/etc/mail_reverse_dns}{$value}{$primary_hostname}}
For message_id_header_domain
set the following value:
$smtp_active_hostname
References:
https://forums.cpanel.net/threads/exim-banner-mail-headers-and-resellers-with-own-ip.100697/
cPanel & WHM version 11.50.0.11 or later removed /etc/mail_reverse_dns so the above edits to exim would no longer be valid.
As I found out after following the tutorial and before seeing your comment 🙂 Any suggestions as to what to do instead please?