[ http://issues.apache.org/jira/browse/JAMES-479?page=all ]
     
Noel J. Bergman resolved JAMES-479:
-----------------------------------

    Resolution: Fixed

patch applied to SVN.

> HELO/EHLO must be send again after RSET. Thats wrong
> ----------------------------------------------------
>
>          Key: JAMES-479
>          URL: http://issues.apache.org/jira/browse/JAMES-479
>      Project: James
>         Type: Bug

>   Components: SMTPServer
>     Reporter: Norman Maurer
>  Attachments: HeloEhlo-rset-fix.patch
>
> Here is the orginal mail to james-dev:
> Hi,
> I recently upgraded from 2.2.0 to 2.3-dev.
> I've set myself up now with source from svn.
> Now that I have done so I find I have a problem with multiple mail
> clients connecting to the smtpserver.
> Below is a debug trace from the smtp log.
> The symptom shows up that I get an error 503 response from the SMTP
> server indicating that a MAIL command must be proceeded by a EHLO.
> This seems to result because a RSET command is sent between the EHLO and
> the MAIL.
> Not sure why the client wants to do this though but they do seem to call
> EHLO
> MAIL
> RCPT
> RSET
> RSET
> MAIL
> RCPT
> DATA
> This same client sequence does work with James 2.2.0.
> Here is the smtp log showing the above sequence and the error 503 on the 
> second MAIL.
> 15/04/06 22:43:53 INFO  smtpserver: Connection from localhost (127.0.0.1)
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 220 pjtconsulting SMTP Server
> (JAMES S
> MTP Server 2.3-dev) ready Sat, 15 Apr 2006 22:43:53 +1200 (NZST)
> 15/04/06 22:43:53 DEBUG smtpserver: Calling start()
> 15/04/06 22:43:53 DEBUG smtpserver: Watchdog default Worker #9 has time
> to sleep
> 360000
> 15/04/06 22:43:53 DEBUG smtpserver: Lookup command handler for command: EHLO
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250-pjtconsulting Hello
> pjtconsulting
> (localhost [127.0.0.1])
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250-PIPELINING
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250-ENHANCEDSTATUSCODES
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250 8BITMIME
> 15/04/06 22:43:53 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:53 DEBUG smtpserver: Lookup command handler for command: MAIL
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250 2.1.0 Sender
> <[EMAIL PROTECTED]> OK
> 15/04/06 22:43:53 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:53 DEBUG smtpserver: Lookup command handler for command: RCPT
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250 2.1.5 Recipient
> <[EMAIL PROTECTED]
> z> OK
> 15/04/06 22:43:53 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:53 DEBUG smtpserver: Lookup command handler for command: RSET
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250 2.0.0 OK
> 15/04/06 22:43:53 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:53 DEBUG smtpserver: Lookup command handler for command: RSET
> 15/04/06 22:43:53 DEBUG smtpserver: Sent: 250 2.0.0 OK
> 15/04/06 22:43:53 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:54 DEBUG smtpserver: Lookup command handler for command: MAIL
> 15/04/06 22:43:54 DEBUG smtpserver: Sent: 503 5.5.0 Need HELO or EHLO
> before MAI
> L
> 15/04/06 22:43:54 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:57 DEBUG smtpserver: Lookup command handler for command: QUIT
> 15/04/06 22:43:57 DEBUG smtpserver: Sent: 221 2.0.0 pjtconsulting
> Service closin
> g transmission channel
> 15/04/06 22:43:57 DEBUG smtpserver: Calling reset() default Worker #9
> 15/04/06 22:43:57 DEBUG smtpserver: Calling stop() default Worker #9
> 15/04/06 22:43:57 DEBUG smtpserver: Closing socket.
> 15/04/06 22:43:57 DEBUG smtpserver: Calling disposeWatchdog() default
> Worker #9
> 15/04/06 22:43:57 DEBUG smtpserver: Watchdog default Worker #9 is
> exiting run().
> 15/04/06 22:43:57 DEBUG smtpserver: Returning SMTPHandler to pool.
> 15/04/06 22:43:57 DEBUG smtpserver: Returning a
> org.apache.james.smtpserver.SMTP
> If I comment out the following code in the  MailCmdHandler things seem 
> to work.
> } else if (!session.getState().containsKey(SMTPSession.CURRENT_HELO_MODE)) {
>              responseString = "503 
> "+DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.DELIVERY_OTHER)+" 
> Need HELO or EHLO before MAIL";
>              session.writeResponse(responseString);
> It would appear this code isnt correct.  The RSET should only affect the 
> envelope and not affect the EHLO. Is this correct?
> Rgds,
> Phil

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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

Reply via email to