Main | Troubleshooting | Error messages | SMTP error messages
SMTP error messages
421 Connection timeout
If there is a timeout while hMailServer is waiting for a command from the SMTP client, this error message is sent to the client before hMailServer disconnects the client. The SMTP timeout in hMailServer is 10 minutes.
421 Excessive amounts of data sent to server.
This error is generated by hMailServer if a client sends a large chunk of data to hMailServer not containing a newline character (command terminator). A client should never do this, but incorrectly configured clients could cause this problem.
451 Please try again later.
This error message is issued if grey listing is enabled, and the sender, recipient and IP address triplet does not match an existing greylisting triplet.
500 Line too long
If a SMTP client sends a SMTP command which hMailServer considers beeing too long, hMailServer issues this error. This error typically indicates a client defect or a hacking attempt.
501 EHLO Invalid domain address.
This error message is issued if the domain address given in the EHLO command does not have the correct syntax.
501 HELO Invalid domain address.
This error message is issued if the domain address given in the HELO command does not have the correct syntax.
502 TURN disallowed
If a SMTP client tries to use the TURN command hMailServer responds with this error code. hMailServer does not include support for the TURN verb.
502 Unimplemented command
If a SMTP client tries to use a command which hMailServer has no implementation for, this error message is sent to the client.
502 Use HELO/EHLO first
After a SMTP client has connected to a SMTP server, the first thing it should do is to identify itself using the HELO or EHLO command. If the client does not do this, hMailServer responds with this error message.
502 VRFY disallowed
If a SMTP client tries to use the command VRFY, hMailServer responds with this error code. hMailServer does not include support for the VRFY verb.
503 Issue a reset if you want to start over
When an email client delivers an email message to an email server, it starts of by telling the server the senders address. After it has done this, a transaction is started which is not finished before the entire message has been delivered to the email server. If the client wishes to abort the transaction and send another message, it should issue the RSET command. If a client, in the middle of a transaction, tries to send a new email without first aborting the current transaction, hMailServer issues this error message. This indicates a bug in the SMTP client.
503 Must have sender and recipient first.
When a SMTP client is delivering an email to a SMTP server, it must specify both the sender and recipient before trying to submit the actual message content. If a client fails to tell hMailServer the senders or recipients address prior to trying to submit the message content, hMailServer will respond with this error. This indicates a bug in the SMTP client.
503 Must have sender first.
When a SMTP client is delivering an email to a SMTP server, it must specify both the sender and recipient before trying to submit the actual message content. The client must first tell the server the sender address and after that the recipient address. If the client tries to tell hMailServer the recipient address before the sender address, this error message is issued. This indicates a bug in the SMTP client.
504 Authentication mechanism not supported.
This error message is issued if a client tries to authenticate using a method which is not supported by hMailServer.
504 Authentication type not specified.
This error message is issued by hMailServer if a client tries to authenticate without specifying authentication method. This error indicates a bug in the used SMTP client.
530 SMTP authentication is required.
You have enabled SMTP authentication for the IP range that the user is connecting from, but the user has not configured his client to use SMTP authentication. There's two ways to solve this problem. Either configure your email client to use SMTP authentication. This setting is normally found in the account settings in your email client. Or, disable SMTP authentication for the IP range. The first solution is recommended since it reduces the risk that anyone will send spam through your server.
By default, hMailServer does not require SMTP authentication for connections coming from localhost / 127.0.0.1. For connections coming from other hosts, SMTP authentication is required for deliveries to external recipients. By default, hMailServer never requires SMTP authentication for deliveries to local accounts, since that would prevent other e-mail servers to deliver email to your installation. For information on how to enable SMTP authentication, check the HOWTO.
If you are using a Cisco router, you may need to disable SMTP Fixup protocol. If this is enabled, the router will sometimes intercept SMTP traffic and replace data in it before it reaches hMailServer which will cause problems.
535 Authentication failed. Restarting authentication process.
If a SMTP client authenticates but the username or password is incorrect, or the account is disabled, hMailServer sends this error message to the client.
550 A valid address is required
hMailServer issues this error message if a SMTP client tries to specify a recipient address which is not valid (which has an incorrect syntax).
550 Account is not active.
If a SMTP client tries to send an email message to an account which is not enabled, this error message is given to the client.
550 Alias is not active.
If a SMTP client tries to send an email message to an alias which is not enabled, this error message is given to the client.
550 Blocked by SPF
If an email message is rejected during SPF checks, this error message is issued.
550 Delivery is not allowed to this address
This error means that the sender is trying to send an email to an address which he is not allowed to send to. This message is generated after hMailServer has checked the IP range settings. As an example, the default IP range configuration does not allow external users to send messages to other external users. This is to prevent people from using your server to send spam. So if an external user tries to send a message to another external user, he will get this message.
550 Distribution list is not active.
If a SMTP client tries to send an email message to a distribution list which is not enabled, this error message is given to the client.
550 Domain has been disabled.
If a SMTP client tries to send an email message to a domain which has been disabled, this error message is given to the client.
550 Invalid syntax. Syntax should be MAIL FROM:<userdomain>[crlf]
If a client issues a MAIL FROM command with an incorrect syntax, hMailServer issues this error message.
550 Login credentials no longer valid. Please re-authenticate.
During a SMTP session, a SMTP sender can send multiple email messages. Each time a SMTP client tries to deliver a new message to hMailServer, the client is re-authenticated to ensure that the username and password is still valid. This is needed since there is no limitation on how long a SMTP client may stay connected to hMailServer as long as it is sending messages. If hMailServer did not re-authenticate connected users, there would be no way to disconnect a user which were sending spam (without stopping the.
550 Mail server configuration error. Too many recursive forwards.
When an email client tells hMailServer who the email message is for, hMailServer tries to determine the "end recipient". The email address the client has given hMailServer may not be the end recipient. For example, if you have set up an alias, firstname.lastname@example.org which points at email@example.com, and the email client tells hMailServer that the message is for firstname.lastname@example.org, the end recipient is actually email@example.com.
It is possible to configure hMailServer in an incorrect way in this area. For example, say you have an alias named firstname.lastname@example.org pointing at email@example.com, and the alias firstname.lastname@example.org is pointing at email@example.com. When hMailServer is trying to determine the end recipient for an email to firstname.lastname@example.org, it will give up since there is none and report the above error message. The error will always be reported if hMailServer can not determine the end recipient.
The following causes are the most common ones:
- A catch-all address has been specified for the recipient domain, but no account exists which matches the specified catch-all address.
- The message is being sent to an alias which does not point at a valid account
550 Not authorized.
If a client tries to send an email message to a distribution list which it has not permission to send to, this error message is issued.
550 Recipient not in route list.
If a client tries to send an email message where the recipient domain matches a route, but the recipient address is not in the list of valid addresses, this error message is given to the client.
550 Sender address must be specified.
If hMailServer is configured to reject empty sender addresses, and a SMTP client tries to use an empty sender address, this error is issued.
550 Sender domain does not have any MX records.
If an email message is rejected due to the MX check, this error message is issued.
550 The address is not valid.
hMailServer issues this error message if a SMTP client specifies a sender address which is not valid (which has an incorrect syntax).
550 The host name specified in HELO does not match IP address.
This error message is a part of the spam protection mechanism in hMailServer. When a sending email server delivers an email message to hMailServer, one of the first things it needs to do is to identify itself. It does this by sending the command HELO <HOSTNAME> where <HOSTNAME> is replaced with its host name. The host name the sending server gives in the HELO command should resolve to the IP address of the same server.
For example, if one of Hotmails servers tries to deliver an email to your server, it will send a command similar to HELO mx1.hotmail.com. If the option Check host in the HELO command has been enabled in the spam protection settings in hMailServer, hMailServer will check that the host name Hotmails server sent, mx1.hotmail.com, matches the IP address the connection is being made from. If the IP address does not match the host name, hMailServer considers the email message to be spam. If you have configured hMailServer to delete e-mail which is considered spam, hMailServer will report the above error message to the sender.
If someone tries to send you an email and you they get this error, take one of the following actions:
- Notify the administrator of the server sending the email that they have not specified the correct host name in the HELO command.
- Disable the "Check host in the HELO command" option in the spam protection settings using hMailServer Administrator or PHPWebAdmin. This option is disabled by default.
- In the spam protection settings, select that hMailServer should deliver spam messages, but modify the message headers. Also select to modify the message subject. Then the email will be delivered, but the subject will be prepended with [SPAM].
550 Unknown user
This error message is issued if the SMTP client tries to deliver an email to a domain hosted by hMailServer but the recipient account cannot be found and no catch-all address has been specified for the recipient domain.
550 <Other error message>
In DNS blacklist and SURBL configuration, it is possible to specify custom error messages to be used when an email message is being rejected.
552 Message size exceeds fixed maximum message size. Size: x KB, Max size: y KB
In hMailServer it's possible to specify a maximum message size in the SMTP settings and in the domain settings. If a message is sent which has a size which exceeds these limits, this error message is issued.
If a hMailServer script running on the OnAcceptMessage event rejects a message without specifying an error message, this error is issued.
554 Your message was received but it could not be saved. Please retry later.
If the email message was received by hMailServer but could not be saved in the database, this error message is sent to the client. To resolve this issue, the hMailServer logs leading up to the error needs to be analyzed. Normally an error message with more details will be logged when this error is reported to the client.
554 Rejected - Message containing bare LF's.
According to the SMTP specification, every line in an email message should be separated by the ASCII-codes 13 and 10 - carriage return (CR) and line feed (LF). Some spammers and incorrectly working software sends messages which are not correctly formatted. Use this setting to reject these messages. Please note that legitimate email might have incorrectly formatted line endings, if the sending software contains bugs.
If you who are a developer receive this problem, confirm that each line of your email message (both header and body) is ended with a carriage return and a line feed, and not just a line feed. How to do this depends on what programming language you are working with. In .C++, C#, and PHP add \r\n to the end of every line. In Visual Basic, add vbNewLine or vbCRLF.
On Windows, the default line separator is CRLF. On Linux and UNIX, the default separator is only LF. However, when sending an email message from a Linux/UNIX system, CRLF must always be used. Some email servers under Linux (such as Postfix) automatically replaces LF with CRLF. Hence, setting the line separator in the email to CRLF will cause it to be changed to CRCRLF.
554 Rejected - No data saved.
If hMailServer received an email message from a SMTP client but could not save the message file on disk, this error message is issued. The problem will occur if the data directory specified in hMailServer.ini is not writeable by the hMailServer service.
554 Rejected - <other error message>
When a hMailServer script rejects a message in the OnAcceptMessage event, it can specify an error message to be sent to the client. If a script does this, hMailServer sends this error message to the client. <Other error message> is replaced with the error message given by the script.
554 Tagged as Spam by SpamAssassin
If an email message is rejected by SpamAssassin, this error message is issued.
Error messages in bounce messages
The mail server software tried to deliver e-mail to the local machine
This error message typically indicates a server configuration error. hMailServer does a number of checks before message delivery to prevent infinite message looping. When an email is sent and the recipient can not be found in the local installation, hMailServer will normally try to connect to the recipients email server to deliver the email message.
Before hMailServer connects to the recipients email server, hMailServer checks that the IP it is going to connect to is not a local IP address. If the IP is a local IP address, this would mean that hMailServer would connect to itself, which would likely cause a message loop. In this case, hMailServer rejects the message delivery and returns an error message to the sender instead.
The following causes are common for this problem:
- A host name or IP address which points at the local computer has been entered as SMTP relayer. Go to the Delivery of e-mail section in the SMTP settings. Check the SMTP Relayer setting. If you have entered localhost, 127.0.0.1, your-own-domain-name.com, or something similar in this textbox, this is likely the cause of the problem. If this is the case, read more about this setting in the SMTP reference guide, and then correct it.
- One of the MX records for the domain points at your server, but the domain has not been added to your installation.
No mail servers exists for the address.
When hMailServer delivers an email to an external recipient, it does a DNS query to determine where the email message should be delivered. If this DNS query fails, the above error message is reported. For example, the query may fail if the DNS server is unavailable or if the recipient domain does not exist. For further troubleshooting, check the hMailServer error log. The hMailServer error log will contain error codes from the DNS-client in Windows.
Error messages not generated by hMailServer
550 Mailbox unavailable
hMailServer never generates this error message. If hMailServer is trying to deliver an email message to another server, but the recipient account cannot be found on that server, the recipients server may issue this error message.
The error message indicates that you are sending the email to an incorrect address. If you are sure that the address is correct, it may be a problem in the recipients DNS configuration.
550 Sender verification failed
When hMailServer deliver an email to another server, the receiving SMTP server may try to validate that the email sender really exist. If this verification fails, it may respond with the error message 'Sender verification failed'. In these cases, the email will be bounced back to the sender. This verification works the following way:
- hMailServer connects to the recipients SMTP server
- hMailServer tells the recipients SMTP server that the email is from email@example.com
- The recipients SMTP server looks up a MX record for the domain example.com.
- The recipients SMTP server connects to the host specified in the MX record - which is likely where your hMailServer server is running if the MX records are set up properly.
- After this, the recipients SMTP server issues the commands HELO, MAIL FROM<> and RCPT TO:
- If hMailServer confirms that the recipient firstname.lastname@example.org exist, the recipients SMTP server will allow the delivery initiated in step 2 above.
There are a few things which can go wrong in these steps:
- If the MX records for the domain example.com is not set up properly, the recipients SMTP server may correct to an incorrect SMTP host and the sender address verification will fail.
- If the account email@example.com does not exist, the sender verification will fail.
- If you have disabled Allow empty sender address, the sender verification will fail, since the recipients SMTP server tries to verify by using an empty sender address.