james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pgoldst...@apache.org
Subject cvs commit: jakarta-james/proposals/imap/www commandsIMAP.html proposalIMAP.html statusIMAPserver.html
Date Mon, 02 Dec 2002 08:59:40 GMT
pgoldstein    2002/12/02 00:59:39

  Added:       proposals/imap/www commandsIMAP.html proposalIMAP.html
                        statusIMAPserver.html
  Log:
  Moved a few files into the proposals/imap directory.  Part of neatening up the docs.
  
  Revision  Changes    Path
  1.1                  jakarta-james/proposals/imap/www/commandsIMAP.html
  
  Index: commandsIMAP.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Jakarta James - Java Apache Mail Enterprise Server</title>
  <meta value="Charles Benett" name="author">
  <meta value="charles@benett1.demon.co.uk" name="email">
  <LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet">
  </head>
  <body vlink="#525D76" alink="#525D76" link="#525D76" text="#000000" bgcolor="#ffffff">
  <table cellspacing="4" width="100%" border="0">
  <!--PAGE HEADER-->
  <tr>
  <td colspan="2">
  <!--JAKARTA LOGO--><a href="http://jakarta.apache.org/"><img border="0" alt="The Jakarta Project" align="left" src="http://jakarta.apache.org/images/jakarta-logo.gif"></a>
  <!--PROJECT LOGO--><a href="http://jakarta.apache.org/james/"><img border="0" alt="JAMES - Java Apache Mail Enterprise Server" align="right" src="http://jakarta.apache.org/james///images/james-logo.jpg"></a></td>
  </tr>
  <!--HEADER SEPARATOR-->
  <tr>
  <td colspan="2">
  <hr size="1" noshade="">
  </td>
  </tr>
  <tr>
  <!--LEFT SIDE NAVIGATION-->
  <td nowrap="true" valign="top" width="20%">
  <p>
  <strong>James</strong>
  </p>
  <ul>
  <li>
  <a href="./index.html">Overview</a>
  </li>
  <li>
  <a href="./architecture_v2_0.html">Architecture</a>
  </li>
  <li>
  <a href="./FAQ.html">James FAQ</a>
  </li>
  </ul>
  <p>
  <strong>Translated</strong>
  </p>
  <ul>
  <li>
  <a href="http://www.terra-intl.com/jakarta/james/">Japanese (web)</a>
  </li>
  </ul>
  <p>
  <strong>Downloads</strong>
  </p>
  <ul>
  <li>
  <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
  </li>
  </ul>
  <p>
  <strong>Documentation</strong>
  </p>
  <ul>
  <li>
  <a href="./install.html">Install</a>
  </li>
  <li>
  <a href="./configuration_v2_0.html">Configuration</a>
  </li>
  <li>
  <a href="./javadocs/index.html">James API</a>
  </li>
  <li>
  <a href="./mailet/index.html">Mailet API</a>
  </li>
  <li>
  <a href="./usingJDBC_v2.0.html">Using JDBC</a>
  </li>
  <li>
  <a href="./usingLDAP_v1_2.html">Using LDAP</a>
  </li>
  <li>
  <a href="./usingTLS_v1_2.html">Using TLS</a>
  </li>
  <li>
  <a href="./james_and_sendmail.html">James and sendmail</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/james/rfclist">Useful RFCs (web)</a>
  </li>
  </ul>
  <p>
  <strong>Project</strong>
  </p>
  <ul>
  <li>
  <a href="http://jakarta.apache.org/site/bugs.html">Bug Database </a>
  </li>
  <li>
  <a href="./contribute.html">How Can I Contribute?</a>
  </li>
  <li>
  <a href="./code-standards.html">Coding Standards</a>
  </li>
  <li>
  <a href="./license.html">License</a>
  </li>
  <li>
  <a href="./todo.html">TODO</a>
  </li>
  <li>
  <a href="./changelog.html">Changelog</a>
  </li>
  <li>
  <a href="./weare.html">Who We Are</a>
  </li>
  </ul>
  <p>
  <strong>Jakarta Information (web)</strong>
  </p>
  <ul>
  <li>
  <a href="http://jakarta.apache.org/index.html">Front Page</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/news.html">News &amp; Status</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
  </li>
  </ul>
  <p>
  <strong>Related Projects (web)</strong>
  </p>
  <ul>
  <li>
  <a href="http://jakarta.apache.org/ant/index.html">Ant</a>
  </li>
  <li>
  <a href="http://jakarta.apache.org/avalon/index.html">Avalon</a>
  </li>
  </ul>
  </td>
  <!--RIGHT SIDE MAIN BODY--><td align="left" valign="top" width="80%">
  <table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
  <td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Summary"><strong>Summary</strong></a></font></td>
  </tr>
  <tr>
  <td>
  <blockquote>
  
    
  <h3>An overview of IMAP command implementation proposed for JAMES</h3>
    
  <blockquote>
      Objective:  A set of interfaces and basic implementations that provide:
      <ul>
        
  <li>The core functionality of RFC 2060, IMAP4Rev1.</li>
        
  <li>Mailbox referrals - RFC 2193</li>
        
  <li>Login referrals - RFC 2221</li>
        
  <li>Access Control Lists - RFC 2086</li>
        
  <li>Quotas - RFC 2087</li>
      
  </ul>
    
  </blockquote>
  
  
  </blockquote>
  </td>
  </tr>
  </table>
  <table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
  <td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Background%20-%20IMAP%20commands"><strong>Background - IMAP commands</strong></a></font></td>
  </tr>
  <tr>
  <td>
  <blockquote>
  
  
  <p>The IMAP protocol is based on single socket connections. Each connection may be in one of four official states: Non-Authenticated, Authenticated, Selected and Logout.  In addition, there is an on-connection 'state'. Connections may be pre-authenticated, in which case they transition directly to the Authenticated state. Connections may also be rejected arbitrarily, in which case a response is sent and the connection tranistions directly to Logout. Once a connection enters the Logout state it must terminate and will terminate without further client input.
  </p>
  
  
  <p>A connection can only 'select' one mailbox at a time, although the STATE command allows a limited view of another mailbox. A client may open more than one connection to a single server at once. The client is responsible for any coordination needed. Multiple connections may 'select' a mailbox at the same time. The server must coordinate access.
  </p>
  
  
  </blockquote>
  </td>
  </tr>
  </table>
  <table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
  <td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Commands%20by%20State,%20Effect%20and%20Sensitivity"><strong>Commands by State, Effect and Sensitivity</strong></a></font></td>
  </tr>
  <tr>
  <td>
  <blockquote>
    
  <p>Clients are, in general, permitted to issue multiple commands in a single connection.  That is they can issue a second command without waiting for a response to the first command. Servers may process multiple commands in parallel or in series. However, some combinations of commands cannot be processed in parallel, because they are ambiguous. According to RFC2060,
      <blockquote> "Clients MUST NOT send multiple commands without waiting if an ambiguity would result. If the server detects a possible ambiguity, it MUST execute commands to completion in the order given by the client."
      </blockquote>
  The following table aims to highlight which commands can or cannot be processed in parallel with other commands. In particular, commands that are sensitive to mailbox context or message sequence number cannot be processed in parallel with commands that change those respective facts.
    </p>
    
  <p>
  IMAP servers can support multiple namespaces with mailboxes that, for clients, would otherwise have identical names. For example, a user could have a private mailbox called James and also have access to a workgroup mailbox called James. These are disambiguated by namespace tokens, which a client can discover by the Namespace command.
    </p>
    
  <p>
  Mailboxes can, in general, be accessed on behalf of more than one user. Access Control Lists are used to on a per mailbox basis. Any command which explicitly or implicitly refers to a mailbox, which is every command apart from Capability, Noop, Logout,  can be impacted by a change of ACL. I intend to tie administer rights for an ACL to full read-write rights for the mailbox and  not to allow someone with administer rights to remove their own administer rights. Implementations not following this practice may need to disambiguate ACL sensitive commands.
   </p>
    
  <p>The state of a mailbox (name, existence, ACL, number of messages, identity of messages and message attributes) may be changed outside a given connection which has the mailbox selected. Some of these changes should be notified to a client whether or noe a command is in progress and some should be notified only if a command is in progress.
   </p>
    
  <p>
  The effects of a command noted here are ones which may affect processing multiple commands from one connection or impact multiply accessed mailboxes.
      <ul>
        
  <li>Connection state change: will or may change the state of the connection</li>
        
  <li>Mailbox change: will or may change the state of an existing mailbox. Includes: changing name, altering size of mailbox (by adding or removing message) changing the access control list.</li>
        
  <li>Mailbox context change: changes the selection of a mailbox, which is the context for Selected state commands.</li>
        
  <li>Message Sequence Number Change: will or may change the message sequence number of a message known to this client, for example by provoking an untagged Expunge response. Note that any command in the selected state may send an untagged Expunge, except for Fetch, Store and Search. The entry 'likely' in this column indicates a proposed implementation.</li>
      
  </ul>
  The sensitivities noted are ones which may affect processing multiple commands from one connection or impact multiply accessed mailboxes.
      <ul>
         
  <li>Current Mailbox: this command implicity refers to the currently selected mailbox so is sensitive to either a mailbox change or a mailbox context change</li>
        
  <li>Message sequence number change: this command may take an MSN as an argument</li>
      
  </ul>
  All commands which explicitly or implicitly refers to a mailbox, which is every command apart from Capability, Noop, Logout,  can be impacted by a Mailbox change.
    </p>
  
  
  <table border="1">
    
  <tr>
      
  <td valign="top" bgcolor="#039acc" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td valign="top" bgcolor="#039acc" colspan="3"><font face="arial,helvetica,sanserif" size="-1" color="#000000">State in which valid</font></td>
      <td valign="top" bgcolor="#039acc" colspan="4"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Effects</font></td>
      <td valign="top" bgcolor="#039acc" colspan="2"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Sensitivity</font></td>
    
  </tr>
    
  <tr>
      
  <td valign="top" bgcolor="#039acc" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Command</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Non-Authenticated</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Authenticated</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Selected</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Connection State change</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Mailbox change</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Mailbox context change</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Message Sequence Number Change</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Mailbox context</font></td>
      <td valign="top" bgcolor="#039acc"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Message Sequence Number</font></td>
    
  </tr>
   
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="10"><font face="arial,helvetica,sanserif" size="-1" color="#000000"><i>Core IMAP4 rev1 commands (RFC2060)</i></font></td>
   
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Capability</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Noop</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">likely</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Logout</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Authenticate</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Login</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Select</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Examine</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Create</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Delete</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Rename</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Subscribe</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Unsubscribe</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">List</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">LSUB</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Status</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Append</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Check</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">likely</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Close</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Must not</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
   
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Expunge</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Must</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
   
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Search</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Must not</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Fetch</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Must not</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Store</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Must not</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Copy</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">likely</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">UID</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">likely</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="10"><font face="arial,helvetica,sanserif" size="-1" color="#000000"><i>Access Control List commands (RFC2086)</i></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000">SetACL</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">DeleteACL</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">GetACL</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">ListRights</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">MyRights</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="10"><font face="arial,helvetica,sanserif" size="-1" color="#000000"><i>Namespace commands (RFC2342)</i></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Namespace</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="10"><font face="arial,helvetica,sanserif" size="-1" color="#000000"><i>Mailbox Referral commands (RFC2193)</i></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000">RList</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">RLSUB</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="10"><font face="arial,helvetica,sanserif" size="-1" color="#000000"><i>Quota commands (RFC2087)</i></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0" colspan="1"><font face="arial,helvetica,sanserif" size="-1" color="#000000">SetQuota</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">GetQuota</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
    
  <tr>
      
  <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">GetQuotaRoot</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000">Yes</font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
      <td align="left" valign="top" bgcolor="#a0ddf0"><font face="arial,helvetica,sanserif" size="-1" color="#000000"></font></td>
    
  </tr>
  
  
  </table>
  
  
  </blockquote>
  </td>
  </tr>
  </table>
  </td>
  </tr>
  <!--FOOTER SEPARATOR-->
  <tr>
  <td colspan="2">
  <hr size="1" noshade="">
  </td>
  </tr>
  <!--PAGE FOOTER-->
  <tr>
  <td colspan="2">
  <div align="center">
  <font size="-1" color="#525D76"><em>
          Copyright &copy; 1999-2002, Apache Software Foundation
          </em></font>
  </div>
  </td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  jakarta-james/proposals/imap/www/proposalIMAP.html
  
  Index: proposalIMAP.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  <html>
  
  <head>
  <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
  <title>Java Apache Mail Enterprise Server</title>
  </head>
  
  <body BGCOLOR="#FFFFFF">
  <!--
  <h2 align="center"><img SRC="images/java-apache-project.gif" BORDER="0" HEIGHT="100"
  WIDTH="609"></h2>
  -->
  <h1 align="center">IMAP Proposal - First Draft</h1>
  
  <h4 align="center">JAMES 1.1</h4>
  
  <h3>Overview of proposed IMAP server on JAMES</h3>
  <blockquote>
  Objective:  A set of interfaces and basic implementations that provide:
  <ul>
    <li>The core functionality of RFC 2060, IMAP4Rev1.</li>
    <li>Mailbox referrals - RFC 2193</li>
    <li>Login referrals - RFC 2221</li>
    <li>Access Control Lists - RFC 2086</li>
    <li>Quotas - RFC 2087</li>
    <li>Namespaces - RFC 2342</li>
  </ul>
  </blockquote>
  
  
  
  <h3>System, hosts and Mailboxes</h3>
  <table >
    <tr>
      <td colspan=6></td>
      <td align="center">**************<br>* IMAPSystem *<br>**************</td>
      <td colspan=6></td>
    </tr>
    <tr>
      <td colspan=6 align="center">********<br>* Host *<br>********</td>
      <td></td>
      <td colspan=6 align="center">********<br>* Host *<br>********</td>
    </tr>
    <tr>
      <td colspan=2 align="center">********************<br>* Folder Repository *<br>********************</td>
      <td colspan=2 align="center">***********<br>* Mailbox *<br>***********</td>
      <td colspan=2 align="center">***********<br>* Mailbox *<br>***********</td>
      <td></td>
      <td colspan=2 align="center">********************<br>* Folder Repository *<br>********************</td>
      <td colspan=2 align="center">***********<br>* Mailbox *<br>***********</td>
      <td colspan=2 align="center">***********<br>* Mailbox *<br>***********</td>
    </tr>
    <tr>
      <td align="center">**********<br>* Folder *<br>* Record *<br>**********</td>
      <td align="center">**********<br>* Folder *<br>* Record *<br>**********</td>
      <td align="center">***********<br>* Message *<br>***********</td>
      <td align="center">***********<br>* Message *<br>* Attribute *<br>***********</td>
      <td align="center">***********<br>* Message *<br>***********</td>
      <td align="center">***********<br>* Message *<br>* Attribute *<br>***********</td>
      <td></td>
      <td align="center">**********<br>* Folder *<br>* Record *<br>**********</td>
      <td align="center">**********<br>* Folder *<br>* Record *<br>**********</td>
      <td align="center">***********<br>* Message *<br>***********</td>
      <td align="center">***********<br>* Message *<br>* Attribute *<br>***********</td>
      <td align="center">***********<br>* Message *<br>***********</td>
      <td align="center">***********<br>* Message *<br>* Attribute *<br>***********</td>
    </tr>
  </table>
  
  
  <p>
  <b>interface IMAPSystem</b><br>
  
  An IMAP system may include more than one host (ie server in the physical machine sense). For example, different hosts may handle private mailboxes, shared mailboxes and news. This interface allows a James instance to identify other servers in the IMAP system, for Login referrals and Mailbox referrals.
  
  </p>
  
  <p>
  <b>interface Host</b><br>
  
  An IMAP host establishes if a user has their private mail here or access to any other mail.  It handles access to a mailbox.
  
  <blockquote>
  plan: <i>implemented by James.java</i>
  </blockquote>
  </p>
  
  <p>
  <b>interface FolderRecord</b><br>
  An IMAP server needs to keep track of deleted mailboxes, so that mailboxes created with the name of a previously deleted mailbox have different UID or UIDValidity values. In some circumstances, a mailbox may be deleted but not available for its name to be reused.  This interface captures this data.
  
  <blockquote>
  plan: <i>class SimpleFolderRecord</i> File system implementation of FolderRecord.
  </blockquote>
  </p>
  
  <p>
  <b>interface RecordRepository</b><br>
  Place to keep FolderRecords
  
  <blockquote>
  plan: <i>class AvalonFolderRepository</i> FileSystem implementation.
  </blockquote>
  </p>
  
  <p>
  <b>interface MailBox</b><br>
  As well as storing messages, an IMAP mailbox needs to keep track of folder options, such as whether inferiors/ child folders are allowed and accepatable flags and message attributes (such as flags, and envelope details).
  
  <blockquote>
  plan: <i> AvalonMailbox</i> FileSystem implementation of IMAPMailBox.
  </blockquote>
  </p>
  
  <p>
  <b>interface MessageAttributes</b><br>
  Holds message flags and parsed data. 
  
  <blockquote>
  plan: <i>class FileMessageAttributes</i> FileSystem implemetation of IMAPMessageAttributes.  
  </blockquote>
  </p>
  
  <h3>Servers, Connections, Commands, Events</h3>
  <p>
  <b>class Server</b><br>
  Monitors socket and launches connection handler.
  </p>
  
  <p>
  <b>interface ConnectionHandler</b>
  <br>
  Each instance handles a single connection. This includes authenticating the user, collecting commands from the client (which can require server input) and then arranging for the commands to be processed. The connection handler may arrange for multiple non-ambiguous commands to be processed concurrently, but must process ambiguous multiple commands in the order in which they are received from the client. See the <a href="commandsIMAP.html">Overview of IMAP commands</a>.
  </p>Because IMAP s designed for long-lived connections (the minimum timeout is 30 minutes) it is likely that new mail will be delivered to an Inbox or mail may be added to or removed from a shared mailbox while no client commands are in process.  The protocol therefore allows server data to be sent unilaterally to the client, that is not in response to a request for that data. Unilateral data may be sent while a command is being processed, indeed mailbox size changes must be sent if observed during the course of processing a command. The server may also send data while no commands are being processed (except for Expunge responses).
  
  <p>
  <b>class MailboxEvent</b>
  <br>
  MailboxEvents are sent by MailboxEventSources to any registered listener when there has been a relevant change in the Mailbox.
  
  <p>
  <b>interface MailboxEventListener</b>
  <br>
  The MailBoxEventListener interface is implemented by any object needing to monitor a mailbox. The Listener must register with the appropriate EventSource. Typically a ConnectionHandler will register with a Mailbox when it enters selected state and deregister when that mailbox is deselected. 
  <p>
  <b>interface MailboxEventSource</b>
  <br>
  The MailboxEventSource interface is implemented by any object needing to send events to listeners. Typically a mailbox.
  <p>
  <p align="center"><font SIZE="-1">Copyright (c) 1997-2000 <a HREF="http://java.apache.org">The
  Java Apache Project</a>.<br>
  All rights reserved.</font></p>
  
  </body>
  </html>
  
  
  1.1                  jakarta-james/proposals/imap/www/statusIMAPserver.html
  
  Index: statusIMAPserver.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  <html>
  
  <head>
  <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
  <title>Java Apache Mail Enterprise Server</title>
  </head>
  
  <body BGCOLOR="#FFFFFF">
  <!--
  <h2 align="center"><img SRC="images/java-apache-project.gif" BORDER="0" HEIGHT="100"
  WIDTH="609"></h2>
  -->
  <h3 align = left><a href="index.html">Up to Index</a></h3>
  <h1 align="center">Status of the IMAP Server</h1>
  <h4 align="center">JAMES 1.2</h4>
  
  <h3>Summary</h3>
  <blockquote>
      <p>This document explains the status of the IMAP server portion of James, ie what functionality has been implemented  or tested and what needs to be done.</p>
  </blockquote>
  
  
  <h3>Objectives for JAMES IMAP server</h3>
  <b>Primary objectives:</b>
  <ul>
    <li>Basic IMAPv4rev1 compliance      -  RFC2060</li>
    <li>AccessControlLists               -  RFC2086</li>
    <li>multiple Namespaces              -  RFC2342</li>
    <li>Single server</li>
    <li>Filesystem based mail storage.</li>
    <li>Filesystem based user storage.</li>
  </ul>
  <b>Secondary objectives:</b>
  <ul>
    <li>Mail quotas                      - RFC</li>
    <li>LDAP based user storage</li>
    <li>Multiple servers                 - RFCs</li>
    <li>RDBMS based mail storage.</li>
    <li>more funky IMAP stuff</li>
  </ul>
  
  <h3>Status</h3>
  <b>RFC2060 (Core IMAP) commands</b>
  <table cols=7>
    <tr>
      <th>Command</th>
      <th>Implemented</th>
      <th>Tested - telnet</th>
      <th>Tested - Pine</th>
      <th>Tested - Netscape Messenger</th>
      <th>Tested - Microsoft Outlook</th>
      <th>Comments</th>
    </tr>
    <tr>
      <th colspan ="7">RFC2060 (Core IMAP) commands</th>
    </tr>
    <tr align=center>
      <td>CAPABILITY</td>
      <td>Yes</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td></td>
      <td>update as functionality added</td>
    </tr>
    <tr align=center>
      <td>NOOP</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td>OK</td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>LOGOUT</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>AUTHENTICATE</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td>No authentication methods other than plaintext password login supported</td>
    </tr>
    <tr align=center>
      <td>LOGIN</td>
      <td>Yes</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td></td>
    </tr>
    <tr align=center>
      <td>SELECT</td>
      <td>Yes</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td></td>
    </tr>
    <tr align=center>
      <td>EXAMINE</td>
      <td>Yes</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>CREATE</td>
      <td>Yes</td>
      <td></td>
      <td></td>
      <td>OK</td>
      <td></td>
    </tr>
    <tr align=center>
      <td>DELETE</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>JamesHost needs to implement this</td>
    </tr>
    <tr align=center>
      <td>RENAME</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>JamesHost needs to implement this</td>
    </tr>
    <tr align=center>
      <td>SUBSCRIBE</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>Need to design user object to hold subscriptions</td>
    </tr>
    <tr align=center>
      <td>UNSUBSCRIBE</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>see SUBSCRIBE</td>
    </tr>
    <tr align=center>
      <td>LIST</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>unsure</td>
    </tr>
    <tr align=center>
      <td>LSUB</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>see SUBSCRIBE and LIST</td>
    </tr>
    <tr align=center>
      <td>STATUS</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td>unsure</td>
    </tr>
    <tr align=center>
      <td>APPEND</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>not started</td>
    </tr>
    <tr align=center>
      <td>CHECK</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>CLOSE</td>
      <td>Yes</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>EXPUNGE</td>
      <td>Yes</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>SEARCH</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>not started</td>
    </tr>
    <tr align=center>
      <td>FETCH</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>see table below</td>
    </tr>
    <tr align=center>
      <td>STORE</td>
      <td>Yes</td>
       <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>COPY</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>not started</td>
    </tr>
    <tr align=center>
      <td>UID</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td>UID FETCH (partial) and UID STORE only</td>
    </tr>
    <tr>
      <th colspan =7>Fetch command arguments</th>
    </tr>
    <tr>
      <th>Arguments</th>
      <th>Implemented</th>
      <th>Tested - telnet</th>
      <th>Tested - Pine</th>
      <th>Tested - Netscape Messenger</th>
      <th>Tested - Microsoft Outlook</th>
      <th>Comments</th>
    </tr>
    <tr align=center >
      <td>ALL</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>BODY</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>1-part, multipart and embedded rfc822 messages where constituents are of type Text/Plain. Line count is not right.</td>
    </tr>
    <tr align=center>
      <td>BODY[] & BODY.PEEK[]</td>
      <td>yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>BODY[section] & BODY.PEEK[section]</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>TEXT, HEADER, HEADER.FIELDS & HEADER.FIELDS.NOT done - but HEADER.FIELDS buggy on Netscape. MIME, numbered sections, subsections and octet-partial-fetches not started</td>
    </tr>
    <tr align=center>
      <td>BODYSTRUCTURE</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>See body</td>
    </tr>
    <tr align=center>
      <td>ENVELOPE</td>
      <td>Yes</td>
      <td>OK</td>
      <td>No</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>FAST</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>FLAGS</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>FULL</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>INTERNALDATE</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>Format is not right</td>
    </tr>
    <tr align=center>
      <td>RFC822</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>RFC822.HEADER</td>
      <td>no</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>RFC822.SIZE</td>
      <td>Partial</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td>giving content size not message size</td>
    </tr>
    <tr align=center>
      <td>RFC822.TEXT</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>UID</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <th colspan =7>RFC2086 (Access Control Lists) commands</th>
    </tr>
    <tr>
      <th>Command</th>
      <th>Implemented</th>
      <th>Tested - telnet</th>
      <th>Tested - Pine</th>
      <th>Tested - Netscape Messenger</th>
      <th>Tested - Microsoft Outlook</th>
      <th>Comments</th>
    </tr>
    <tr align=center>
      <td>SETACL</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>DELETEACL</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>GETACL</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>LISTRIGHTS</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr align=center>
      <td>MYRIGHTS</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr
    <tr>
      <th colspan =7>RFC2342 (Namespaces) commands</th>
    </tr>
    <tr>
      <th>Command</th>
      <th>Implemented</th>
      <th>Tested - telnet</th>
      <th>Tested - Pine</th>
      <th>Tested - Netscape Messenger</th>
      <th>Tested - Microsoft Outlook</th>
      <th>Comments</th>
    </tr>
    <tr align=center>
      <td>NAMESPACE</td>
      <td>Yes</td>
      <td>OK</td>
      <td></td>
      <td>OK</td>
      <td></td>
      <td>Currently only providing a private mailbox namesapce and an other users mailbox namespace. Shared mailboxes and newsgroup access tbd</td>
    </tr>
  </table>
  <h3 align = left><a href="index.html">Up to Index</a></h3>
  <p align="center"><font SIZE="-1">Copyright (c) 1997-2000 <a HREF="http://java.apache.org">The
  Java Apache Project</a>.<br>
  All rights reserved.</font></p>
  
  </body>
  </html>
  
  

--
To unsubscribe, e-mail:   <mailto:james-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:james-dev-help@jakarta.apache.org>


Mime
View raw message