Kai,

Interesting.  They appear to be improperly implementing RFC 2554, section 4.
I have committed the changes.  This may also address a similar report we had
recently.

        --- Noel

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Sunday, February 09, 2003 8:11
To: [EMAIL PROTECTED]
Subject: SMTP Auth incompatibility (fix included)


Hello,

I just discovered a small incompatibility between
my eMail Client (Forte Agent), and James in the way
they handle SMTP-AUTH.

If James requires SMTP Authentication, he sends something like this at the
start of an SMTP Session:

----
220 dualserver.buchseiten.com SMTP Server (JAMES SMTP Server 2.1.1a6) ready
Sun, 9 Feb 2003 11:32:22 +0100 (CET)
EHLO elias
250-dualserver.buchseiten.com Hello elias (192.168.0.112 [192.168.0.112])
250 AUTH LOGIN PLAIN

---

Now, as it turns out, Forte Agent would expect the
"250 AUTH LOGIN PLAIN" part of the EHLO Greeting in the Format "250
AUTH=LOGIN PLAIN" (Note the equals sign).

It simply does not try to authenticate if it receives the
above, and then reports an error if it gets a response
that authentification would have been required.

I tried the same with a Postfix setup, and Postfix sends an EHLO greeting
like this:

----
220 dualserver.buchseiten.com ESMTP Postfix (Debian/GNU)
EHLO elias
250-dualserver.buchseiten.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH GSSAPI CRAM-MD5 DIGEST-MD5 LOGIN PLAIN NTLM
250-AUTH=GSSAPI CRAM-MD5 DIGEST-MD5 LOGIN PLAIN NTLM
250-XVERP
250 8BITMIME
AUTH LOGIN
----

As you can see, there are 2 "250-AUTH" Statements - one without, and one
with an equals sign.

Forte Agent works perfectly well in conjuction with Postfix, so I guessed
the missing equals sign was the problem.

And actually, it was. I changed the following lines from
org/apache/james/smtpserver/SMTPHandler.java in the methods doHELO() and
doEHLO() (both contain partially the same code)

--- original ---
            if (theConfigData.isAuthRequired()) {
                writeLoggedResponse(responseString);
                responseString = "250 AUTH LOGIN PLAIN";
            }
----------------

---- fixed -----
            if (theConfigData.isAuthRequired()) {
                writeLoggedResponse(responseString);
                responseString = "250-AUTH LOGIN PLAIN";
                writeLoggedResponse(responseString);
                responseString = "250 AUTH=LOGIN PLAIN";
            }
----------------

After I rebuilt, it worked fine ..

I don't know if other eMail Clients are affected by this, but Forte Agent
definitely is.

with best regards,

   Kai Londenberg



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to