I am Peter Breuls. I write web applications in PHP, movie reviews and irregularly something on this weblog. Welcome!
Through my company Devize, I'm available as a developer or a consultant for websites or web applications.
I work as an Administrator at online community FOK! and as a Lead Developer at frontoffice supplier SIMgroep.

Passing the HELO check with Postfix

Linux / Techcomment

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.