In order to help put this issue to bed, I'd like to get more input from
actual SMTP deployments.
For example, we've heard from one of the Exim developers that it uses
the first code returned. And sendmail's & Hector's code reportedly uses
So I decided to check out some of the accessible open source code bases,
focusing on the server code that *sends* email to the next MTA.
I verified that sendmail definitely uses the last code and the Exim code
definitely uses the *first* code of the response set.
AT&T's own MTA's code uses the last code, ignoring the code on all
previous continuation lines.
Smail uses the *first* code.
hMailServer appears to use the *first* code.
qmail uses the *first* code.
postfix appears to use the *last* code.
jsmtp uses the *last* code.
Courier generally uses the *first* code. In some cases it actually
treats 1yz, 2yz and 3yz as equivalent and will totally miss any
Here are two more: PMDF generally uses the first code and so does the Sun
Messaging Server. Additionally, neither of these will treat 1xy as anything
other than a server error.
The use of the first response code appears to be used just as often as
the last response code. The codes in between seem to be universally ignored.
Other than ours and sendmail, I can't say much about how much all of
these code bases are used, but some of them are certainly used with
multiple millions of messages daily, and I think the sample is large
enough to draw some conclusions:
It clearly indicates to me that at least the first and last reply codes
need to be the same. If they are NOT the same, >>>CODE BREAKS<<<. This
translates, to me, as indicating that we *NEED* to use "MUST" and not
Which is why I supported option (iii) in the earlier poll, which I beleve
showed an overwhelming consensus for requiring all the codes be the same.