/** * Writes a standard tagged OK response on completion of a command. * Response is writen as: * <pre> a01 OK COMMAND_NAME completed.</pre> * * @param command The ImapCommand which was completed. */ public void commandComplete(ImapCommand command) { commandComplete(command, null); }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { parser.endLine(request); session.unsolicitedResponses(response); response.commandComplete(this); } }
/** * @see com.icegreen.greenmail.imap.commands.CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { parser.endLine(request); session.unsolicitedResponses(response); response.commandComplete(this); } }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException { parser.endLine(request); response.byeResponse(BYE_MESSAGE); response.commandComplete(this); session.closeConnection(); } }
response.commandComplete(this);
@Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { String mailboxName = parser.mailbox(request); parser.endLine(request); session.getHost().subscribe(session.getUser(), mailboxName); session.unsolicitedResponses(response); response.commandComplete(this); } }
@Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { String mailboxName = parser.mailbox(request); parser.endLine(request); session.getHost().unsubscribe(session.getUser(), mailboxName); session.unsolicitedResponses(response); response.commandComplete(this); } }
@Override protected void doProcess(final ImapRequestLineReader request, final ImapResponse response, final ImapSession session) throws ProtocolException, FolderException, AuthorizationException { if(!session.getHost().getStore().isQuotaSupported()) { response.commandFailed(this,"Quota is not supported. Activate quota capability first"); } String root = parser.mailbox(request); // QUOTAROOT mailbox Quota[] quota = session.getHost().getStore().getQuota( root, session.getUser().getQualifiedMailboxName()); StringBuilder buf = new StringBuilder("QUOTAROOT "); buf.append(root); for (Quota q : quota) { buf.append(' '); appendQuotaRootName(q, buf); } response.untaggedResponse("QUOTAROOT "+root); for (Quota q : quota) { buf = new StringBuilder(); appendQuota(q, buf); response.untaggedResponse(buf.toString()); } response.commandComplete(this); } }
@Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException, AuthorizationException { String existingName = parser.mailbox(request); String newName = parser.mailbox(request); parser.endLine(request); session.getHost().renameMailbox(session.getUser(), existingName, newName); session.unsolicitedResponses(response); response.commandComplete(this); } }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException, AuthorizationException { String mailboxName = parser.mailbox(request); parser.endLine(request); session.getHost().createMailbox(session.getUser(), mailboxName); session.unsolicitedResponses(response); response.commandComplete(this); } }
@Override protected void doProcess(final ImapRequestLineReader request, final ImapResponse response, final ImapSession session) throws ProtocolException, FolderException, AuthorizationException { if(!session.getHost().getStore().isQuotaSupported()) { response.commandFailed(this,"Quota is not supported. Activate quota capability first"); } String root = parser.mailbox(request); // NAME root (name usage limit) Quota[] quota = session.getHost().getStore().getQuota( root, session.getUser().getQualifiedMailboxName()); for(Quota q: quota) { StringBuilder buf = new StringBuilder(); appendQuota(q, buf); response.untaggedResponse(buf.toString()); } response.commandComplete(this); }
response.commandComplete(this);
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { parser.endLine(request); if( session.getHost().getStore().isQuotaSupported()) { response.untaggedResponse(CAPABILITY_RESPONSE + SP + "QUOTA"); } else { response.untaggedResponse(CAPABILITY_RESPONSE); } session.unsolicitedResponses(response); response.commandComplete(this); } }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { parser.endLine(request); if (!session.getSelected().isReadonly()) { MailFolder folder = session.getSelected(); folder.expunge(); } session.deselect(); // Don't send unsolicited responses on close. session.unsolicitedResponses(response); response.commandComplete(this); } }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException, AuthorizationException { String mailboxName = parser.mailbox(request); parser.endLine(request); MailFolder folder = getMailbox(mailboxName, session, true); if (session.getSelected() != null && folder.getFullName().equals(session.getSelected().getFullName())) { session.deselect(); } session.getHost().deleteMailbox(session.getUser(), mailboxName); session.unsolicitedResponses(response); response.commandComplete(this); } }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException, FolderException { String mailboxName = appendCommandParser.mailbox(request); Flags flags = appendCommandParser.optionalAppendFlags(request); if (flags == null) { flags = new Flags(); } Date receivedDate = appendCommandParser.optionalDateTime(request); if (receivedDate == null) { receivedDate = new Date(); } MimeMessage message = appendCommandParser.mimeMessage(request); appendCommandParser.endLine(request); MailFolder folder; try { folder = getMailbox(mailboxName, session, true); } catch (FolderException e) { e.setResponseCode("TRYCREATE"); throw e; } long uid = folder.appendMessage(message, flags, receivedDate); session.unsolicitedResponses(response); response.commandComplete(this, "APPENDUID" + SP + folder.getUidValidity() + SP + uid); }
/** * @see CommandTemplate#doProcess */ @Override protected void doProcess(ImapRequestLineReader request, ImapResponse response, ImapSession session) throws ProtocolException { String userid = parser.astring(request); String password = parser.astring(request); parser.endLine(request); if (session.getUserManager().test(userid, password)) { GreenMailUser user = session.getUserManager().getUser(userid); session.setAuthenticated(user); response.commandComplete(this); } else { response.commandFailed(this, "Invalid login/password for user id "+userid); } } }
response.commandComplete(this, "READ-ONLY"); } else { response.commandComplete(this, "READ-WRITE");
response.commandComplete(this);
@Override protected void doProcess(final ImapRequestLineReader request, final ImapResponse response, final ImapSession session) { if(!session.getHost().getStore().isQuotaSupported()) { response.commandFailed(this,"Quota is not supported. Activate quota capability first"); } try { String root = parser.mailbox(request); Quota quota = new Quota(root); parser.consumeChar(request, ' '); parser.consumeChar(request, '('); quota.setResourceLimit(parser.astring(request), parser.consumeLong(request)); char c =request.nextWordChar(); if(')' != c) { quota.setResourceLimit(parser.astring(request), parser.consumeLong(request)); } parser.consumeChar(request, ')'); session.getHost().getStore().setQuota( quota, session.getUser().getQualifiedMailboxName()); response.commandComplete(this); } catch (ProtocolException e) { response.commandFailed(this, "Can not parse command"+e.getMessage()); } } }