geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick McGuire <>
Subject Re: Geronimo 1.1.1's Javamail does not work for some SMTP server with more than 1 beginning lines
Date Tue, 21 Aug 2007 10:52:26 GMT
This is the first time I've encountered an SMTP server that sends a 
response back like this.  I've opened a JIRA for this issue:

and I'll take a look at fixing this.  Since I don't have access to an 
SMTP server that behaves this way, are you willing/able to help try out 
potential fixes?


Chua Chee Seng wrote:
> Hi,
> I am trying to use the Geronimo Javamail.  I have setup the resource and
> resource-ref stuff and try to send a mail from the application.  I turn off
> the debug flag and see the following in the console:-
> ...
> ESMTP Exim x.xx #1 Mon, 20 Aug 2007 16:29:11 +0800
> EHLO xxxxx
> 220-We do not authorize the use of this system to transport unsolicted,
> HELO xxxxx
> 220 and/or bulk email.
> ...
> An exception is then thrown complaining that it fails to send HELO to the
> server.
> When using telnet xxxx 25 to my SMTP server, I found out that once
> connected, the SMTP is sending back three lines of text:-
> ESMTP Exim x.xx #1 Mon, 20 Aug 2007 16:29:11 +0800
> 220-We do not authorize the use of this system to transport unsolicted,
> 220 and/or bulk email.
> I then try with a local SMTP using Apache JAMES, which successfully send the
> mail.  When I try to telnet localhost 25, it is sending back only one line
> of text:-
> 220 xxxx SMTP Server (JAMES SMTP Server 2.3.1) ready Mon, 20 Aug 2007
> 16:32:26 +0800 (SGT)
> I am suspecting Geronimo Javamail implementation (version 1.1.1) cannot be
> used on SMTP who sends back more than 1 lines of 220 service ready.  I
> investigate the source code of
> org.apache.geronimo.javamail.transport.smtp.SMTPTransport and study that
> getReply() method is using the receiveLine() method to read response from
> the server.  As receivedLine() is using end of stream (read() ==-1) or CR or
> LF to indicate end of response from server, so in the above scenario each
> 220 are identified as a response from the server.  After receiving the first
> 220, the client send a EHLO but fails as the server is sending back the 2nd
> 220.  The client then try to send a HELO but receive the 3rd 220, which it
> finally gave up and throw a fails to send HELO exception.
> I have switch to Sun Javamail implementation to solve the problem.  However,
> I personally prefer to use Geronimo implementation due to installation
> issue.  Is there a better way, or is it in the later version (Geronimo 1.2,
> 2.0, I didn't try  :P), the Geronimo Javamail can handle SMTP that sends
> more than 1 lines of 220 back to client (like the SMTP server that I am
> facing)?
> Thanks in advance for any advice.
> Best Regards,
> Chee Seng

View raw message