Examples of POP3Response


Examples of org.apache.james.protocols.pop3.POP3Response

  /*
   * (non-Javadoc)
   * @see org.apache.james.protocols.api.CommandHandler#onCommand(org.apache.james.protocols.api.ProtocolSession, org.apache.james.protocols.api.Request)
   */
    public Response onCommand(POP3Session session, Request request) {
      POP3Response response = new POP3Response(POP3Response.OK_RESPONSE,"Capability list follows");
   
    for (int i = 0; i < caps.size(); i++) {
      List<String> cList = caps.get(i).getImplementedCapabilities(session);
      for (int a = 0; a < cList.size(); a++) {
        response.appendLine(cList.get(a));
      }
    }
    response.appendLine(".");
    return response;
  }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

     * Handler method called upon receipt of a NOOP command.
     * Like all good NOOPs, does nothing much.
     *
   */
    public Response onCommand(POP3Session session, Request request) {
        POP3Response response = null;
        if (session.getHandlerState() == POP3Session.TRANSACTION) {
            response = new POP3Response(POP3Response.OK_RESPONSE);
        } else {
            response = new POP3Response(POP3Response.ERR_RESPONSE);
        }
        return response;  
    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

     * Handler method called upon receipt of a USER command.
     * Reads in the user id.
     *
   */
    public Response onCommand(POP3Session session, Request request) {
        POP3Response response = null;
        String parameters = request.getArgument();
        if (session.getHandlerState() == POP3Session.AUTHENTICATION_READY && parameters != null) {
            session.setUser(parameters);
            session.setHandlerState(POP3Session.AUTHENTICATION_USERSET);
            response = new POP3Response(POP3Response.OK_RESPONSE);
        } else {
            response = new POP3Response(POP3Response.ERR_RESPONSE);
        }
        return response;  
    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

     * Reads in and validates the password.
     *
   */
    public Response onCommand(POP3Session session, Request request) {
      String parameters = request.getArgument();
        POP3Response response = null;
        if (session.getHandlerState() == POP3Session.AUTHENTICATION_USERSET && parameters != null) {
            String passArg = parameters;
            if (authenticate(session.getUser(), passArg)) {
                try {
                    MailRepository inbox = mailServer.getUserInbox(session.getUser());
                    if (inbox == null) {
                        throw new IllegalStateException("MailServer returned a null inbox for "+session.getUser());
                    }
                    session.setUserInbox(inbox);
                    stat(session);
                   
                    // Store the ipAddress to use it later for pop before smtp
                    POP3BeforeSMTPHelper.addIPAddress(session.getRemoteIPAddress());
                   
                    StringBuilder responseBuffer =
                        new StringBuilder(64)
                                .append("Welcome ")
                                .append(session.getUser());
                    response = new POP3Response(POP3Response.OK_RESPONSE,responseBuffer.toString());
                    session.setHandlerState(POP3Session.TRANSACTION);
                } catch (RuntimeException e) {
                    session.getLogger().error("Unexpected error accessing mailbox for "+session.getUser(),e);
                    response = new POP3Response(POP3Response.ERR_RESPONSE,"Unexpected error accessing mailbox");
                    session.setHandlerState(POP3Session.AUTHENTICATION_READY);
                }
            } else {
                response = new POP3Response(POP3Response.ERR_RESPONSE, "Authentication failed.");

                session.setHandlerState(POP3Session.AUTHENTICATION_READY);
            }
        } else {
            response = new POP3Response(POP3Response.ERR_RESPONSE);
        }
        return response;   
    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

    /*
     * (non-Javadoc)
     * @see org.apache.james.api.protocol.CommandHandler#onCommand(org.apache.james.api.protocol.LogEnabledSession, org.apache.james.api.protocol.Request)
     */
    public Response onCommand(POP3Session session, Request request) {
        POP3Response response;
        // check if starttls is supported, the state is the right one and it was
        // not started before
        if (session.isStartTLSSupported() && session.getHandlerState() == POP3Session.AUTHENTICATION_READY
                && session.isTLSStarted() == false) {
            response = new POP3Response(POP3Response.OK_RESPONSE,"Begin TLS negotiation");
            session.writeResponse(response);
            try {
                session.startTLS();
            } catch (IOException e) {
                session.getLogger().info("Error while trying to secure connection", e);

                // disconnect
                response = new POP3Response(POP3Response.ERR_RESPONSE);
                response.setEndSession(true);
                return response;
            }
        } else {
            response = new POP3Response(POP3Response.ERR_RESPONSE);
            return response;
        }
        return null;
    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

   * Handler method called upon receipt of a RETR command. This command
   * retrieves a particular mail message from the mailbox.
   *
   */
  public Response onCommand(POP3Session session, Request request) {
    POP3Response response = null;
    String parameters = request.getArgument();
    if (session.getHandlerState() == POP3Session.TRANSACTION) {
      int num = 0;
      try {
        num = Integer.parseInt(parameters.trim());
      } catch (Exception e) {
        response = new POP3Response(POP3Response.ERR_RESPONSE,
            "Usage: RETR [mail number]");
        return response;
      }
      try {
        InputStream msgIn = getMessageInputstream(session, num);
        response = new POP3Response(POP3Response.OK_RESPONSE,
            "Message follows");
        try {

          // write the full mail to the client
          writeMessageContentTo(msgIn, response, -1);

        } finally {
          response.appendLine(".");

        }
        return response;

      } catch (IOException ioe) {
        response = new POP3Response(POP3Response.ERR_RESPONSE,
            "Error while retrieving message.");
      } catch (POP3Exception me) {
        response = new POP3Response(POP3Response.ERR_RESPONSE,
            "Error while retrieving message.");
      } catch (IndexOutOfBoundsException iob) {
        StringBuilder responseBuffer = new StringBuilder(64).append(
            "Message (").append(num).append(") does not exist.");
        response = new POP3Response(POP3Response.ERR_RESPONSE,
            responseBuffer.toString());
      }
    } else {
      response = new POP3Response(POP3Response.ERR_RESPONSE);
    }
    return response;
  }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

     * Handler method called upon receipt of a STAT command. Returns the number
     * of messages in the mailbox and its aggregate size.
     */
    @SuppressWarnings("unchecked")
    public Response onCommand(POP3Session session, Request request) {
        POP3Response response = null;
        if (session.getHandlerState() == POP3Session.TRANSACTION) {

            List<MessageMetaData> uidList = (List<MessageMetaData>) session.getState().get(POP3Session.UID_LIST);
            List<Long> deletedUidList = (List<Long>) session.getState().get(POP3Session.DELETED_UID_LIST);
            long size = 0;
            int count = 0;
            if (uidList.isEmpty() == false) {
                List<MessageMetaData> validResults = new ArrayList<MessageMetaData>();
                for (int i = 0; i < uidList.size(); i++) {
                    MessageMetaData data = uidList.get(i);
                    if (deletedUidList.contains(data.getUid()) == false) {
                        size += data.getSize();
                        count++;
                        validResults.add(data);
                    }
                }
            }
            StringBuilder responseBuffer = new StringBuilder(32).append(count).append(" ").append(size);
            response = new POP3Response(POP3Response.OK_RESPONSE, responseBuffer.toString());

        } else {
            response = new POP3Response(POP3Response.ERR_RESPONSE);
        }
        return response;
    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

     * to return]
     */
    @SuppressWarnings("unchecked")
    @Override
    public Response onCommand(POP3Session session, Request request) {
        POP3Response response = null;
        String parameters = request.getArgument();
        if (parameters == null) {
            response = new POP3Response(POP3Response.ERR_RESPONSE, "Usage: TOP [mail number] [Line number]");
            return response;
        }

        String argument = "";
        String argument1 = "";
        int pos = parameters.indexOf(" ");
        if (pos > 0) {
            argument = parameters.substring(0, pos);
            argument1 = parameters.substring(pos + 1);
        }

        if (session.getHandlerState() == POP3Session.TRANSACTION) {
            int num = 0;
            int lines = -1;
            try {
                num = Integer.parseInt(argument);
                lines = Integer.parseInt(argument1);
            } catch (NumberFormatException nfe) {
                response = new POP3Response(POP3Response.ERR_RESPONSE, "Usage: TOP [mail number] [Line number]");
                return response;
            }
            try {
                List<MessageMetaData> uidList = (List<MessageMetaData>) session.getState().get(POP3Session.UID_LIST);
                List<Long> deletedUidList = (List<Long>) session.getState().get(POP3Session.DELETED_UID_LIST);

                Long uid = uidList.get(num - 1).getUid();
                if (deletedUidList.contains(uid) == false) {

                    InputStream body = new CountingBodyInputStream(new ExtraDotInputStream(new CRLFTerminatedInputStream(session.getUserMailbox().getMessageBody(uid))), lines);
                    InputStream headers = session.getUserMailbox().getMessageHeaders(uid);
                    if (body != null && headers != null) {
                        response = new POP3StreamResponse(POP3Response.OK_RESPONSE, "Message follows", new SequenceInputStream(headers, body));
                        return response;

                    } else {
                        StringBuilder exceptionBuffer = new StringBuilder(64).append("Message (").append(num).append(") does not exist.");
                        response = new POP3Response(POP3Response.ERR_RESPONSE, exceptionBuffer.toString());
                    }

                } else {
                    StringBuilder responseBuffer = new StringBuilder(64).append("Message (").append(num).append(") already deleted.");
                    response = new POP3Response(POP3Response.ERR_RESPONSE, responseBuffer.toString());
                }
            } catch (IOException ioe) {
                response = new POP3Response(POP3Response.ERR_RESPONSE, "Error while retrieving message.");
            } catch (IndexOutOfBoundsException iob) {
                StringBuilder exceptionBuffer = new StringBuilder(64).append("Message (").append(num).append(") does not exist.");
                response = new POP3Response(POP3Response.ERR_RESPONSE, exceptionBuffer.toString());
            } catch (NoSuchElementException iob) {
                StringBuilder exceptionBuffer = new StringBuilder(64).append("Message (").append(num).append(") does not exist.");
                response = new POP3Response(POP3Response.ERR_RESPONSE, exceptionBuffer.toString());
            }
        } else {
            response = new POP3Response(POP3Response.ERR_RESPONSE);
        }
        return response;

    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

    /**
     * Handler method called upon receipt of an unrecognized command. Returns an
     * error response and logs the command.
     */
    public Response onCommand(POP3Session session, Request request) {
        return new POP3Response(POP3Response.ERR_RESPONSE);
    }
View Full Code Here

Examples of org.apache.james.protocols.pop3.POP3Response

     * @see
     * org.apache.james.protocols.api.handler.CommandHandler
     * #onCommand(org.apache.james.protocols.api.ProtocolSession, org.apache.james.protocols.api.Request)
     */
    public Response onCommand(POP3Session session, Request request) {
        POP3Response response = new POP3Response(POP3Response.OK_RESPONSE, "Capability list follows");

        for (int i = 0; i < caps.size(); i++) {
            List<String> cList = caps.get(i).getImplementedCapabilities(session);
            for (int a = 0; a < cList.size(); a++) {
                response.appendLine(cList.get(a));
            }
        }
        response.appendLine(".");
        return response;
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.