On Wed, 10 Apr 2002, Patrik Andreasen wrote:
> When exim (3.35) sends a message to a particular host I get the
> following error message back:
>
> margareta.rooth@???
> SMTP error from remote mailer after EHLO sense.botong.org:
> host mail.vansterpartiet.se [195.100.208.196]:
> 503 Already said EHLO
(1) The server is broken. Tell them to go and read RFC 2821. A client is
entitled to send EHLO as many times as it likes, as long as it doesn't
do so in the middle of a message transaction.
(2) However, Exim is also broken. This bug was pointed out to me only a
week or so ago. It sends EHLO twice under a rather rare circumstance.
This has presumably not been noticed before, because a properly function
server should accept multiple EHLOs. The entry in the ChangeLog for Exim
4.03 is this:
11. When Exim received a message other than from the daemon, there was one
situation in which it did not fork a separate process for delivery: when
synchronous delivery was requested (-odf) and it was running as root, or
was in an unprivileged mode. Not forking was an attempt to save some
resources (very early Exims ran as root more often) but has turned out to
be very rare. A bug has been discovered in this case: if the incoming
message was on a TLS session (from inetd, for example), but the outgoing
delivery was on an unencrypted TLS session, Exim got confused. The effect
was minimal: it sent two EHLO commands, but otherwise worked. In sorting
this out, I have abandoned the non-forking logic altogether in the
interests of simplicity.
I'm hoping to release Exim 4.03 next week sometime. However, that won't
help you with a Debian install for a while. One way round the problem is
to change the inetd command for Exim so that it doesn't use -odf (or
-odi, which is a synonym).
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.