Table of Contents

Debugging e-mail problems

Check if the server hostname is resolvable forward and reverse:

Prompt$> host your-servername.example.com
your-servername.example.com has address 192.0.2.100

Prompt$> host 192.0.2.100
100.2.0.192.in-addr.arpa. domain name pointer your-servername.example.com.

Check if mailserver is accepting connections and answers with correct HELO/EHLO

Prompt$> telnet your-servername.example.com 25
Trying 192.0.2.100...
Connected to your-servername.example.com.
Escape character is '^]'.
220 your-servername.example.com ESMTP MAIL Server


If the servername is not correct you can adjust it in /etc/postfix/main.cf altering the smtpd_banner parameter

Check that you have not configured a virtualdomain as mydestination in main.cf

Prompt$> postconf | grep "^my"
mydestination = $myhostname, $mydomain
mydomain = $myhostname
myhostname = your-servername.example.com
mynetworks = 127.0.0.0/8
mynetworks_style = subnet
myorigin = $myhostname


When you have configured mydestination containing example.com and have mail-accounts setup in ispcp for example.com this wont work.
Postfix tells that in the logs by saying: “do not list domain in BOTH mydestination and virtual_alias_domains”

Check policy daemons

When you don't receive an e-mail and the logs show “451 Server configuration error” this is possibly because of an problem with connecting a policy daemon.
In this case a deeper look in the logs will point out:
“warning: connect to 127.0.0.1:12525: Connection refused” or “warning: connect to 127.0.0.1:60000: Connection refused”
This means postfix cannot connect to policyd-weight and/or postgrey.
Check if you have this services installed using your distros package managing solution (apt-get or yum or whatever)
Check if the services are listening on the correct port. This can be done by typing “netstat -an | grep 12525” into the command line.

If you have no intention to use the policy daemons configured in the default ispcp environment, remove them from the config:
You find them in the ”/etc/postfix/main.cf” in the directive “smtpd_recipient_restrictions”.
Policy-weight is the option check_policy_service inet:127.0.0.1:12525.
Postgrey is the option check_policy_service inet:127.0.0.1:60000.

Check if dns is working

Prompt$> host www.google.com

should give you some ip addresses.
If postfix run in chrooted environment ensure that the resolv.conf in the chroot is identical to /etc/resolv.conf
You can check if postfix runs chrooted with the following command:

Prompt$> grep -v "^#" /etc/postfix/master.cf | grep "smtpd$" 
smtp      inet  n       -       y       -       -       smtpd

According to “man 5 master” the fifth column defines if service is chrooted or not. On most distros a “y” or a ”-” in the fifth column means the service is chrooted. Centos, debian and maybe others chroot to ”/var/spool/postfix”, so the resolv.conf used by postfix would be stored as ”/var/spool/postfix/etc/resolv.conf”

Further assistance

If the above checklist and your inquiry in the forums does not lead to the resolution of your problem, you can ask for help in the forum:
Such a request has to include at minimum the following informations:

Detailed description of the problem!!!
We won't answer threads which say “I can't send mails, please help, its urgent”