You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ji...@apache.org on 2004/06/07 00:14:54 UTC

[jira] Closed: (JAMES-24) fix for SMTP AUTH for Mac clients

Message:

   The following issue has been closed.

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/JAMES-24

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: JAMES-24
    Summary: fix for SMTP AUTH for Mac clients
       Type: Bug

     Status: Closed
 Resolution: FIXED

    Project: James
 Components: 
             SMTPServer
   Versions:
             2.0a2

   Assignee: 
   Reporter: Giles Chanot

    Created: Tue, 26 Feb 2002 11:30 AM
    Updated: Sun, 6 Jun 2004 3:14 PM
Environment: Operating System: All
Platform: All

Description:
SMTP AUTH on Mac clients (Outlook Express 5.0.2/5.0.3 and Mac OS X mail client) 
doesn't currently work with James 2.0a2.

The following changes to SMTPHandler.java seem to fix the issue:

    private void doHELO(String command,String argument,String argument1) {
        if (state.containsKey(CURRENT_HELO_MODE)) {
            out.println("250 " + state.get(SERVER_NAME)
            + " Duplicate HELO");
        } else if (argument == null) {
            out.println("501 domain address required: " + command);
        } else {
            state.put(CURRENT_HELO_MODE, command);
            state.put(NAME_GIVEN, argument);
            out.println( "250-" + state.get(SERVER_NAME) + " Hello "
            + argument + " (" + state.get(REMOTE_NAME)
            + " [" + state.get(REMOTE_IP) + "])");
            
            if (authRequired) {
                out.println("250 AUTH LOGIN PLAIN");
            }
        }
    }
    
    private void doEHLO(String command,String argument,String argument1) {
        if (state.containsKey(CURRENT_HELO_MODE)) {
            out.println("250 " + state.get(SERVER_NAME)
            + " Duplicate EHLO");
        } else if (argument == null) {
            out.println("501 domain address required: " + command);
        } else {
            state.put(CURRENT_HELO_MODE, command);
            state.put(NAME_GIVEN, argument);
            
            if (maxmessagesize > 0) {
                out.println("250-SIZE " + maxmessagesize);
            }
            
            out.println( "250-" + state.get(SERVER_NAME) + " Hello "
            + argument + " (" + state.get(REMOTE_NAME)
            + " [" + state.get(REMOTE_IP) + "])");
            
            if (authRequired) {
                out.println("250 AUTH LOGIN PLAIN");
            }   
        }        
    }

Basically, the Hello response from the server was coming after the 250 AUTH 
message, and doHELO() wasn't doing the 250 AUTH message at all.

See also the challenge string fix I posted to a previous bug (necessary for 
other clients).


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

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org