Knowledge base
1000 FAQs, 500 tutorials and instructional videos. Here, there are only solutions!
Resolve a 'bogus HELO' error
This guide details the “bogus HELO” email error to help you understand its origin and how to fix it.
When and why does this error occur?
The SMTP protocol (used for sending emails) has several phases. The first involves the sender's server introducing itself to the recipient's server using the HELO command (or EHLO for extended SMTP). This command must be followed by a valid hostname.
If you receive an error mentioning “bogus HELO,” it means the identifier provided by the sending server does not comply with RFC 5321. This check is an essential security measure that helps filter out a large number of misconfigured servers, often used for spreading viruses and spam.
Infomaniak rejects any message from a server that identifies itself generically (e.g., “server”) or locally. The server must use a FQDN (Fully Qualified Domain Name), i.e., a complete and resolvable hostname such as “server.domain.xyz.”
Examples of configurations leading to rejection:
Using a local or loopback IP address:
220 mta-gw.infomaniak.ch ESMTP Infomaniak Network Mail Servers; HELO 127.0.0.1
Using an IP address in brackets instead of a domain name:
220 mta-gw.infomaniak.ch ESMTP Infomaniak Network Mail Servers; HELO [192.168.1.1]
Using an unqualified local hostname:
220 mta-gw.infomaniak.ch ESMTP Infomaniak Network Mail Servers; HELO localhost 220 mta-gw.infomaniak.ch ESMTP Infomaniak Network Mail Servers; HELO mon-serveur
Using a banned or obviously fake domain name:
220 mta-gw.infomaniak.ch ESMTP Infomaniak Network Mail Servers; HELO fakedomain.xyz
In these cases, the SMTP transaction will fail with the following code:
MAIL FROM: user@domain.com 250 2.1.0 user@domain.com... Sender ok RCPT TO: recipient@infomaniak.ch 550 5.7.1 recipient@infomaniak.ch... Access denied - bogus HELO [1]
How to resolve this issue?
If you use a programming script (PHP, Python, etc.) to send emails via SMTP, ensure that the library used is configured to send a valid domain name in the HELO command and not the web server's IP address.
Link to this FAQ:
Has this FAQ been helpful?