Temporary Failure in SMTP For Invalid Users


When emails are received for invalid users in Xeams or any other SMTP server, it returns a 550 as the response code, indicating the recipient does not exist. Most sending SMTP servers treat this error as fatal and generate an NDR letting the sender know the email could not be delivered.

Xeams can be configured to treat an invalid recipient's address as a temporary failure, which is done by adding:

send.temp.reject.for.invalid.users=true

to server.properties file.

Xeams returns a 450, instead of 550 when this property is enabled. Since 440 is considered non-fatal, the sender's SMTP server should retry, most likely to the next SMTP server listed in the priority order.

The Rationale for Using This Feature

Consider you have multiple SMTP servers that handle emails for your domain. Your company's primary SMTP server is in New York and has a second SMTP server in London. You want emails for employees in London to go there directly instead of going through New York.

Here are the steps to configure this:

  • Split the users - meaning employees in London and New York should have an account only on their respective servers.
  • Give London's MX a higher priority, forcing SMTP servers on the Internet to connect first to the London server.
  • Configure London's server to fail invalid users temporarily.
  • Since it's a temporary failure, the sender's SMTP server should try delivering the email to your New York office. New York's SMTP server will accept the message since the recipient will be valid.

You could also use this feature to save licensing cost for your Exchange Online subscription. Click here for further details.

What Happens if the SMTP server in London is Down?

You don't want this to happen. Therefore, to avoid this scenario, you could run two Xeams in London clustered together. This gives high availability as well as load balancing for London's server.