No, this is just a bug in the Geronimo SMTP code. The welcome protocol handler was not expecting a multi-line response, so things got out of sync. I have a fix for this already (pretty trivial), but I don't have a server that displays this behavior to text against.

Rick
'

Johannes Weberhofer, Weberhofer GmbH wrote:
Hi!

Have you tried to send via the smpt server with another mail-client and from the same IP? Have you checked if your server's ip is in an blacklict (try http://openrbl.org/ ). The issues sounds as if your server has been blocked at the smpt server for some reason!

Good luck,

Johnanes Weberhofer

Rick McGuire wrote:
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:

https://issues.apache.org/jira/browse/GERONIMO-3427

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?

Rick

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:-

...
220-xxx.xxx.xxx 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:-
220-xxx.xxx.xxx 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



Reply via email to