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 rd...@apache.org on 2008/05/12 22:53:16 UTC
svn commit: r655638 [1/2] - in
/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command:
./ imap4rev1/
Author: rdonkin
Date: Mon May 12 13:53:15 2008
New Revision: 655638
URL: http://svn.apache.org/viewvc?rev=655638&view=rev
Log:
Prune unused code
Modified:
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/CommandTemplate.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AppendCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AuthenticateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CapabilityCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CheckCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CloseCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CopyCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CreateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/DeleteCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExpungeCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/FetchCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ListCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LoginCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LogoutCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/NoopCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/RenameCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SearchCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SelectCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StatusCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StoreCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SubscribeCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/UidCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/UnsubscribeCommand.java
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/CommandTemplate.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/CommandTemplate.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/CommandTemplate.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/CommandTemplate.java Mon May 12 13:53:15 2008
@@ -42,37 +42,4 @@
{
return true;
}
-
- /**
- * Provides a message which describes the expected format and arguments
- * for this command. This is used to provide user feedback when a command
- * request is malformed.
- *
- * @return A message describing the command protocol format.
- */
- public String getExpectedMessage()
- {
- StringBuffer syntax = new StringBuffer( "<tag> " );
- syntax.append( getName() );
-
- String args = getArgSyntax();
- if ( args != null && args.length() > 0 ) {
- syntax.append( " " );
- syntax.append( args );
- }
-
- return syntax.toString();
- }
-
- /**
- * Provides the syntax for the command arguments if any. This value is used
- * to provide user feedback in the case of a malformed request.
- *
- * For commands which do not allow any arguments, <code>null</code> should
- * be returned.
- *
- * @return The syntax for the command arguments, or <code>null</code> for
- * commands without arguments.
- */
- public abstract String getArgSyntax();
}
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AppendCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AppendCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AppendCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AppendCommand.java Mon May 12 13:53:15 2008
@@ -22,7 +22,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
import org.apache.james.imap.command.AuthenticatedStateCommand;
-import org.apache.james.imap.command.CommandTemplate;
@@ -34,89 +33,9 @@
*/
class AppendCommand extends AuthenticatedStateCommand
{
- public static final String ARGS = "<mailbox> [<flag_list>] [<date_time>] literal";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.APPEND_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-/*
-6.3.11. APPEND Command
-
- Arguments: mailbox name
- OPTIONAL flag parenthesized list
- OPTIONAL date/time string
- message literal
-
- Responses: no specific responses for this command
-
- Result: OK - append completed
- NO - append error: can't append to that mailbox, error
- in flags or date/time or message text
- BAD - command unknown or arguments invalid
-
- The APPEND command appends the literal argument as a new message
- to the end of the specified destination mailbox. This argument
- SHOULD be in the format of an [RFC-822] message. 8-bit characters
- are permitted in the message. A server implementation that is
- unable to preserve 8-bit data properly MUST be able to reversibly
- convert 8-bit APPEND data to 7-bit using a [MIME-IMB] content
- transfer encoding.
-
- Note: There MAY be exceptions, e.g. draft messages, in which
- required [RFC-822] header lines are omitted in the message literal
- argument to APPEND. The full implications of doing so MUST be
- understood and carefully weighed.
-
- If a flag parenthesized list is specified, the flags SHOULD be set in
- the resulting message; otherwise, the flag list of the resulting
- message is set empty by default.
-
- If a date_time is specified, the internal date SHOULD be set in the
- resulting message; otherwise, the internal date of the resulting
- message is set to the current date and time by default.
-
- If the append is unsuccessful for any reason, the mailbox MUST be
- restored to its state before the APPEND attempt; no partial appending
- is permitted.
-
- If the destination mailbox does not exist, a server MUST return an
- error, and MUST NOT automatically create the mailbox. Unless it is
- certain that the destination mailbox can not be created, the server
- MUST send the response code "[TRYCREATE]" as the prefix of the text
- of the tagged NO response. This gives a hint to the client that it
- can attempt a CREATE command and retry the APPEND if the CREATE is
- successful.
-
- If the mailbox is currently selected, the normal new mail actions
- SHOULD occur. Specifically, the server SHOULD notify the client
- immediately via an untagged EXISTS response. If the server does not
- do so, the client MAY issue a NOOP command (or failing that, a CHECK
- command) after one or more APPEND commands.
-
- Example: C: A003 APPEND saved-messages (\Seen) {310}
- C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
- C: From: Fred Foobar <fo...@Blurdybloop.COM>
- C: Subject: afternoon meeting
- C: To: mooch@owatagu.siam.edu
- C: Message-Id: <B2...@Blurdybloop.COM>
- C: MIME-Version: 1.0
- C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
- C:
- C: Hello Joe, do you think we can meet at 3:30 tomorrow?
- C:
- S: A003 OK APPEND completed
-
- Note: the APPEND command is not used for message delivery, because
- it does not provide a mechanism to transfer [SMTP] envelope
- information.
-
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AuthenticateCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AuthenticateCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AuthenticateCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AuthenticateCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.NonAuthenticatedStateCommand;
@@ -32,86 +31,9 @@
*/
class AuthenticateCommand extends NonAuthenticatedStateCommand
{
- public static final String ARGS = "<auth_type> *(CRLF base64)";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.AUTHENTICATE_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.2.1. AUTHENTICATE Command
-
- Arguments: authentication mechanism name
-
- Responses: continuation data can be requested
-
- Result: OK - authenticate completed, now in authenticated state
- NO - authenticate failure: unsupported authentication
- mechanism, credentials rejected
- BAD - command unknown or arguments invalid,
- authentication exchange cancelled
-
- The AUTHENTICATE command indicates an authentication mechanism,
- such as described in [IMAP-AUTH], to the server. If the server
- supports the requested authentication mechanism, it performs an
- authentication protocol exchange to authenticate and identify the
- client. It MAY also negotiate an OPTIONAL protection mechanism
- for subsequent protocol interactions. If the requested
- authentication mechanism is not supported, the server SHOULD
- reject the AUTHENTICATE command by sending a tagged NO response.
-
- The authentication protocol exchange consists of a series of
- server challenges and client answers that are specific to the
- authentication mechanism. A server challenge consists of a
- command continuation request response with the "+" token followed
- by a BASE64 encoded string. The client answer consists of a line
- consisting of a BASE64 encoded string. If the client wishes to
- cancel an authentication exchange, it issues a line with a single
- "*". If the server receives such an answer, it MUST reject the
- AUTHENTICATE command by sending a tagged BAD response.
-
- A protection mechanism provides integrity and privacy protection
- to the connection. If a protection mechanism is negotiated, it is
- applied to all subsequent data sent over the connection. The
- protection mechanism takes effect immediately following the CRLF
- that concludes the authentication exchange for the client, and the
- CRLF of the tagged OK response for the server. Once the
- protection mechanism is in effect, the stream of command and
- response octets is processed into buffers of ciphertext. Each
- buffer is transferred over the connection as a stream of octets
- prepended with a four octet field in network byte order that
- represents the length of the following data. The maximum
- ciphertext buffer length is defined by the protection mechanism.
-
- Authentication mechanisms are OPTIONAL. Protection mechanisms are
- also OPTIONAL; an authentication mechanism MAY be implemented
- without any protection mechanism. If an AUTHENTICATE command
- fails with a NO response, the client MAY try another
- authentication mechanism by issuing another AUTHENTICATE command,
- or MAY attempt to authenticate by using the LOGIN command. In
- other words, the client MAY request authentication types in
- decreasing order of preference, with the LOGIN command as a last
- resort.
-
- Example: S: * OK KerberosV4 IMAP4rev1 Server
- C: A001 AUTHENTICATE KERBEROS_V4
- S: + AmFYig==
- C: BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT
- +nZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFd
- WwuQ1MWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh
- S: + or//EoAADZI=
- C: DiAF5A4gA+oOIALuBkAAmw==
- S: A001 OK Kerberos V4 authentication successful
-
- Note: the line breaks in the first client answer are for editorial
- clarity and are not in real authenticators.
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CapabilityCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CapabilityCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CapabilityCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CapabilityCommand.java Mon May 12 13:53:15 2008
@@ -31,87 +31,10 @@
*/
class CapabilityCommand extends CommandTemplate
{
- public static final String ARGS = null;
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.CAPABILITY_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.1.1. CAPABILITY Command
-
- Arguments: none
-
- Responses: REQUIRED untagged response: CAPABILITY
-
- Result: OK - capability completed
- BAD - command unknown or arguments invalid
-
- The CAPABILITY command requests a listing of capabilities that the
- server supports. The server MUST send a single untagged
- CAPABILITY response with "IMAP4rev1" as one of the listed
- capabilities before the (tagged) OK response. This listing of
- capabilities is not dependent upon connection state or user. It
- is therefore not necessary to issue a CAPABILITY command more than
- once in a connection.
-
- A capability name which begins with "AUTH=" indicates that the
- server supports that particular authentication mechanism. All
- such names are, by definition, part of this specification. For
- example, the authorization capability for an experimental
- "blurdybloop" authenticator would be "AUTH=XBLURDYBLOOP" and not
- "XAUTH=BLURDYBLOOP" or "XAUTH=XBLURDYBLOOP".
-
- Other capability names refer to extensions, revisions, or
- amendments to this specification. See the documentation of the
- CAPABILITY response for additional information. No capabilities,
- beyond the base IMAP4rev1 set defined in this specification, are
- enabled without explicit client action to invoke the capability.
-
- See the section entitled "Client Commands -
- Experimental/Expansion" for information about the form of site or
- implementation-specific capabilities.
-
- Example: C: abcd CAPABILITY
- S: * CAPABILITY IMAP4rev1 AUTH=KERBEROS_V4
- S: abcd OK CAPABILITY completed
-
-
-7.2.1. CAPABILITY Response
-
- Contents: capability listing
-
- The CAPABILITY response occurs as a result of a CAPABILITY
- command. The capability listing contains a space-separated
- listing of capability names that the server supports. The
- capability listing MUST include the atom "IMAP4rev1".
-
- A capability name which begins with "AUTH=" indicates that the
- server supports that particular authentication mechanism.
- Other capability names indicate that the server supports an
- extension, revision, or amendment to the IMAP4rev1 protocol.
- Server responses MUST conform to this document until the client
- issues a command that uses the associated capability.
-
- Capability names MUST either begin with "X" or be standard or
- standards-track IMAP4rev1 extensions, revisions, or amendments
- registered with IANA. A server MUST NOT offer unregistered or
- non-standard capability names, unless such names are prefixed with
- an "X".
-
- Client implementations SHOULD NOT require any capability name
- other than "IMAP4rev1", and MUST ignore any unknown capability
- names.
-
- Example: S: * CAPABILITY IMAP4rev1 AUTH=KERBEROS_V4 XPIG-LATIN
-
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CheckCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CheckCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CheckCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CheckCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.SelectedStateCommand;
@@ -32,44 +31,10 @@
*/
class CheckCommand extends SelectedStateCommand
{
- public static final String ARGS = null;
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.CHECK_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
- 6.4.1. CHECK Command
-
- Arguments: none
-
- Responses: no specific responses for this command
-
- Result: OK - check completed
- BAD - command unknown or arguments invalid
-
- The CHECK command requests a checkpoint of the currently selected
- mailbox. A checkpoint refers to any implementation-dependent
- housekeeping associated with the mailbox (e.g. resolving the
- server's in-memory state of the mailbox with the state on its
- disk) that is not normally executed as part of each command. A
- checkpoint MAY take a non-instantaneous amount of real time to
- complete. If a server implementation has no such housekeeping
- considerations, CHECK is equivalent to NOOP.
-
- There is no guarantee that an EXISTS untagged response will happen
- as a result of CHECK. NOOP, not CHECK, SHOULD be used for new
- mail polling.
-
- Example: C: FXXZ CHECK
- S: FXXZ OK CHECK Completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CloseCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CloseCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CloseCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CloseCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.SelectedStateCommand;
@@ -32,49 +31,10 @@
*/
class CloseCommand extends SelectedStateCommand
{
- public static final String ARGS = null;
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.CLOSE_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-/*
-6.4.2. CLOSE Command
-
- Arguments: none
-
- Responses: no specific responses for this command
-
- Result: OK - close completed, now in authenticated state
- NO - close failure: no mailbox selected
- BAD - command unknown or arguments invalid
-
- The CLOSE command permanently removes from the currently selected
- mailbox all messages that have the \Deleted flag set, and returns
- to authenticated state from selected state. No untagged EXPUNGE
- responses are sent.
-
- No messages are removed, and no error is given, if the mailbox is
- selected by an EXAMINE command or is otherwise selected read-only.
-
- Even if a mailbox is selected, a SELECT, EXAMINE, or LOGOUT
- command MAY be issued without previously issuing a CLOSE command.
- The SELECT, EXAMINE, and LOGOUT commands implicitly close the
- currently selected mailbox without doing an expunge. However,
- when many messages are deleted, a CLOSE-LOGOUT or CLOSE-SELECT
-
- sequence is considerably faster than an EXPUNGE-LOGOUT or
- EXPUNGE-SELECT because no untagged EXPUNGE responses (which the
- client would probably ignore) are sent.
-
- Example: C: A341 CLOSE
- S: A341 OK CLOSE completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CopyCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CopyCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CopyCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CopyCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.SelectedStateCommand;
@@ -32,49 +31,9 @@
*/
class CopyCommand extends SelectedStateCommand
{
- public static final String ARGS = "<message-set> <mailbox>";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.COPY_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-/*
-6.4.7. COPY Command
-
- Arguments: message set
- mailbox name
-
- Responses: no specific responses for this command
-
- Result: OK - copy completed
- NO - copy error: can't copy those messages or to that
- name
- BAD - command unknown or arguments invalid
-
- The COPY command copies the specified message(s) to the end of the
- specified destination mailbox. The flags and internal date of the
- message(s) SHOULD be preserved in the copy.
-
- If the destination mailbox does not exist, a server SHOULD return
- an error. It SHOULD NOT automatically create the mailbox. Unless
- it is certain that the destination mailbox can not be created, the
- server MUST send the response code "[TRYCREATE]" as the prefix of
- the text of the tagged NO response. This gives a hint to the
- client that it can attempt a CREATE command and retry the COPY if
- the CREATE is successful.
-
- If the COPY command is unsuccessful for any reason, server
- implementations MUST restore the destination mailbox to its state
- before the COPY attempt.
-
- Example: C: A003 COPY 2:4 MEETING
- S: A003 OK COPY completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CreateCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CreateCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CreateCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CreateCommand.java Mon May 12 13:53:15 2008
@@ -22,7 +22,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
import org.apache.james.imap.command.AuthenticatedStateCommand;
-import org.apache.james.imap.command.CommandTemplate;
/**
@@ -32,67 +31,10 @@
*/
class CreateCommand extends AuthenticatedStateCommand
{
- public static final String ARGS = "<mailbox>";
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.CREATE_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.3.3. CREATE Command
-
- Arguments: mailbox name
-
- Responses: no specific responses for this command
-
- Result: OK - create completed
- NO - create failure: can't create mailbox with that name
- BAD - command unknown or arguments invalid
-
- The CREATE command creates a mailbox with the given name. An OK
- response is returned only if a new mailbox with that name has been
- created. It is an error to attempt to create INBOX or a mailbox
- with a name that refers to an extant mailbox. Any error in
- creation will return a tagged NO response.
-
- If the mailbox name is suffixed with the server's hierarchy
- separator character (as returned from the server by a LIST
- command), this is a declaration that the client intends to create
- mailbox names under this name in the hierarchy. Server
- implementations that do not require this declaration MUST ignore
- it.
-
- If the server's hierarchy separator character appears elsewhere in
- the name, the server SHOULD create any superior hierarchical names
- that are needed for the CREATE command to complete successfully.
- In other words, an attempt to create "foo/bar/zap" on a server in
- which "/" is the hierarchy separator character SHOULD create foo/
- and foo/bar/ if they do not already exist.
-
- If a new mailbox is created with the same name as a mailbox which
- was deleted, its unique identifiers MUST be greater than any
- unique identifiers used in the previous incarnation of the mailbox
- UNLESS the new incarnation has a different unique identifier
- validity value. See the description of the UID command for more
- detail.
-
- Example: C: A003 CREATE owatagusiam/
- S: A003 OK CREATE completed
- C: A004 CREATE owatagusiam/blurdybloop
- S: A004 OK CREATE completed
-
- Note: the interpretation of this example depends on whether "/"
- was returned as the hierarchy separator from LIST. If "/" is the
- hierarchy separator, a new level of hierarchy named "owatagusiam"
- with a member called "blurdybloop" is created. Otherwise, two
- mailboxes at the same hierarchy level are created.
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/DeleteCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/DeleteCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/DeleteCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/DeleteCommand.java Mon May 12 13:53:15 2008
@@ -22,7 +22,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
import org.apache.james.imap.command.AuthenticatedStateCommand;
-import org.apache.james.imap.command.CommandTemplate;
/**
@@ -32,89 +31,9 @@
*/
class DeleteCommand extends AuthenticatedStateCommand
{
- public static final String ARGS = "<mailbox>";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.DELETE_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.3.4. DELETE Command
-
- Arguments: mailbox name
-
- Responses: no specific responses for this command
-
- Result: OK - delete completed
- NO - delete failure: can't delete mailbox with that name
- BAD - command unknown or arguments invalid
-
- The DELETE command permanently removes the mailbox with the given
- name. A tagged OK response is returned only if the mailbox has
- been deleted. It is an error to attempt to delete INBOX or a
- mailbox name that does not exist.
-
- The DELETE command MUST NOT remove inferior hierarchical names.
- For example, if a mailbox "foo" has an inferior "foo.bar"
- (assuming "." is the hierarchy delimiter character), removing
- "foo" MUST NOT remove "foo.bar". It is an error to attempt to
- delete a name that has inferior hierarchical names and also has
- the \Noselect mailbox name attribute (see the description of the
- LIST response for more details).
-
- It is permitted to delete a name that has inferior hierarchical
- names and does not have the \Noselect mailbox name attribute. In
- this case, all messages in that mailbox are removed, and the name
- will acquire the \Noselect mailbox name attribute.
-
- The value of the highest-used unique identifier of the deleted
- mailbox MUST be preserved so that a new mailbox created with the
- same name will not reuse the identifiers of the former
- incarnation, UNLESS the new incarnation has a different unique
- identifier validity value. See the description of the UID command
- for more detail.
-
-
- Examples: C: A682 LIST "" *
- S: * LIST () "/" blurdybloop
- S: * LIST (\Noselect) "/" foo
- S: * LIST () "/" foo/bar
- S: A682 OK LIST completed
- C: A683 DELETE blurdybloop
- S: A683 OK DELETE completed
- C: A684 DELETE foo
- S: A684 NO Name "foo" has inferior hierarchical names
- C: A685 DELETE foo/bar
- S: A685 OK DELETE Completed
- C: A686 LIST "" *
- S: * LIST (\Noselect) "/" foo
- S: A686 OK LIST completed
- C: A687 DELETE foo
- S: A687 OK DELETE Completed
-
-
- C: A82 LIST "" *
- S: * LIST () "." blurdybloop
- S: * LIST () "." foo
- S: * LIST () "." foo.bar
- S: A82 OK LIST completed
- C: A83 DELETE blurdybloop
- S: A83 OK DELETE completed
- C: A84 DELETE foo
- S: A84 OK DELETE Completed
- C: A85 LIST "" *
- S: * LIST () "." foo.bar
- S: A85 OK LIST completed
- C: A86 LIST "" %
- S: * LIST (\Noselect) "." foo
- S: A86 OK LIST completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExpungeCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExpungeCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExpungeCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExpungeCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.SelectedStateCommand;
@@ -32,46 +31,9 @@
*/
class ExpungeCommand extends SelectedStateCommand
{
- public static final String ARGS = null;
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.EXPUNGE_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-/*
-6.4.3. EXPUNGE Command
-
- Arguments: none
-
- Responses: untagged responses: EXPUNGE
-
- Result: OK - expunge completed
- NO - expunge failure: can't expunge (e.g. permission
- denied)
- BAD - command unknown or arguments invalid
-
- The EXPUNGE command permanently removes from the currently
- selected mailbox all messages that have the \Deleted flag set.
- Before returning an OK to the client, an untagged EXPUNGE response
- is sent for each message that is removed.
-
- Example: C: A202 EXPUNGE
- S: * 3 EXPUNGE
- S: * 3 EXPUNGE
- S: * 5 EXPUNGE
- S: * 8 EXPUNGE
- S: A202 OK EXPUNGE completed
-
- Note: in this example, messages 3, 4, 7, and 11 had the
- \Deleted flag set. See the description of the EXPUNGE
- response for further explanation.
-*/
-
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/FetchCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/FetchCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/FetchCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/FetchCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.SelectedStateCommand;
@@ -35,424 +34,9 @@
*/
class FetchCommand extends SelectedStateCommand
{
- public static final String ARGS = "<message-set> <fetch-profile>";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.FETCH_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-/*
-6.4.5. FETCH Command
-
- Arguments: message set
- message data item names
-
- Responses: untagged responses: FETCH
-
- Result: OK - fetch completed
- NO - fetch error: can't fetch that data
- BAD - command unknown or arguments invalid
-
- The FETCH command retrieves data associated with a message in the
- mailbox. The data items to be fetched can be either a single atom
- or a parenthesized list.
-
- The currently defined data items that can be fetched are:
-
- ALL Macro equivalent to: (FLAGS INTERNALDATE
- RFC822.SIZE ENVELOPE)
-
- BODY Non-extensible form of BODYSTRUCTURE.
-
- BODY[<section>]<<partial>>
- The text of a particular body section. The section
- specification is a set of zero or more part
- specifiers delimited by periods. A part specifier
- is either a part number or one of the following:
- HEADER, HEADER.FIELDS, HEADER.FIELDS.NOT, MIME, and
- TEXT. An empty section specification refers to the
- entire message, including the header.
-
- Every message has at least one part number.
- Non-[MIME-IMB] messages, and non-multipart
- [MIME-IMB] messages with no encapsulated message,
- only have a part 1.
-
- Multipart messages are assigned consecutive part
- numbers, as they occur in the message. If a
- particular part is of type message or multipart,
- its parts MUST be indicated by a period followed by
- the part number within that nested multipart part.
-
- A part of type MESSAGE/RFC822 also has nested part
- numbers, referring to parts of the MESSAGE part's
- body.
-
- The HEADER, HEADER.FIELDS, HEADER.FIELDS.NOT, and
- TEXT part specifiers can be the sole part specifier
- or can be prefixed by one or more numeric part
- specifiers, provided that the numeric part
- specifier refers to a part of type MESSAGE/RFC822.
- The MIME part specifier MUST be prefixed by one or
- more numeric part specifiers.
-
- The HEADER, HEADER.FIELDS, and HEADER.FIELDS.NOT
- part specifiers refer to the [RFC-822] header of
- the message or of an encapsulated [MIME-IMT]
- MESSAGE/RFC822 message. HEADER.FIELDS and
- HEADER.FIELDS.NOT are followed by a list of
- field-name (as defined in [RFC-822]) names, and
- return a subset of the header. The subset returned
- by HEADER.FIELDS contains only those header fields
- with a field-name that matches one of the names in
- the list; similarly, the subset returned by
- HEADER.FIELDS.NOT contains only the header fields
- with a non-matching field-name. The field-matching
- is case-insensitive but otherwise exact. In all
- cases, the delimiting blank line between the header
- and the body is always included.
-
- The MIME part specifier refers to the [MIME-IMB]
- header for this part.
-
- The TEXT part specifier refers to the text body of
- the message, omitting the [RFC-822] header.
-
-
- Here is an example of a complex message
- with some of its part specifiers:
-
- HEADER ([RFC-822] header of the message)
- TEXT MULTIPART/MIXED
- 1 TEXT/PLAIN
- 2 APPLICATION/OCTET-STREAM
- 3 MESSAGE/RFC822
- 3.HEADER ([RFC-822] header of the message)
- 3.TEXT ([RFC-822] text body of the message)
- 3.1 TEXT/PLAIN
- 3.2 APPLICATION/OCTET-STREAM
- 4 MULTIPART/MIXED
- 4.1 IMAGE/GIF
- 4.1.MIME ([MIME-IMB] header for the IMAGE/GIF)
- 4.2 MESSAGE/RFC822
- 4.2.HEADER ([RFC-822] header of the message)
- 4.2.TEXT ([RFC-822] text body of the message)
- 4.2.1 TEXT/PLAIN
- 4.2.2 MULTIPART/ALTERNATIVE
- 4.2.2.1 TEXT/PLAIN
- 4.2.2.2 TEXT/RICHTEXT
-
-
- It is possible to fetch a substring of the
- designated text. This is done by appending an open
- angle bracket ("<"), the octet position of the
- first desired octet, a period, the maximum number
- of octets desired, and a close angle bracket (">")
- to the part specifier. If the starting octet is
- beyond the end of the text, an empty string is
- returned.
-
- Any partial fetch that attempts to read beyond the
- end of the text is truncated as appropriate. A
- partial fetch that starts at octet 0 is returned as
- a partial fetch, even if this truncation happened.
-
- Note: this means that BODY[]<0.2048> of a
- 1500-octet message will return BODY[]<0>
- with a literal of size 1500, not BODY[].
-
- Note: a substring fetch of a
- HEADER.FIELDS or HEADER.FIELDS.NOT part
- specifier is calculated after subsetting
- the header.
-
-
- The \Seen flag is implicitly set; if this causes
- the flags to change they SHOULD be included as part
- of the FETCH responses.
-
- BODY.PEEK[<section>]<<partial>>
- An alternate form of BODY[<section>] that does not
- implicitly set the \Seen flag.
-
- BODYSTRUCTURE The [MIME-IMB] body structure of the message. This
- is computed by the server by parsing the [MIME-IMB]
- header fields in the [RFC-822] header and
- [MIME-IMB] headers.
-
- ENVELOPE The envelope structure of the message. This is
- computed by the server by parsing the [RFC-822]
- header into the component parts, defaulting various
- fields as necessary.
-
- FAST Macro equivalent to: (FLAGS INTERNALDATE
- RFC822.SIZE)
-
- FLAGS The flags that are set for this message.
-
- FULL Macro equivalent to: (FLAGS INTERNALDATE
- RFC822.SIZE ENVELOPE BODY)
-
- INTERNALDATE The internal date of the message.
-
- RFC822 Functionally equivalent to BODY[], differing in the
- syntax of the resulting untagged FETCH data (RFC822
- is returned).
-
- RFC822.HEADER Functionally equivalent to BODY.PEEK[HEADER],
- differing in the syntax of the resulting untagged
- FETCH data (RFC822.HEADER is returned).
-
- RFC822.SIZE The [RFC-822] size of the message.
-
- RFC822.TEXT Functionally equivalent to BODY[TEXT], differing in
- the syntax of the resulting untagged FETCH data
- (RFC822.TEXT is returned).
-
- UID The unique identifier for the message.
-
- Example: C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])
- S: * 2 FETCH ....
- S: * 3 FETCH ....
- S: * 4 FETCH ....
- S: A654 OK FETCH completed
-
-
-7.4.2. FETCH Response
-
- Contents: message data
-
- The FETCH response returns data about a message to the client.
- The data are pairs of data item names and their values in
- parentheses. This response occurs as the result of a FETCH or
- STORE command, as well as by unilateral server decision (e.g. flag
- updates).
-
- The current data items are:
-
- BODY A form of BODYSTRUCTURE without extension data.
-
- BODY[<section>]<<origin_octet>>
- A string expressing the body contents of the
- specified section. The string SHOULD be
- interpreted by the client according to the content
- transfer encoding, body type, and subtype.
-
- If the origin octet is specified, this string is a
- substring of the entire body contents, starting at
- that origin octet. This means that BODY[]<0> MAY
- be truncated, but BODY[] is NEVER truncated.
-
- 8-bit textual data is permitted if a [CHARSET]
- identifier is part of the body parameter
- parenthesized list for this section. Note that
- headers (part specifiers HEADER or MIME, or the
- header portion of a MESSAGE/RFC822 part), MUST be
- 7-bit; 8-bit characters are not permitted in
- headers. Note also that the blank line at the end
- of the header is always included in header data.
-
- Non-textual data such as binary data MUST be
- transfer encoded into a textual form such as BASE64
- prior to being sent to the client. To derive the
- original binary data, the client MUST decode the
- transfer encoded string.
-
- BODYSTRUCTURE A parenthesized list that describes the [MIME-IMB]
- body structure of a message. This is computed by
- the server by parsing the [MIME-IMB] header fields,
- defaulting various fields as necessary.
-
- For example, a simple text message of 48 lines and
- 2279 octets can have a body structure of: ("TEXT"
- "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 2279
- 48)
-
- Multiple parts are indicated by parenthesis
- nesting. Instead of a body type as the first
- element of the parenthesized list there is a nested
- body. The second element of the parenthesized list
- is the multipart subtype (mixed, digest, parallel,
- alternative, etc.).
-
- For example, a two part message consisting of a
- text and a BASE645-encoded text attachment can have
- a body structure of: (("TEXT" "PLAIN" ("CHARSET"
- "US-ASCII") NIL NIL "7BIT" 1152 23)("TEXT" "PLAIN"
- ("CHARSET" "US-ASCII" "NAME" "cc.diff")
- "<96...@cac.washington.edu>"
- "Compiler diff" "BASE64" 4554 73) "MIXED"))
-
- Extension data follows the multipart subtype.
- Extension data is never returned with the BODY
- fetch, but can be returned with a BODYSTRUCTURE
- fetch. Extension data, if present, MUST be in the
- defined order.
-
- The extension data of a multipart body part are in
- the following order:
-
- body parameter parenthesized list
- A parenthesized list of attribute/value pairs
- [e.g. ("foo" "bar" "baz" "rag") where "bar" is
- the value of "foo" and "rag" is the value of
- "baz"] as defined in [MIME-IMB].
-
- body disposition
- A parenthesized list, consisting of a
- disposition type string followed by a
- parenthesized list of disposition
- attribute/value pairs. The disposition type and
- attribute names will be defined in a future
- standards-track revision to [DISPOSITION].
-
- body language
- A string or parenthesized list giving the body
- language value as defined in [LANGUAGE-TAGS].
-
- Any following extension data are not yet defined in
- this version of the protocol. Such extension data
- can consist of zero or more NILs, strings, numbers,
- or potentially nested parenthesized lists of such
- data. Client implementations that do a
- BODYSTRUCTURE fetch MUST be prepared to accept such
- extension data. Server implementations MUST NOT
- send such extension data until it has been defined
- by a revision of this protocol.
-
- The basic fields of a non-multipart body part are
- in the following order:
-
- body type
- A string giving the content media type name as
- defined in [MIME-IMB].
-
- body subtype
- A string giving the content subtype name as
- defined in [MIME-IMB].
-
- body parameter parenthesized list
- A parenthesized list of attribute/value pairs
- [e.g. ("foo" "bar" "baz" "rag") where "bar" is
- the value of "foo" and "rag" is the value of
- "baz"] as defined in [MIME-IMB].
-
- body id
- A string giving the content id as defined in
- [MIME-IMB].
-
- body description
- A string giving the content description as
- defined in [MIME-IMB].
-
- body encoding
- A string giving the content transfer encoding as
- defined in [MIME-IMB].
-
- body size
- A number giving the size of the body in octets.
- Note that this size is the size in its transfer
- encoding and not the resulting size after any
- decoding.
-
- A body type of type MESSAGE and subtype RFC822
- contains, immediately after the basic fields, the
- envelope structure, body structure, and size in
- text lines of the encapsulated message.
-
- A body type of type TEXT contains, immediately
- after the basic fields, the size of the body in
- text lines. Note that this size is the size in its
- content transfer encoding and not the resulting
- size after any decoding.
-
- Extension data follows the basic fields and the
- type-specific fields listed above. Extension data
- is never returned with the BODY fetch, but can be
- returned with a BODYSTRUCTURE fetch. Extension
- data, if present, MUST be in the defined order.
-
- The extension data of a non-multipart body part are
- in the following order:
-
- body MD5
- A string giving the body MD5 value as defined in
- [MD5].
-
- body disposition
- A parenthesized list with the same content and
- function as the body disposition for a multipart
- body part.
-
- body language
- A string or parenthesized list giving the body
- language value as defined in [LANGUAGE-TAGS].
-
- Any following extension data are not yet defined in
- this version of the protocol, and would be as
- described above under multipart extension data.
-
- ENVELOPE A parenthesized list that describes the envelope
- structure of a message. This is computed by the
- server by parsing the [RFC-822] header into the
- component parts, defaulting various fields as
- necessary.
-
- The fields of the envelope structure are in the
- following order: date, subject, from, sender,
- reply-to, to, cc, bcc, in-reply-to, and message-id.
- The date, subject, in-reply-to, and message-id
- fields are strings. The from, sender, reply-to,
- to, cc, and bcc fields are parenthesized lists of
- address structures.
-
- An address structure is a parenthesized list that
- describes an electronic mail address. The fields
- of an address structure are in the following order:
- personal name, [SMTP] at-domain-list (source
- route), mailbox name, and host name.
-
- [RFC-822] group syntax is indicated by a special
- form of address structure in which the host name
- field is NIL. If the mailbox name field is also
- NIL, this is an end of group marker (semi-colon in
- RFC 822 syntax). If the mailbox name field is
- non-NIL, this is a start of group marker, and the
- mailbox name field holds the group name phrase.
-
- Any field of an envelope or address structure that
- is not applicable is presented as NIL. Note that
- the server MUST default the reply-to and sender
- fields from the from field; a client is not
- expected to know to do this.
-
- FLAGS A parenthesized list of flags that are set for this
- message.
-
- INTERNALDATE A string representing the internal date of the
- message.
-
- RFC822 Equivalent to BODY[].
-
- RFC822.HEADER Equivalent to BODY.PEEK[HEADER].
-
- RFC822.SIZE A number expressing the [RFC-822] size of the
- message.
-
- RFC822.TEXT Equivalent to BODY[TEXT].
-
- UID A number expressing the unique identifier of the
- message.
-
-
- Example: S: * 23 FETCH (FLAGS (\Seen) RFC822.SIZE 44827)
-
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ListCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ListCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ListCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ListCommand.java Mon May 12 13:53:15 2008
@@ -22,7 +22,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
import org.apache.james.imap.command.AuthenticatedStateCommand;
-import org.apache.james.imap.command.CommandTemplate;
@@ -33,174 +32,9 @@
*/
class ListCommand extends AuthenticatedStateCommand
{
- public static final String ARGS = "<reference-name> <mailbox-name-with-wildcards>";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.LIST_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.3..8. LIST Command
-
- Arguments: reference name
- mailbox name with possible wildcards
-
- Responses: untagged responses: LIST
-
- Result: OK - list completed
- NO - list failure: can't list that reference or name
- BAD - command unknown or arguments invalid
-
- The LIST command returns a subset of names from the complete set
- of all names available to the client. Zero or more untagged LIST
- replies are returned, containing the name attributes, hierarchy
- delimiter, and name; see the description of the LIST reply for
- more detail.
-
- The LIST command SHOULD return its data quickly, without undue
- delay. For example, it SHOULD NOT go to excess trouble to
- calculate \Marked or \Unmarked status or perform other processing;
- if each name requires 1 second of processing, then a list of 1200
- names would take 20 minutes!
-
- An empty ("" string) reference name argument indicates that the
- mailbox name is interpreted as by SELECT. The returned mailbox
- names MUST match the supplied mailbox name pattern. A non-empty
- reference name argument is the name of a mailbox or a level of
- mailbox hierarchy, and indicates a context in which the mailbox
- name is interpreted in an implementation-defined manner.
-
- An empty ("" string) mailbox name argument is a special request to
- return the hierarchy delimiter and the root name of the name given
- in the reference. The value returned as the root MAY be null if
- the reference is non-rooted or is null. In all cases, the
- hierarchy delimiter is returned. This permits a client to get the
- hierarchy delimiter even when no mailboxes by that name currently
- exist.
-
- The reference and mailbox name arguments are interpreted, in an
- implementation-dependent fashion, into a canonical form that
- represents an unambiguous left-to-right hierarchy. The returned
- mailbox names will be in the interpreted form.
-
- Any part of the reference argument that is included in the
- interpreted form SHOULD prefix the interpreted form. It SHOULD
- also be in the same form as the reference name argument. This
- rule permits the client to determine if the returned mailbox name
- is in the context of the reference argument, or if something about
- the mailbox argument overrode the reference argument. Without
- this rule, the client would have to have knowledge of the server's
- naming semantics including what characters are "breakouts" that
- override a naming context.
-
- For example, here are some examples of how references and mailbox
- names might be interpreted on a UNIX-based server:
-
- Reference Mailbox Name Interpretation
- ------------ ------------ --------------
- ~smith/Mail/ foo.* ~smith/Mail/foo.*
- archive/ % archive/%
- #news. comp.mail.* #news.comp.mail.*
- ~smith/Mail/ /usr/doc/foo /usr/doc/foo
- archive/ ~fred/Mail/* ~fred/Mail/*
-
- The first three examples demonstrate interpretations in the
- context of the reference argument. Note that "~smith/Mail" SHOULD
- NOT be transformed into something like "/u2/users/smith/Mail", or
- it would be impossible for the client to determine that the
- interpretation was in the context of the reference.
-
- The character "*" is a wildcard, and matches zero or more
- characters at this position. The character "%" is similar to "*",
- but it does not match a hierarchy delimiter. If the "%" wildcard
- is the last character of a mailbox name argument, matching levels
- of hierarchy are also returned. If these levels of hierarchy are
- not also selectable mailboxes, they are returned with the
- \Noselect mailbox name attribute (see the description of the LIST
- response for more details).
-
- Server implementations are permitted to "hide" otherwise
- accessible mailboxes from the wildcard characters, by preventing
- certain characters or names from matching a wildcard in certain
- situations. For example, a UNIX-based server might restrict the
- interpretation of "*" so that an initial "/" character does not
- match.
-
- The special name INBOX is included in the output from LIST, if
- INBOX is supported by this server for this user and if the
- uppercase string "INBOX" matches the interpreted reference and
- mailbox name arguments with wildcards as described above. The
- criteria for omitting INBOX is whether SELECT INBOX will return
- failure; it is not relevant whether the user's real INBOX resides
- on this or some other server.
-
- Example: C: A101 LIST "" ""
- S: * LIST (\Noselect) "/" ""
- S: A101 OK LIST Completed
- C: A102 LIST #news.comp.mail.misc ""
- S: * LIST (\Noselect) "." #news.
- S: A102 OK LIST Completed
- C: A103 LIST /usr/staff/jones ""
- S: * LIST (\Noselect) "/" /
- S: A103 OK LIST Completed
- C: A202 LIST ~/Mail/ %
- S: * LIST (\Noselect) "/" ~/Mail/foo
- S: * LIST () "/" ~/Mail/meetings
- S: A202 OK LIST completed
-
-7.2.2. LIST Response
-
- Contents: name attributes
- hierarchy delimiter
- name
-
- The LIST response occurs as a result of a LIST command. It
- returns a single name that matches the LIST specification. There
- can be multiple LIST responses for a single LIST command.
-
- Four name attributes are defined:
-
- \Noinferiors It is not possible for any child levels of
- hierarchy to exist under this name; no child levels
- exist now and none can be created in the future.
-
- \Noselect It is not possible to use this name as a selectable
- mailbox.
-
- \Marked The mailbox has been marked "interesting" by the
- server; the mailbox probably contains messages that
- have been added since the last time the mailbox was
- selected.
-
- \Unmarked The mailbox does not contain any additional
- messages since the last time the mailbox was
- selected.
-
- If it is not feasible for the server to determine whether the
- mailbox is "interesting" or not, or if the name is a \Noselect
- name, the server SHOULD NOT send either \Marked or \Unmarked.
-
- The hierarchy delimiter is a character used to delimit levels of
- hierarchy in a mailbox name. A client can use it to create child
- mailboxes, and to search higher or lower levels of naming
- hierarchy. All children of a top-level hierarchy node MUST use
- the same separator character. A NIL hierarchy delimiter means
- that no hierarchy exists; the name is a "flat" name.
-
- The name represents an unambiguous left-to-right hierarchy, and
- MUST be valid for use as a reference in LIST and LSUB commands.
- Unless \Noselect is indicated, the name MUST also be valid as an
- argument for commands, such as SELECT, that accept mailbox
- names.
-
- Example: S: * LIST (\Noselect) "/" ~/Mail/foo
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LoginCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LoginCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LoginCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LoginCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.NonAuthenticatedStateCommand;
@@ -33,36 +32,9 @@
*/
class LoginCommand extends NonAuthenticatedStateCommand
{
- public static final String ARGS = "<userid> <password>";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.LOGIN_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.2.2. LOGIN Command
-
- Arguments: user name
- password
-
- Responses: no specific responses for this command
-
- Result: OK - login completed, now in authenticated state
- NO - login failure: user name or password rejected
- BAD - command unknown or arguments invalid
-
- The LOGIN command identifies the client to the server and carries
- the plaintext password authenticating this user.
-
- Example: C: a001 LOGIN SMITH SESAME
- S: a001 OK LOGIN completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LogoutCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LogoutCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LogoutCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LogoutCommand.java Mon May 12 13:53:15 2008
@@ -31,38 +31,9 @@
*/
class LogoutCommand extends CommandTemplate
{
- public static final String ARGS = null;
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.LOGOUT_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.1.3. LOGOUT Command
-
- Arguments: none
-
- Responses: REQUIRED untagged response: BYE
-
- Result: OK - logout completed
- BAD - command unknown or arguments invalid
-
- The LOGOUT command informs the server that the client is done with
- the connection. The server MUST send a BYE untagged response
- before the (tagged) OK response, and then close the network
- connection.
-
- Example: C: A023 LOGOUT
- S: * BYE IMAP4rev1 Server logging out
- S: A023 OK LOGOUT completed
- (Server and client then close the connection)
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/NoopCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/NoopCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/NoopCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/NoopCommand.java Mon May 12 13:53:15 2008
@@ -31,46 +31,9 @@
*/
class NoopCommand extends CommandTemplate
{
- public static final String ARGS = null;
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.NOOP_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.1.2. NOOP Command
-
- Arguments: none
-
- Responses: no specific responses for this command (but see below)
-
- Result: OK - noop completed
- BAD - command unknown or arguments invalid
-
- The NOOP command always succeeds. It does nothing.
-
- Since any command can return a status update as untagged data, the
- NOOP command can be used as a periodic poll for new messages or
- message status updates during a period of inactivity. The NOOP
- command can also be used to reset any inactivity autologout timer
- on the server.
-
- Example: C: a002 NOOP
- S: a002 OK NOOP completed
- . . .
- C: a047 NOOP
- S: * 22 EXPUNGE
- S: * 23 EXISTS
- S: * 3 RECENT
- S: * 14 FETCH (FLAGS (\Seen \Deleted))
- S: a047 OK NOOP completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/RenameCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/RenameCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/RenameCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/RenameCommand.java Mon May 12 13:53:15 2008
@@ -22,7 +22,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
import org.apache.james.imap.command.AuthenticatedStateCommand;
-import org.apache.james.imap.command.CommandTemplate;
/**
@@ -32,82 +31,9 @@
*/
class RenameCommand extends AuthenticatedStateCommand
{
- public static final String ARGS = "existing-mailbox-name SPACE new-mailbox-name";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.RENAME_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.3.5. RENAME Command
-
- Arguments: existing mailbox name
- new mailbox name
-
- Responses: no specific responses for this command
-
- Result: OK - rename completed
- NO - rename failure: can't rename mailbox with that name,
- can't rename to mailbox with that name
- BAD - command unknown or arguments invalid
-
- The RENAME command changes the name of a mailbox. A tagged OK
- response is returned only if the mailbox has been renamed. It is
- an error to attempt to rename from a mailbox name that does not
- exist or to a mailbox name that already exists. Any error in
- renaming will return a tagged NO response.
-
- If the name has inferior hierarchical names, then the inferior
- hierarchical names MUST also be renamed. For example, a rename of
- "foo" to "zap" will rename "foo/bar" (assuming "/" is the
- hierarchy delimiter character) to "zap/bar".
-
- The value of the highest-used unique identifier of the old mailbox
- name MUST be preserved so that a new mailbox created with the same
- name will not reuse the identifiers of the former incarnation,
- UNLESS the new incarnation has a different unique identifier
- validity value. See the description of the UID command for more
- detail.
-
- Renaming INBOX is permitted, and has special behavior. It moves
- all messages in INBOX to a new mailbox with the given name,
- leaving INBOX empty. If the server implementation supports
- inferior hierarchical names of INBOX, these are unaffected by a
- rename of INBOX.
-
- Examples: C: A682 LIST "" *
- S: * LIST () "/" blurdybloop
- S: * LIST (\Noselect) "/" foo
- S: * LIST () "/" foo/bar
- S: A682 OK LIST completed
- C: A683 RENAME blurdybloop sarasoop
- S: A683 OK RENAME completed
- C: A684 RENAME foo zowie
- S: A684 OK RENAME Completed
- C: A685 LIST "" *
- S: * LIST () "/" sarasoop
- S: * LIST (\Noselect) "/" zowie
- S: * LIST () "/" zowie/bar
- S: A685 OK LIST completed
-
- C: Z432 LIST "" *
- S: * LIST () "." INBOX
- S: * LIST () "." INBOX.bar
- S: Z432 OK LIST completed
- C: Z433 RENAME INBOX old-mail
- S: Z433 OK RENAME completed
- C: Z434 LIST "" *
- S: * LIST () "." INBOX
- S: * LIST () "." INBOX.bar
- S: * LIST () "." old-mail
- S: Z434 OK LIST completed
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SearchCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SearchCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SearchCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SearchCommand.java Mon May 12 13:53:15 2008
@@ -21,7 +21,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.command.CommandTemplate;
import org.apache.james.imap.command.SelectedStateCommand;
@@ -33,193 +32,9 @@
*/
class SearchCommand extends SelectedStateCommand
{
- public static final String ARGS = "<search term>";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.SEARCH_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-/*
-6.4.4. SEARCH Command
-
- Arguments: OPTIONAL [CHARSET] specification
- searching criteria (one or more)
-
- Responses: REQUIRED untagged response: SEARCH
-
- Result: OK - search completed
- NO - search error: can't search that [CHARSET] or
- criteria
- BAD - command unknown or arguments invalid
-
- The SEARCH command searches the mailbox for messages that match
- the given searching criteria. Searching criteria consist of one
- or more search keys. The untagged SEARCH response from the server
- contains a listing of message sequence numbers corresponding to
- those messages that match the searching criteria.
-
- When multiple keys are specified, the result is the intersection
- (AND function) of all the messages that match those keys. For
- example, the criteria DELETED FROM "SMITH" SINCE 1-Feb-1994 refers
- to all deleted messages from Smith that were placed in the mailbox
- since February 1, 1994. A search key can also be a parenthesized
- list of one or more search keys (e.g. for use with the OR and NOT
- keys).
-
- Server implementations MAY exclude [MIME-IMB] body parts with
- terminal content media types other than TEXT and MESSAGE from
- consideration in SEARCH matching.
-
- The OPTIONAL [CHARSET] specification consists of the word
- "CHARSET" followed by a registered [CHARSET]. It indicates the
- [CHARSET] of the strings that appear in the search criteria.
- [MIME-IMB] content transfer encodings, and [MIME-HDRS] strings in
- [RFC-822]/[MIME-IMB] headers, MUST be decoded before comparing
- text in a [CHARSET] other than US-ASCII. US-ASCII MUST be
- supported; other [CHARSET]s MAY be supported. If the server does
- not support the specified [CHARSET], it MUST return a tagged NO
- response (not a BAD).
-
- In all search keys that use strings, a message matches the key if
- the string is a substring of the field. The matching is case-
- insensitive.
-
- The defined search keys are as follows. Refer to the Formal
- Syntax section for the precise syntactic definitions of the
- arguments.
-
- <message set> Messages with message sequence numbers
- corresponding to the specified message sequence
- number set
-
- ALL All messages in the mailbox; the default initial
- key for ANDing.
-
- ANSWERED Messages with the \Answered flag set.
-
- BCC <string> Messages that contain the specified string in the
- envelope structure's BCC field.
-
- BEFORE <date> Messages whose internal date is earlier than the
- specified date.
-
- BODY <string> Messages that contain the specified string in the
- body of the message.
-
- CC <string> Messages that contain the specified string in the
- envelope structure's CC field.
-
- DELETED Messages with the \Deleted flag set.
-
- DRAFT Messages with the \Draft flag set.
-
- FLAGGED Messages with the \Flagged flag set.
-
- FROM <string> Messages that contain the specified string in the
- envelope structure's FROM field.
-
- HEADER <field-name> <string>
- Messages that have a header with the specified
- field-name (as defined in [RFC-822]) and that
- contains the specified string in the [RFC-822]
- field-body.
-
- KEYWORD <flag> Messages with the specified keyword set.
-
- LARGER <n> Messages with an [RFC-822] size larger than the
- specified number of octets.
-
- NEW Messages that have the \Recent flag set but not the
- \Seen flag. This is functionally equivalent to
- "(RECENT UNSEEN)".
-
- NOT <search-key>
- Messages that do not match the specified search
- key.
-
- OLD Messages that do not have the \Recent flag set.
- This is functionally equivalent to "NOT RECENT" (as
- opposed to "NOT NEW").
-
- ON <date> Messages whose internal date is within the
- specified date.
-
- OR <search-key1> <search-key2>
- Messages that match either search key.
-
- RECENT Messages that have the \Recent flag set.
-
- SEEN Messages that have the \Seen flag set.
-
- SENTBEFORE <date>
- Messages whose [RFC-822] Date: header is earlier
- than the specified date.
-
- SENTON <date> Messages whose [RFC-822] Date: header is within the
- specified date.
-
- SENTSINCE <date>
- Messages whose [RFC-822] Date: header is within or
- later than the specified date.
-
- SINCE <date> Messages whose internal date is within or later
- than the specified date.
-
- SMALLER <n> Messages with an [RFC-822] size smaller than the
- specified number of octets.
-
- SUBJECT <string>
- Messages that contain the specified string in the
- envelope structure's SUBJECT field.
-
- TEXT <string> Messages that contain the specified string in the
- header or body of the message.
-
- TO <string> Messages that contain the specified string in the
- envelope structure's TO field.
-
- UID <message set>
- Messages with unique identifiers corresponding to
- the specified unique identifier set.
-
- UNANSWERED Messages that do not have the \Answered flag set.
-
- UNDELETED Messages that do not have the \Deleted flag set.
-
- UNDRAFT Messages that do not have the \Draft flag set.
-
- UNFLAGGED Messages that do not have the \Flagged flag set.
-
- UNKEYWORD <flag>
- Messages that do not have the specified keyword
- set.
-
- UNSEEN Messages that do not have the \Seen flag set.
-
- Example: C: A282 SEARCH FLAGGED SINCE 1-Feb-1994 NOT FROM "Smith"
- S: * SEARCH 2 84 882
- S: A282 OK SEARCH completed
-
-
-
-7.2.5. SEARCH Response
-
- Contents: zero or more numbers
-
- The SEARCH response occurs as a result of a SEARCH or UID SEARCH
- command. The number(s) refer to those messages that match the
- search criteria. For SEARCH, these are message sequence numbers;
- for UID SEARCH, these are unique identifiers. Each number is
- delimited by a space.
-
- Example: S: * SEARCH 2 3 6
-
-*/
Modified: james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SelectCommand.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SelectCommand.java?rev=655638&r1=655637&r2=655638&view=diff
==============================================================================
--- james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SelectCommand.java (original)
+++ james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SelectCommand.java Mon May 12 13:53:15 2008
@@ -22,7 +22,6 @@
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapConstants;
import org.apache.james.imap.command.AuthenticatedStateCommand;
-import org.apache.james.imap.command.CommandTemplate;
@@ -33,98 +32,9 @@
*/
class SelectCommand extends AuthenticatedStateCommand
{
- public static final String ARGS = "mailbox";
-
/** @see ImapCommand#getName */
public String getName()
{
return ImapConstants.SELECT_COMMAND_NAME;
}
-
- /** @see CommandTemplate#getArgSyntax */
- public String getArgSyntax()
- {
- return ARGS;
- }
}
-
-/*
-6.3.1. SELECT Command
-
- Arguments: mailbox name
-
- Responses: REQUIRED untagged responses: FLAGS, EXISTS, RECENT
- OPTIONAL OK untagged responses: UNSEEN, PERMANENTFLAGS
-
- Result: OK - select completed, now in selected state
- NO - select failure, now in authenticated state: no
- such mailbox, can't access mailbox
- BAD - command unknown or arguments invalid
-
- The SELECT command selects a mailbox so that messages in the
- mailbox can be accessed. Before returning an OK to the client,
- the server MUST send the following untagged data to the client:
-
- FLAGS Defined flags in the mailbox. See the description
- of the FLAGS response for more detail.
-
- <n> EXISTS The number of messages in the mailbox. See the
- description of the EXISTS response for more detail.
-
- <n> RECENT The number of messages with the \Recent flag set.
- See the description of the RECENT response for more
- detail.
-
- OK [UIDVALIDITY <n>]
- The unique identifier validity value. See the
- description of the UID command for more detail.
-
- to define the initial state of the mailbox at the client.
-
- The server SHOULD also send an UNSEEN response code in an OK
- untagged response, indicating the message sequence number of the
- first unseen message in the mailbox.
-
- If the client can not change the permanent state of one or more of
- the flags listed in the FLAGS untagged response, the server SHOULD
- send a PERMANENTFLAGS response code in an OK untagged response,
- listing the flags that the client can change permanently.
-
- Only one mailbox can be selected at a time in a connection;
- simultaneous access to multiple mailboxes requires multiple
- connections. The SELECT command automatically deselects any
- currently selected mailbox before attempting the new selection.
- Consequently, if a mailbox is selected and a SELECT command that
- fails is attempted, no mailbox is selected.
-
-
-
-
-Crispin Standards Track [Page 23]
-
-RFC 2060 IMAP4rev1 December 1996
-
-
- If the client is permitted to modify the mailbox, the server
- SHOULD prefix the text of the tagged OK response with the
- "[READ-WRITE]" response code.
-
- If the client is not permitted to modify the mailbox but is
- permitted read access, the mailbox is selected as read-only, and
- the server MUST prefix the text of the tagged OK response to
- SELECT with the "[READ-ONLY]" response code. Read-only access
- through SELECT differs from the EXAMINE command in that certain
- read-only mailboxes MAY permit the change of permanent state on a
- per-user (as opposed to global) basis. Netnews messages marked in
- a server-based .newsrc file are an example of such per-user
- permanent state that can be modified with read-only mailboxes.
-
- Example: C: A142 SELECT INBOX
- S: * 172 EXISTS
- S: * 1 RECENT
- S: * OK [UNSEEN 12] Message 12 is first unseen
- S: * OK [UIDVALIDITY 3857529045] UIDs valid
- S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
- S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
- S: A142 OK [READ-WRITE] SELECT completed
-*/
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org