On 11/04/2020 21:33, Grant Taylor wrote:
On 4/11/20 2:08 PM, antlists wrote:
Okay, it was a long time ago, and it was MS-Mail (Exchange's predecessor, for those who can remember back that far), but I had an argument with my boss. He was well annoyed with our ISP for complying with RFC's because they switched to ESMTP and MS-Mail promptly broke.

I don't recall any RFC (from the time) stating that ESMTP was REQUIRED. It may have been a SHOULD.

The ISP chose to make the change that resulted in ESMTP.

Yes. But as per spec ESMTP was/is compatible with SMTP.

Also, I'm fairly sure that MS-Mail didn't include SMTP in any capacity. It required an external MS-Mail SMTP gateway, which I Microsoft did sell, for an additional cost.

Yes, it is the gateway I'm talking about ...

Which was also a pain in the neck because it was single-threaded - if the ISP tried to send an incoming email at the same time the gateway tried to send, the gateway hung. You could pretty much guarantee most mornings I'd be in the server room deleting a bunch of private emails from the outgoing queue, and repeatedly rebooting until the queues in both directions managed to clear.

The *ONLY* acceptable reason for terminating a connection is when you recieve the command "BYE", so when Pipex sent us the command EHLO, MS-Mail promptly dropped the connection ...

I'll agree that what you're describing is per the (then) SMTP state machine.  We have sense seen a LOT of discussion about when it is proper or not proper to close the SMTP connection.

The point is that when the server sends EHLO, it is *not* a *permitted* response for the client to drop the connection.

If the MS-Mail SMTP gateway sent a 5xy error response, it could see how it could subsequently close the connection per protocol state machine.

Pipex, and I suspect other ISPs, had to implement an extended black list of customers who couldn't cope with ESMTP.

If the MS-Mail SMTP gateway hadn't closed the connection and instead just returned an error for the command being unknown / unsupported, Pipex would have quite likely tried a standard HELO immediately after getting the response.

That was the specification for ESMTP - the client should reject EHLO, the server tries again with HELO, and things (supposedly) proceed as they should. Which they can't, if the client improperly kills the connection.

Also, we're talking about the late '90s during the introduction of ESMTP, which was a wild west time for SMTP.

Which shouldn't have been a problem. ESMTP was designed to fall back gracefully to SMTP. But if clients don't behave correctly as per the SMTP spec, how can the server degrade gracefully?

Cheers,
Wol

Reply via email to