[Exim] Reaction to rude 554 greeting

Top Page
Delete this message
Reply to this message
Author: Florian Weimer
Date:  
To: exim-users
Subject: [Exim] Reaction to rude 554 greeting
Exim doesn't react gracefully to an initial 554 greeting:

/* If the failure happened while setting up the call, see if the failure was
a 5xx response (this will either be on connection, or following HELO - a 5xx
after EHLO causes it to try HELO). If so, fail all addresses, as this host is
never going to accept them. For other errors during setting up (timeouts or
whatever), defer all addresses, and yield DEFER, so that the host is not
tried again for a while. */

  FAILED:
  ok = FALSE;                /* For when reached by GOTO */


  if (setting_up)
    {
    if (code == '5')
      {
      set_errno(addrlist, save_errno, message, FAIL);
      }
    else
      {
      set_errno(addrlist, save_errno, message, DEFER);
      yield = DEFER;
      }
    }



Is this really the right thing to do? There are primary MXes out
there that send a 554 greeting. While this is certainly very
impolite, it's explicitely mentioned in RFC 2821 (although the
semantics are not quite clear).

I don't feel very strong about this issue. I need to change this code
snippet at work, I think, but I'm not sure if I'd want to force this
change on all Exim users.