Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.apache.commons.net.pop3;
 
 import java.util.List;
 
The POP3 class is not meant to be used by itself and is provided only so that you may easily implement your own POP3 client if you so desire. If you have no need to perform your own implementation, you should use POP3Client.

Rather than list it separately for each method, we mention here that every method communicating with the server and throwing an IOException can also throw a org.apache.commons.net.MalformedServerReplyException , which is a subclass of IOException. A MalformedServerReplyException will be thrown when the reply received from the server deviates enough from the protocol specification that it cannot be interpreted in a useful manner despite attempts to be as lenient as possible.

 
 
 public class POP3 extends SocketClient
 {
    
The default POP3 port. Set to 110 according to RFC 1288. *
 
     public static final int DEFAULT_PORT = 110;
    
A constant representing the state where the client is not yet connected to a POP3 server.
 
     public static final int DISCONNECTED_STATE = -1;
    
A constant representing the POP3 authorization state. *
 
     public static final int AUTHORIZATION_STATE = 0;
    
A constant representing the POP3 transaction state. *
 
     public static final int TRANSACTION_STATE = 1;
    
A constant representing the POP3 update state. *
 
     public static final int UPDATE_STATE = 2;
 
     static final String _OK = "+OK";
     // The reply indicating intermediate response to a command.
     static final String _OK_INT = "+ ";
     static final String _ERROR = "-ERR";
 
     // We have to ensure that the protocol communication is in ASCII
     // but we use ISO-8859-1 just in case 8-bit characters cross
     // the wire.
     static final String _DEFAULT_ENCODING = "ISO-8859-1";
 
     private int __popState;
 
     int _replyCode;
     List<String_replyLines;

    
A ProtocolCommandSupport object used to manage the registering of ProtocolCommandListeners and te firing of ProtocolCommandEvents.
 
     protected ProtocolCommandSupport _commandSupport_;

    
The default POP3Client constructor. Initializes the state to DISCONNECTED_STATE.
 
     public POP3()
    {
         = ;
         = null;
         = null;
         = new ArrayList<String>();
         = new ProtocolCommandSupport(this);
    }
    private void __getReply() throws IOException
    {
        String line;
        .clear();
        line = .readLine();
        if (line == null) {
            throw new EOFException("Connection closed without indication.");
        }
        if (line.startsWith()) {
             = .;
        } else if (line.startsWith()) {
             = .;
        } else if (line.startsWith()) {
             = .;
        } else {
            throw new
            MalformedServerReplyException(
                "Received invalid POP3 protocol response from server." + line);
        }
        .add(line);
         = line;
    }


    
Performs connection initialization and sets state to AUTHORIZATION_STATE .
    @Override
    protected void _connectAction_() throws IOException
    {
        super._connectAction_();
         =
          new CRLFLineReader(new InputStreamReader(,
                                                   ));
         =
          new BufferedWriter(new OutputStreamWriter(,
                                                    ));
        __getReply();
    }


    
Set the internal POP3 state.

Parameters:
state the new state. This must be one of the _STATE constants.
    public void setState(int state)
    {
         = state;
    }


    
Returns the current POP3 client state.

Returns:
The current POP3 client state.
    public int getState()
    {
        return ;
    }


    
Retrieves the additional lines of a multi-line server reply.
    public void getAdditionalReply() throws IOException
    {
        String line;
        line = .readLine();
        while (line != null)
        {
            .add(line);
            if (line.equals(".")) {
                break;
            }
            line = .readLine();
        }
    }


    
Disconnects the client from the server, and sets the state to DISCONNECTED_STATE . The reply text information from the last issued command is voided to allow garbage collection of the memory used to store that information.

Throws:
java.io.IOException If there is an error in disconnecting.
    @Override
    public void disconnect() throws IOException
    {
        super.disconnect();
         = null;
         = null;
         = null;
        .clear();
    }


    
Sends a command an arguments to the server and returns the reply code.

Parameters:
command The POP3 command to send.
args The command arguments.
Returns:
The server reply code (either POP3Reply.OK, POP3Reply.ERROR or POP3Reply.OK_INT).
    public int sendCommand(String commandString argsthrows IOException
    {
        if ( == null) {
            throw new IllegalStateException("Socket is not connected");
        }
        StringBuilder __commandBuffer = new StringBuilder();
        __commandBuffer.append(command);
        if (args != null)
        {
            __commandBuffer.append(' ');
            __commandBuffer.append(args);
        }
        __commandBuffer.append(.);
        String message = __commandBuffer.toString();
        .write(message);
        .flush();
        fireCommandSent(commandmessage);
        __getReply();
        return ;
    }

    
Sends a command with no arguments to the server and returns the reply code.

Parameters:
command The POP3 command to send.
Returns:
The server reply code (either POP3Reply.OK, POP3Reply.ERROR or POP3Reply.OK_INT).
    public int sendCommand(String commandthrows IOException
    {
        return sendCommand(commandnull);
    }

    
Sends a command an arguments to the server and returns the reply code.

Parameters:
command The POP3 command to send (one of the POP3Command constants).
args The command arguments.
Returns:
The server reply code (either POP3Reply.OK, POP3Reply.ERROR or POP3Reply.OK_INT).
    public int sendCommand(int commandString argsthrows IOException
    {
        return sendCommand(.[command], args);
    }

    
Sends a command with no arguments to the server and returns the reply code.

Parameters:
command The POP3 command to send (one of the POP3Command constants).
Returns:
The server reply code (either POP3Reply.OK, POP3Reply.ERROR or POP3Reply.OK_INT).
    public int sendCommand(int commandthrows IOException
    {
        return sendCommand(.[command], null);
    }


    
Returns an array of lines received as a reply to the last command sent to the server. The lines have end of lines truncated. If the reply is a single line, but its format ndicates it should be a multiline reply, then you must call getAdditionalReply() to fetch the rest of the reply, and then call getReplyStrings again. You only have to worry about this if you are implementing your own client using the sendCommand methods.

Returns:
The last server response.
    public String[] getReplyStrings()
    {
        return .toArray(new String[.size()]);
    }

    
Returns the reply to the last command sent to the server. The value is a single string containing all the reply lines including newlines. If the reply is a single line, but its format ndicates it should be a multiline reply, then you must call getAdditionalReply() to fetch the rest of the reply, and then call getReplyString again. You only have to worry about this if you are implementing your own client using the sendCommand methods.

Returns:
The last server response.
    public String getReplyString()
    {
        StringBuilder buffer = new StringBuilder(256);
        for (String entry : )
        {
            buffer.append(entry);
            buffer.append(.);
        }
        return buffer.toString();
    }

    
Removes a ProtocolCommandListener. Delegates this incorrectly named method - removeProtocolCommandistener (note the missing "L")- to the correct method org.apache.commons.net.SocketClient.removeProtocolCommandListener(org.apache.commons.net.ProtocolCommandListener)

Parameters:
listener The ProtocolCommandListener to remove
        removeProtocolCommandListener(listener);
    }

    
Provide command support to super-class
    @Override
        return ;
    }
New to GrepCode? Check out our FAQ X