Passing the HELO check with Postfix
I run several webservers in a pool. Guided by a loadbalancer, they serve over 2 million pages a day, so they're quite busy altogether. One of the applications running as webserver-service sends mail to users. That's fine, because with PHP/Apache and Linux, that's easy to do.
However, my server logs keep on showing errors concerning these sent e-mails. They get bounced back by mail transfer agents who are very strict in their spam control. The messages all point to this page., saying my server did not pass the HELO check.
With the HELO check, an SMTP server can check whether the sending server is properly configured, and thus reliable. It does so by reading the HELO name the server sends, and checking if it's a valid hostname or IP.
While the explanation is quite clear, it didn't help me much. It gives some suggestions on how to fix my problem, but the configuration options for Postfix are missing. That's why I'm posting them here, for Google to find.
In your main.cf file, find the myhostname
setting. By default, it will have something like localhost.localdomain as its value. (That's what caused my servers to not pass these helo checks, because localhost.localdomain is not a valid hostname.) Change the value into something that can be resolved to the server itself, like the actual hostname of the server. In my case, one of the servers has aphrodite.fok.nl as its hostname, so I changed the setting into:
myhostname = aphrodite.fok.nl
Save the file, give a postfix reload
command, and you're good to go.