draft-ietf-lemonade-profile-00.txt  -->   draft-ietf-lemonade-profile-01.txt

view Side-By-Side changes

 
 
Lemonade                                                                
Internet Draft: Lemonade Profile                             S. H. Maes 
Document: draft-ietf-lemonade-profile-00.txt draft-ietf-lemonade-profile-01.txt                A. Melnikov 
Expires: January August 2005                                      February 2005                                         July 2004 
    
    
                             Lemonade Profile 
    
Status of this Memo 
 
   This document is an Internet-Draft and is subject to all provisions 
   of Section 10 of RFC2026. By submitting this Internet-Draft, each 
   author represents that any applicable patent or other IPR claims of 
   which he or she is aware have been or will be disclosed, and any of 
   which he or she become aware will be disclosed, in accordance with 
   RFC 3668. 
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 
    
   Internet-Drafts are draft documents valid for a maximum of six months 
   and may be updated, replaced, or obsoleted by other documents at any 
   time.  It is inappropriate to use Internet-Drafts as reference 
   material or to cite them other than as "work in progress." 
    
   The list of current Internet-Drafts can be accessed at 
        http://www.ietf.org/ietf/1id-abstracts.txt 
    
   The list of Internet-Draft Shadow Directories can be accessed at 
        http://www.ietf.org/shadow.html. 
    
Abstract 
    
   This document describes the Lemonade profile to allow clients to 
   submit new email messages incorporating content which resides on 
   locations external to the client ("forward without download") and to 
   optimize e-mail exchanges between clients and servers in a mobile 
   environment. download").  
    
   The Lemonade profile relies upon extensions to other protocols; 
   specifically URLAUTH, CATENATE, Lemonade Command Extensions in the 
   IMAP protocol [RFC 3501] and BURL in the SUBMIT protocol [RFC 2476].  
    
   It also provides optimization in a mobile setting, aimed at 
   delivering extended functionality for mobile devices with limited 
   resources by relying on Lemonade Server to Client Notifications to 
   support to push crucial changes actively to a client, rather then 
   requiring the client to initiate contact to ask for state changes.   
    


 
 
Maes                    Expires - January 2005                [Page 1] 

                          <Lemonade Profile>                 July 2004 
 
   In addition, the Lemonade profile contains Lemonade Command 
   extensions for email filter management, message delivery, maintaining 
   up-to-date personal information and quick reconnect. reconnect and media conversion. 
 
Conventions used in this document 
    

 
 
Maes                    Expires - August 2005                [Page 1] 





                          <Lemonade Profile>             February 2005 
 
 
   In examples, "C:" "M:", "I:" and "S:" indicate lines sent by the client 
   messaging user agent, IMAP e-mail server and submit server 
   respectively. 
    
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in [RFC2119]. 
 
 
Table of Contents 
          
   Status of this Memo...............................................1 
   Abstract..........................................................1 
   Conventions used in this document.................................2 document.................................1 
   Table of Contents.................................................2 
   1. Introduction...................................................3 Introduction...................................................2 
   2. The Lemonade Pull Model........................................3 Forward without download.......................................3 
      2.1. Motivations...............................................3 
      2.2. Message Sending Overview..................................3 
      2.3. Traditional Strategy......................................4 
      2.4. Forward without download..................................4 Step by step description..................................4 
      2.5. Additional Considerations.................................6 Considerations.................................8 
      2.6. The fcc problem...........................................6 problem...........................................8 
   3. Mobile Optimization............................................7 Media Conversion...............................................9 
      3.1. Introduction..............................................7 Introduction..............................................9 
      3.2. Motivation................................................7 Static media conversion...................................9 
      3.3. The Poll Model vs. the Push Model.........................7 Conversion of streamed media..............................9 
      3.4. Synchronization Techniques................................8 
         3.4.1. State-Comparison-Based Synchronization...............9 
         3.4.2. Event-based Synchronization.........................10 
      3.5. The Server-Side Filtering in Lemonade Profile............11 
      3.6. Lemonade Command Extensions..............................11 
      3.7. Fast Reconnect...........................................12 
      3.8. HTTP Binding.............................................12 
      3.9. Revisions to IMAPv4 Rev1 Behavior........................12 Quick Reconnect scheme....................................9 
   4. Future work...................................................10 
   Security Considerations..........................................13 
   References.......................................................13 
   Acknowledgments..................................................15 Considerations..........................................10 
   References.......................................................10 
   Version History..................................................12 
   Acknowledgments..................................................12 
   Authors Addresses................................................15 Addresses................................................12 
   Intellectual Property Statement..................................15 Statement..................................12 
   Full Copyright Statement.........................................16 
    
    

 
 
Maes                    Expires - January 2005                [Page 2] 

                          <Lemonade Profile>                 July 2004 Statement.........................................13 
    
    
1. 
   Introduction 
    
   Lemonade provides enhancements to Internet email to support diverse 
   service environments.  
    
   This document describes the lemonade profile that includes: 
      - The Lemonade Pull Model that describes exchanges between 
        Lemonade Agents to allow clients to submit new email messages 
        incorporating content which resides on locations external to 
        the client.  
      - Mobile optimizations that defines extensions to the IMAPv4 Rev1 
        protocol [RFC3501] aimed at delivering extended functionality 
        for mobile devices with limited resources including support to 
        push crucial changes actively to a client, rather then 
        requiring the client to initiate contact to ask for state 
        changes and extensions for email filter management, message 
        delivery, and maintaining up-to-date personal information and 
        quick reconnect. allow forward without download. 
      - Media conversion 
 
 
Maes                    Expires - August 2005                [Page 2] 




                          <Lemonade Profile>             February 2005 
 
 
      - Quick reconnect   
    
   The organization of this document is as follows.  Section 2 describes 
   the Lemonade Pull Model. Section 3 Section 3 describes the Lemonade Mobile 
   Optimizations. Media 
   Conversion. Section 4 describes quick reconnect  
    
2. The Lemonade Pull Model 
  Forward without download 
    
2.1. 
    Motivations 
    
   The advent of client/server email using the [RFC3501] and [RFC2821] 
   protocols has changed what formerly were local disk operations to 
   become excessive and repetitive network data transmissions. This is 
   an onerous burden for clients operating over low-bandwidth and/or 
   high-latency links. 
    
   The Lemonade Pull Model makes use of the [BURL] SUBMIT extension to 
   enable access to external sources during the submission of a message.  
   In combination with the IMAP [URLAUTH] extension, inclusion of 
   message parts or even entire messages from the IMAP mail store is 
   possible with a minimal trust relationship between the IMAP and 
   SUBMIT servers. 
    
   Pull has the distinct advantage of maintaining one submission 
   protocol, and thus avoids the risk of having multiple parallel and 
   possible divergent mechanisms for submission.  Furthermore, by 
   keeping the details of message submission in the SUBMIT server, the 
   Lemonade Pull Model can work with other message retrieval protocols 
   such as POP, NNTP, or whatever else may be designed in the future. 
    
2.2. 
    Message Sending Overview 
    
 
 
Maes                    Expires - January 2005                [Page 3] 

                          <Lemonade Profile>                 July 2004 
    
   The act of sending an email message is best thought of as involving 
   multiple steps: initiation of a new draft, draft editing, message 
   assembly, and message submission. 
    
   Initiation of a new draft and draft editing takes place on the MUA. 
   Frequently, users choose to save more complex and/or time-consuming 
   messages on an [RFC3501] server (via the APPEND command with the 
   \Draft flag) for later recall by the MUA and resumption of the 
   editing process. 
    
   Message assembly is the process of producing a complete message from 
   the final revision of the draft and external sources.  At assembly 
   time, external data is retrieved and inserted in the message. 
    
   Message submission is the process of inserting the assembled message 
   into the [RFC2821] infrastructure, typically using the [RFC2476] 
   protocol. 
 
 
Maes                    Expires - August 2005                [Page 3] 


                          <Lemonade Profile>             February 2005 
 
 
    
2.3. 
    Traditional Strategy 
    
   Traditionally, messages are initiated, edited, and assembled entirely 
   within an MUA, although drafts may be saved to an [RFC3501] server 
   and later retrieved from the server.  The completed text is then 
   transmitted to an MSA for delivery. 
    
   There is often no clear boundary between the editing and assembly 
   process.  If a message is forwarded, its content is often retrieved 
   immediately and inserted into the message text.  Similarly, once 
   external content is inserted or attached, the content is usually 
   retrieved immediately and made part of the draft. 
    
   As a consequence, each save of a draft and subsequent retrieve of the 
   draft transmits that entire (possibly large) content, as does message 
   submission. 
    
   In the past, this was not much of a problem, because drafts, external 
   data, and the message submission mechanism were typically located on 
   the same system as the MUA.  The most common problem was running out 
   of disk quota. 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
2.4. Forward without download 
    Step by step description 
    

 
 
Maes                    Expires - August 2005                [Page 4] 



                          <Lemonade Profile>             February 2005 
 
 
   The model distinguishes between a Messaging User Agent (MUA), an 
   IMAPv4Rev1 Server ([RFC3501]) and a submit server ([RFC2476]), as 
   illustrated in Figure 1. 
    
        +--------------------+               +--------------+ 
        |                    | <------------ |              |   
        |     MUA (M)        |               | IMAPv4 Rev1  | 
 
 
Maes                    Expires - January 2005                [Page 4] 

                          <Lemonade Profile>                 July 2004 
        |                    |               |  Server      | 
        |                    | ------------> | (Server S1) I)   | 
        +--------------------+               +--------------+ 
               ^  |                             ^     | 
               |  |                             |     | 
               |  |                             |     | 
               |  |                             |     | 
               |  |                             |     | 
               |  |                             |     | 
               |  |                             |     v 
               |  |                          +--------------+ 
               |  |------------------------->|              |   
               |                             |   Submit     | 
               |-----------------------------|   Server     | 
                                             |  (Server S2) S)  | 
                                             +--------------+ 
                     Figure 1: Lemonade Pull Model 
             
    
   The Lemonade Pull Model allows a Messaging User Agent to compose and 
   forward an e-mail combining fragments that are located in an IMAP 
   server, without having to download these fragments to the server. 
    
   In the [BURL]/[CATENATE] variant of the pull strategy, messages are 
   initiated 
   initially composed and edited within an MUA.  The [CATENATE] 
   extension to [RFC3501] is then used to upload the message to the IMAP 
   server and assemble it, and finally a [URLAUTH] format URL is given 
   to a [RFC2476] server with the [BURL] extension for submission. 
 
   The flow involved to support such a use case consists of: 
      M: {to S1 I -- Optional} The client uses connectects to the IMAP server 
     and IMAP Fetch of body structures and UIDs (See [RFC3501]) 
      
     Example: 
           M: A0051 FETCH 161 (UID BODYSTRUCTURE) 
           I: * 161 FETCH (UID 25627 BODYSTRUCTURE (("TEXT" "PLAIN" 
     ("CHARSET" "US-ASCII") NIL 
              NIL "7BIT" 1152 23)("TEXT" "PLAIN" ("CHARSET" "US-ASCII" 
     "NAME" 
              "cc.diff") 
              "<960723163407.20117h@washington.example.net>" "Compiler 
     diff" 
 
 
Maes                    Expires - August 2005                [Page 5] 





                          <Lemonade Profile>             February 2005 
 
 
              "BASE64" 4554 73) "MIXED")) 
           I: A0051 OK completed 
      
      M: {to S1} I} The client invokes CATENATE (See [CATENATE] for details 
     of the semantics and steps û this allows the MUA to create messages 
     on the IMAP using new data combined with body structure already 
     present on the IMAP server. 
      S1: {to M} 
      
     <<EditorÆs note: Draft editing/catenation is omitted for now>> 
      
        M: A0052 CATENATE Sent FLAGS (\Seen $MDNSent) TEXT {738} 
        I: + Ready for literal data 
        M: Return-Path: <bar@example.org> 
        M: Received: from [127.0.0.2] 
        M:           by rufus.example.org via TCP (internal) with 
     ESMTPA; 
        M:           Thu, 11 Nov 2004 16:57:07 +0000 
        M: Message-ID: <419399E1.6000505@example.org> 
        M: Date: Thu, 12 Nov 2004 16:57:05 +0000 
        M: From: Bob Ar <bar@example.org> 
        M: X-Accept-Language: en-us, en 
        M: MIME-Version: 1.0 
        M: To: foo@example.net 
        M: Subject: About our holiday trip 
        M: Content-Type: multipart/mixed; 
        M:               boundary="------------030308070208000400050907" 
        M:  
        M: --------------030308070208000400050907 
        M: Content-Type: text/plain; charset=us-ascii; format=flowed 
        M: Content-Transfer-Encoding: 7bit 
        M:  
        M: Our travel agent has sent the updated schedule. 
        M:  
        M: Cheers, 
        M: Bob 
        M: --------------030308070208000400050907 
        M:  URL "imap://imap.example.org/INBOX;UIDVALIDITY=385759045/; 
           UID=25627;Section=1.2" TEXT {44} 
        I: + Ready for literal data 
        M: --------------030308070208000400050907-- 
        M:  
        I: A0052 OK (See [CATENATE]). [APPENDUID 387899045 45] CATENATE Completed 
        M: A0053 UID STORE XXX +FLAGS.SILENT ($Forwarded) 
        I: A0053 OK STORE completed 
      
      
     << EditorÆs note: Recommend UIDPLUS extension û especially useful 
     when appending messages to a non-selected mailbox>> 
      
 
 
Maes                    Expires - August 2005                [Page 6] 





                          <Lemonade Profile>             February 2005 
 
 
      M: {to S1} I} The client uses GENURLAUTH command to request and 
     URLAUTH URL (See [URLAUTH]). 
      S1: 
      I: {to M} The IMAP server returns URLAUTH URL suitable for later 
     retrieval with URLFETCH (See [URLAUTH] for details of the semantics 
     and steps). 
      
     M: A0054 GENURLAUTH 
     "imap://bob.ar@example.org/Sent;UIDVALIDITY=387899045/;uid=45/;urla
     uth=submit+bar" INTERNAL 
            I: * GENURLAUTH 
     "imap://bob.ar@example.org/Sent;UIDVALIDITY=387899045/;uid=45/;urla
     uth=submit+bar:internal:91354a473744909de610943775f92038" 
            I: A0054 OK GENURLAUTH completed 
 
      M: {to S2} S} The client connects to the submission server and starts 
     a new mail transaction. It uses BURL to let the submit server fetch 
     the content of the message from the IMAP server (See [BURL] for 
     details of the semantics and steps û this allows the MUA to 
     authorize the submit server to access the message composed as a 
     result of the CATENATE step). 

 
 
Maes                    Expires - January 2005                [Page 5] 

                          <Lemonade Profile>                 July 2004 
 
 
      S2: 
      
     M: EHLO potter.example.org 
        S: 250-owlry.example.com 
        S: 250-8BITMIME 
        S: 250-BURL imap 
        S: 250-AUTH PLAIN 
        S: 250-DSN 
        S: 250 ENHANCEDSTATUSCODES 
        M: AUTH PLAIN aGFycnkAaGFycnkAYWNjaW8= 
        S: 235 2.7.0 PLAIN authentication successful. 
        M: MAIL FROM:<bob.ar@example.org> 
        S: 250 2.5.0 Address Ok. 
        M: RCPT TO:<ron@gryffindor.example.com> 
        S: 250 2.1.5 ron@gryffindor.example.com OK. 
        M: BURL 
     imap://bob.ar@example.org/Sent;UIDVALIDITY=387899045/;uid=45/;urlau
     th=submit+bar:internal:91354a473744909de610943775f92038 LAST 
      
      S: {to S1} I} The submission server uses URLFETCH to fetch the message 
     to be sent (See [URLAUTH] for details of the semantics and steps. 
     The so-called "pawn-ticket" authorization mechanism uses a URI 
     which contains its own authorization credentials.). 
      S1: 
      I: {to S2} S} Provides the message composed as a result of the 
     CATENATE step). 
      
     Submission server opens IMAP connection to the IMAP server: 
      
            I: * OK [CAPABILITY IMAP4REV1 URLAUTH] example.com IMAP 
     server ready 
 
 
Maes                    Expires - August 2005                [Page 7] 





                          <Lemonade Profile>             February 2005 
 
 
            S: a001 LOGIN submitserver secret 
            I: a001 OK submitserver logged in 
            S: a002 URLFETCH " 
     imap://bob.ar@example.org/Sent;UIDVALIDITY=387899045/;uid=45/;urlau
     th=submit+bar:internal:91354a473744909de610943775f92038" 
            I: * URLFETCH " 
     imap://bob.ar@example.org/Sent;UIDVALIDITY=387899045/;uid=45/;urlau
     th=submit+bar:internal:91354a473744909de610943775f92038" {15065} 
            ...message body follows... 
            S: a002 OK URLFETCH completed 
      
     << EditorÆs note: The submission server may LOGOUT>>    
      
      S2: {to M} OK (2XX) 
      
     Submission server returns OK to the MUA: 
        S: 250 2.5.0 Ok. 
       
   The messaging user agent, mail server and submit server MUST support 
   IMAPv4 Rev1 [RFC3501], CATENATE [CATENATE] and URLAUTH [URLAUTH]. 
 
2.5. 
    Additional Considerations 
    
   The so-called "pawn-ticket" authorization mechanism uses a URI which 
   contains its own authorization credentials using [URLAUTH].  The 
   advantage of this mechanism is that the submit [RFC2476] server can 
   not access any data on the [RFC3501] server without a "pawn-ticket" 
   created by the client.  The "pawn-ticket" grants acces only to the 
   specific data that the submit [RFC2476] server is authorized to 
   access, can be revoked by the client, and can have a time-limited 
   validity. 
    
2.6. 
    The fcc problem 
    
   The "fcc problem" refers to a frequent need to deliver a copy of the 
   message to a "file carbon copy" recipient.  By far, the most common 
   case of fcc is a client leaving a copy of outgoing mail in a "sent 
   messages" or "outbox" mailbox. 
    
   In the traditional strategy, the MUA duplicates the effort spent in 
   transmitting to the MSA by writing the message to the fcc destination 
   in a separate step.  This may be a write to a local disk file or an 
   APPEND to a mailbox on an IMAP server.  The latter is one of the 
   "excessive and repetitive network data transmissions" which 
   represents the "problem" aspect of the "fcc problem". 
    
   The [CATENATE] extension to [RFC3501] addresses the fcc problem.  It 
   requires making several simplifying assumptions: 

 
 
Maes                    Expires - August 2005                [Page 8] 



                          <Lemonade Profile>             February 2005 
 
 
       (1a) there is one, and only one, fcc destination on a single 
   server 
       (2a) the server which holds the fcc is the same as the server 
   which stages the outgoing message for submission 
       (3a) it is desired that the fcc be a copy of the complete message 
   text with all external data inserted in the message 
    
   <<[POSTADDRESS] 
    
   << EditorÆs note: [POSTADDRESS] can be used to address issues (1a) 
   and (2a). To be done later>> 
    

 
 
Maes                    Expires - January 2005                [Page 6] 

                          <Lemonade Profile>                 July 2004 
    
3. Mobile Optimization 
  Media Conversion 
    
3.1. 
    Introduction 
    
   The Lemonade profile provides optimizations 
    
   <<EditorÆs note: To be done when agreed by WG>> 
      
3.2. 
    Static media conversion 
    
   <<EditorÆs note: To be done when agreed by WG>> 
      
 
3.3. 
    Conversion of streamed media 
 
   <<EditorÆs note: To be done when agreed by WG>> 
 
3.4. 
    Quick Reconnect scheme 
    
   Mobile operators usually charge users for the exchanges between 
   a time their mobile 
   client and e-mail server by specifying additional 
   enhancements gets connected to the Internet and/or for optimization in a mobile setting.  Thus, the client 
   devices in this profile are assumed to be mobile with limited 
   resources.  This profile takes into account the limited resources of 
   mobile devices, as well as extra functionality desired.   
    
   Figure 2 illustrates the exchanges specified by the mobile 
   optimizations of the Lemonade Profile. 
    
   The e-mail server MAY comply with the Lemonade Pull Model described 
   in section 2. 
    
        +--------------------+               +--------------+ 
        |       Mobile       | <------------ |              |   
        |     Lemonade       |               |  Lemonade    | 
        |   E-mail Client    |               |E-mail Server |  
        |                    | ------------> |              | 
        +--------------------+               +--------------+ 
                  Figure 2: Lemonade CS Profile Model 
    
   A disconnected mobile client should behave like a good disconnected 
   client [IMAP-DISC]. 
    
   Additional requirements for optimization for Mobile access are 
   discussed in section 3.6. 
    
3.2. Motivation 
    
   Today, most of the existing email clients have a polling model, where 
   the end user is notified of changes to an email account only after 
   his/her email client asks the server, called polling.  How long it 
   takes a client to learn of a change on the server is thus dependent 
   on how often the client polls for changes.  Many clients can poll at 
   high rates so that the client can quickly learn of changes and 
   reflect them on the client display to achieve a quasi-real time. 
    
   The mobile optimization of the Lemonade profile can support both Poll 
   and Push Models. 
    
3.3.  The Poll Model vs. the Push Model 
    
   Today, most of the existing email clients implement a polling model, 
   where the end user is notified of changes to an email account only 
   after the email client polls the server for changes.  How long it 
 
 
Maes                    Expires - January 2005                [Page 7] 

                          <Lemonade Profile>                 July 2004 
 
 
   takes a client to learn of a change on the server is thus dependent 
   on how often the client polls for changes.  Many clients can poll at 
   high rates so that the client can quickly learn of changes and 
   reflect them on the client display to achieve a quasi-real time 
   synchronization experience for the end user.  The periodic poll model 
   is used on conventional email clients.  Because the client must 
   continuously poll the server for changes, the bandwidth requirements 
   can be quite high and the connection quality must be good in order to 
   provide a quasi-real time experience to the user.  This also 
   generates additional load on the IMAP server.  The periodic poll 
   model is illustrated in Figure 2.  
    
        +--------------------+      Poll     +--------------+ 
        |                    | <------------ |              |   
        |     Mail Server    |               | Email Client |  
        |                    | ------------> |              | 
        +--------------------+   Response    +--------------+ 
    
                     Figure 3: Periodic Poll Model 
             
   Another way to achieve synchronization is for the email server to 
   initiate a session with the client when a crucial change to an email 
   occurs, which is the push model.  When important events happen to a 
   userÆs email account, the server informs the client device about the 
   event, and then the client can respond to that event as necessary.  
   In this case, the client device does not need to periodically poll 
   the mail server, so the push model is particularly effective in the 
   mobile computing environment when the cost of constant polling is 
   high.  [NOTIFICATIONS] defines the semantics for pushing events to a 
   client.  The push model is seen in Figure 2. 
    
        Event   +----------------+    Push    +--------------+ 
      --------> |   Mail Server  | ---------> | Email Client |  
                +----------------+            +--------------+ 
    
                          Figure 4: Push Model 
    
    
3.4.  Synchronization Techniques 
    
   After a client receives a notification that informs it that changes 
   have occurred to a mailbox, it needs to employ a synchronization 
   technique to reflect the server side changes onto the client device. 
   There are many techniques for determining what the changes between a 
   server and client are.  In this section, two techniques are presented 
   that aim to keep a client device in sync with a given email account, 
   meaning that the set of messages on the client device is the same as 
   that in the given email account.  
     
 
 
Maes                    Expires - January 2005                [Page 8] 

                          <Lemonade Profile>                 July 2004 
 
 
3.4.1. State-Comparison-Based Synchronization 
    
   IMAPv4Rev1 clients use a state-comparison-based synchronization 
   technique to be in sync with an email account.  This technique 
   requires the client to ask the server for information regarding all 
   the folders and all the messages in each folder stored on the server.  
   The client must then compute the difference between the server state 
   and the client device state, and make all necessary changes so that 
   the client device state matches the server state.  An example of the 
   interaction between the client and server in the IMAPv4Rev1 protocol 
   for performing a state-comparison-based sync follows. This is 
   described in more details in [IMAP-DISC].  
    
   First, the client must retrieve the folders from the server. The 
   client should issue LIST to figure out which folders has to be 
   retrieved. It than uses LSUB to determine which folders are 
   subscribed. For example: 
    
      C: A002 LIST "" "%" 
      S: * LIST (\NoInferiors) "/" "Drafts" 
      S: * LIST () "/" "Friends" 
      S: * LIST (\NoInferiors) "/" "INBOX" 
      S: A002 OK completed 
      C: A003 LSUB "" "*" 
      S: * LSUB () "/" "Drafts" 
      S: * LSUB () "/" "Friends" 
      S: * LSUB () "/" "INBOX" 
      S: A003 OK LSUB completed  
    
   Note, that the client should not use LIST "" *, as it might cause too 
   much data to be returned. This is discussed in [RFC2683] in more 
   details.  
    
   The client must compare its folders with the responses of the command 
   above.  If it does not have a folder, it must create that folder on 
   the client device.  If there is a folder on the device that is not in 
   any of these responses, then the client must delete that folder. In 
   order to avoid loosing changes performed on the client, the client 
   should apply its changes first. In case when the client has changes 
   to a folder that was deleted on the server, it should ask the user 
   whether the changes should be uploaded to a different mailbox or be 
   discarded (or be configured to automatically do one of the two). 
    
   Next, the client needs to make sure that the emails in each of its 
   folders match the server.  It performs a SELECT and then a FETCH 
   command for each folder.  A sample of a SELECT and FETCH command for 
   the inbox is as follows: 
      C: A003 SELECT ôINBOX" 
      S: * 60 EXISTS 
 
 
Maes                    Expires - January 2005                [Page 9] 

                          <Lemonade Profile>                 July 2004 
 
 
      S: ... more untagged responses with information about the folder 
      S: A003 OK SELECT completed  
      C: A004 FETCH 1:* (FLAGS UID) 
      S: * 1 FETCH (FLAGS (\Answered) UID 120) 
      S: * 2 FETCH (FLAGS (\Seen) UID 121) 
      S: ... flags for messages with message sequence numbers 3-59 
      S: * 60 FETCH (FLAGS () UID 250) 
      S: A004 OK FETCH completed 
    
   The client must go through the full list of email messages in each 
   folder.  It must download an email message from this list if it is 
   not already on the client.  Any changes to the mutable flags a 
   message must be reflected on the server using IMAP STORE command.  
   Also, the client should remove any emails on the client device not in 
   this list.  After performing these operations, the client is in sync 
   with the server. 
    
   <<Need to check if this matches [IMAP-DISC]>> 
     
3.4.2. Event-based Synchronization 
    
   Another technique is event-based synchronization. Event-based 
   synchronization is used to keep the client device in sync with the 
   server. This method requires that the client has been fully 
   synchronized with the server at some earlier point.  In the 
   IMAPv4Rev1 protocol, the client must perform a state-comparison-based 
   sync when it selects a folder, but then it can use event-based 
   synchronization to keep itself in sync after that.  Although event-
   based synchronization cannot totally replace state-comparison-based 
   synchronization, it is a faster alternative for the client to 
   maintain synchrony when the server is capable of change tracking for 
   a client.   
    
   In event-based synchronization, the server keeps track of what 
   changes have occurred to the email account that are not yet reflected 
   on the client device.   Such a change is called an event.  When the 
   client finishes processing all events since the last time it was in 
   sync with the server, it is again in sync with the server.  Event-
   based synchronization is particularly effective when the server can 
   push events to the client for immediate processing.  In this case, 
   there are likely to be only a small number of events the client needs 
   to process at one time.   
    
   Also, when a Lemonade client drops a connection or accidentally 
   disconnects the server can retain the session and cache all events 
   during the time the client is disconnected.  When the client 
   reconnects it does not need to perform a state-comparison-based 
   synchronization all over again, and the server sends the list of 
   pending events to the client.. 
 
 
Maes                    Expires - January 2005               [Page 10] 

                          <Lemonade Profile>                 July 2004 
 
 
    
   Lemonade Mobile Clients and Servers MUST support Lemonade Server to 
   Client Notifications as described in [NOTIFICATIONS].  
 
 
3.5. The Server-Side Filtering in Lemonade Profile 
    
   The Lemonade server MUST support Server-side filtering as described 
   in [NOTIFICATIONS]. 
    
3.6.  Lemonade Command Extensions 
    
   The Lemonade server MUST support the rich set of extra functionality 
   over the IMAP server to support extra features for a mobile client 
   described as Lemonade Command Extensions in [EXTENSIONS]. These 
   include: 
      
     [1] Compression û Lemonade CS Profile allows for compression of 
     responses to a command.  Preliminary testing results shows 
     significant performance results when the response to FETCH FLAGS or 
     header information are compressed. Details are found in 
     [EXTENSIONS]. 
      
     [2] Sending emails - The Lemonade server can be used to send email, 
     thus eliminating the need for the Lemonade client to connect to a 
     separate SMTP server. When interfacing with a server that supports 
     LEMONADEDELIVER as discovered via CAPABILITY commands as described 
     in [Extensions], this is the mechanism that SHOULD be used. 
     Otherwise, the client is expected to implement the Lemonade Pull 
     Model described in section 2.  
      
     [3] Support for unstable mobile connections û After a client drops 
     a connection, the Lemonade server can temporarily maintain the 
     session for the mobile client.  During this time, the server caches 
     any events concerning the mobile repository while the client is 
     disconnected, which it can then send to the client upon 
     reconnection.  This is described in more details in Section 3.7 of 
     this document. 
      
     [4] Longer periods of inactivity tolerated - A Lemonade server 
     should wait at least 24 hours before logging out an inactive mobile 
     client and ending its session. <<This may lead to Deny of Service. 
     To be investigated.>> 
    
     [5] Attachments forward/reply behavior - When forwarding/replying 
     to a message from the Lemonade client, the end user may choose to 
     reattach the original's message attachments by just specifying the 
     UID of the original message and specifiers for the required 
     bodyparts.  The client need not download the attachments of the 
 
 
Maes                    Expires - January 2005               [Page 11] 

                          <Lemonade Profile>                 July 2004 
 
 
     original message itself. This is an expected server behavior. It 
     MAY also be implemented following the Lemonade Pull Model. 
      
     [6] Attachments conversion - The Lemonade server can convert 
     attachments to other formats to be viewed on a mobile device. This 
     is an expected server behavior. 
      
     [7] PIM - The protocol also provides support for updating personal 
     information on a client device, even when these changes are 
     initiated from another client (i.e. a personal assistant connects 
     to an end userÆs account from a desktop and changes contact 
     information.)  These additional uses are especially useful for 
     mobile devices, where end users need up-to-date information on the 
     fly. <<This requires additional work to store calendaring and 
     address book informations.>> 
 
3.7. Fast Reconnect 
    
   Mobile operators usually charge users for the time their mobile 
   client gets connected to the Internet and/or for the amount of 
   information sent/received. Thus the amount of 
   information sent/received. Thus a mobile client should minimize time 
   it stays connected to its mail server, which suggests that it should 
   disconnect and reconnect frequently. 
    
   Also, it is possible that the mobile client unexpectedly leaves area 
   of connectivity, which will require that the client reconnects when 
   connectivity returns. 
    
   << EditorÆs note: Discussion about voluntarily versa non-voluntarily 
   disconnects might go here>> 
    
   IMAP can be verbose. Usually, in order to synchronize a client with a 
   server after a disconnect, the client needs to issue at least the 
   following commands: LOGIN/AUTHENTICATE, SELECT and several FETCH 
   commands (see [IMAP-DISC] for more details). 
    
   Thus, there is a desire to have a quick reconnect facility in IMAP, 
   which will give a mobile client ability to resume a previously 
   abandoned session, without the need to perform the full 
   synchronization sequence as described above. 
    
   <<Note, we need an example here with and without the extension. To Be 
   Done.>> 
 
3.8. HTTP Binding 
    
   For mobile clients, the Lemonade Profile exchanges MAY be transported 
   on HTTP as described in [HTTPBINDINGS]. 
 
 
3.9.  Revisions to IMAPv4 Rev1 Behavior 
 
 
Maes                    Expires - January August 2005                [Page 12] 9] 











                          <Lemonade Profile>                 July             February 2005 
 
 
    
    
   << EditorÆs note: Example is as per reconnect-02, syntax is subject 
   to change>> 
    
      S: * OK [CAPABILITY IMAP4REV1 STARTTLS AUTH=LOGIN CONDSTORE 
         X-DRAFT-W02-RECONNECT] imap.example.com IMAP4rev1 2001.315rh 
         at Thu, 15 Jul 2004 
 
 
   A 11:47:49 -0400 (EDT) 
      C: b0002 authenticate login (SID P1234567890 56789 
   20010715194045000 
      41,43:211,214:541) 
      S: + VXNlciBOYW1lAA== 
      C: dGVzdDg= 
      S: + UGFzc3dvcmQA 
      C: dGVzdDg= 
      S: * FOLDER INBOX 
      S: * 464 EXISTS 
      S: * 3 RECENT 
      S: * OK [UIDVALIDITY 3857529045] UIDVALIDITY 
      S: * OK [UIDNEXT 550] Predicted next UID 
      S: * OK [HIGHESTMODSEQ 20010715194045007] 
      S: * 1 FETCH (UID 1 FLAGS (\Seen)) 
      S: b0002 OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX-REFERRALS 
   SCAN 
      SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND] User 
      test8 authenticated 
 
4. 
  Future work 
    
   Future versions of the Lemonade server MUST responds profile are expected to all IMAPv4Rev1 commands.  A 
   compliant Lemonade address 
   issues related to access of email form mobile devices, possibly 
   including: 
      - transport optimization for low or costly bandwidth and less 
        reliable mobile networks 
      - server must implement all to client notifications outside of the commands in IMAPv4 
   Rev1, traditional IMAP 
        band 
      - dealing with the revisions described in [NOTIFICATIONS] firewall and 
   [EXTENSIONS]. intermediaries 
      - compression 
      - filtering  
    
Security Considerations 
    
   Security considerations on the Lemonade Pull Model are discussed 
   throughout section 2. 
    
   The mobile optimization of the Lemonade profile calls for the same 
   security requirements for an in-response and inband connectivity mode 
   as IMAP.   
    
   For the outband connectivity mode, servers should use encryption 
   methods for notifications if sensitive information is included in the 
   payload of that notification. 
    
   When an implementation of Lemonade Mobile Profile is proxy-based, 
   this may create new security issues.  These issues are discussed in 
   detail in [EXTENSIONS], because the issues are dependent on the 
   implementation of this protocol rather than inherent to the protocol 
   itself. 
    
   << EditorÆs note: TBD (Reconnect, etc.)>> 
    
References 
    
   [OMA-EN] Open Mobile Alliance Email Notification Version 1.0, 
    
 
 
Maes                    Expires - August 
      2002.  http://www.openmobilealliance.org/tech/docs/EmailNot/OMA-
      Push-EMN-V1_0-20020830-C.pdf 2005               [Page 10] 











                          <Lemonade Profile>             February 2005 
 
 
    
   [IMAP-DISC] Melnikov, A.  "Synchronization Operations For 
      Disconnected Imap4 Clients", IMAP-DISC, work in progress,  draft-
      melnikov-imap-disc-XX.txt 
    
   [RFC2119] Brader, S.  "Keywords for use in RFCs to Indicate 
      Requirement Levels", RFC 2119, March 1997.  
      http://www.ietf.org/rfc/rfc2119 
    
   [RFC2180] Gahrns, M.  "IMAP4 Multi-Accessed Mailbox Practice", RFC 
      2180, July 1997.  
      http://www.ietf.org/rfc/rfc2180 
    
   [RFC2234] Crocker, D. and Overell, P.  "Augmented BNF for Syntax 
      Specifications", RFC 2234, Nov 1997.  
      http://www.ietf.org/rfc/rfc2234 
    


 
 
Maes                    Expires - January 2005               [Page 13] 

                          <Lemonade Profile>                 July 2004 
 
 
   [RFC2420] Kummert, H.  "The PPP Triple-DES Encryption Protocol 
      (3DESE)", RFC 2420, September 1998. 
      http://www.ietf.org/rfc/rfc2420 
    
   [RFC2616] Fielding, R. et al.  "Hypertext Transfer Protocol -- 
      HTTP/1.1", RFC 2616, June 1999.  
      http://www.ietf.org/rfc/rfc2616 
    
   [RFC2617] Franks, J. et al.  "HTTP Authentication: Basic and Digest 
      Access Authentication", RFC 2617, June 1999.  
      http://www.ietf.org/rfc/rfc2617 
    
   [RFC2683] Leiba, B. "IMAP4 Implementation Recommendations", RFC 2683 
      Sep 1999. 
      http://www.ietf.org/rfc/rfc2683  
    
   [RFC2177] Leiba, B. "IMAP4 IDLE Command", RFC 2177, June 1997. 
      http://www.ietf.org/rfc/rfc2177  
    
   [RFC2818] Rescorla, E. "HTTP over TLS", RFC 2818, May 2000.  
      http://www.ietf.org/rfc/rfc2818  
    
   [RFC2821]  Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, 
      April 2001. 
    
   [RFC2822] Resnick, P. "Internet Message Format", RFC 2822, April 
      2001.  http://www.ietf.org/rfc/rfc2822 
     
   [RFC3501] Crispin, M. "IMAP4, Internet Message Access Protocol 
      Version 4 rev1", RFC 3501, March 2003. 
      http://www.ietf.org/rfc/rfc3501 
    
   [RFC2476] Gellens, R. and Klensin, J., "Message Submission", RFC 
      2476, December 1998. 
    
   [CATENATE]Resnick, P., "Internet Message Access Protocol (IMAP) 
      CATENATE Extension", draft-ietf-lemonade-catenate-01, draft-ietf-lemonade-catenate-XX, (work in 
      progress), January 2004. 
      progress). 
    
   [BURL]    Newman, C., "Message Composition", draft-newman-lemonade-
      compose-00.txt draft-ietf-lemonade-
      burl-xx (work in progress), June 2003. progress). 
    
   [URLAUTH] Crispin, M. and Newman, C., "Internet Message Access 
      Protocol (IMAP) - URLAUTH Extension", draft-crispin-imap-urlauth-
      09.txt, (work in progress), July 2004. 
    
   [EXTENSIONS] Maes, S.H., Lima R., Kuang, C., Cromwell, R., Ha, V. and 
      Chiu, E., "Lemonade Command Extensions", draft-maes-lemonade-
      command-extensions-00.txt, (work in progress), July 2004. 
 
 
Maes                    Expires - January 2005               [Page 14] 

                          <Lemonade Profile>                 July 2004 
 
 
    
   [NOTIFICATIONS] Maes, S.H. and Wilson C., "Lemonade Server to Client 
      Notifications", draft-ietf-lemonade-server-to-client-
      notifications-00.txt, (work in progress), July 2004. 
    
   [HTTPBINDINGS] Maes, S.H., Lima R., Kuang, C., Cromwell, R., Ha, V. 
      and Chiu, E., "Lemonade HTTP Binding", draft-maes-lemonade-http-
      binding-00.txt, draft-ietf-lemonade-urlauth-
      XX.txt, (work in progress), July 2004. progress). 
    
   [POSTADDRESS] Melnikov, A., "IMAP4 POSTADDRESS extension", work in 
      progress, draft-melnikov-imap-postaddress-XX.txt 
    

 
 
Maes                    Expires - August 2005               [Page 11] 











                          <Lemonade Profile>             February 2005 
 
 
   [RECONNECT] Melnikov, A. and C. Wilson, " IMAP4 extension for quick 
      reconnect ", work in progress, draft-ietf-lemonade-reconnect-
      XX.txt 
    
Version History 
    
   [1] We removed the sections of the profile related to mobile e-mail 
      as well as discussion. This will be part of the next version of 
      the Lemonade profile work. 
   [2] We added detailed examples for the different steps included in 
      section 2.4. 
   [3] We added section 3 on media conversion 
   [4] We added examples on Quick reconnect schemes in section 4. 
   [5] We updated the security considerations 
   [6] We fixed references based on updates above 
   [7] We added a future work section 
   [8] We fixed the boiler plate statements on the ôstatus of this memoö 
      and ôCoprirightö. 
    
Acknowledgments 
    
   This document is based on the work in progress described in draft-
   crispin-lemonade-pull-01.txt and draft-maes-lemonade-p-imap-03.txt.
   crispin-lemonade-pull-xx.txt. 
 
Authors Addresses 
    
   Stephane H. Maes 
   Oracle Corporation 
   500 Oracle Parkway 
   M/S 4op634 
   Redwood Shores, CA 94065 
   USA 
   Phone: +1-650-607-6296 
   Email: stephane.maes@oracle.com 
    
   Alexey Melnikov 
   Isode Limited 
   5 Castle Business Village 
   36 Station Road 
   Hampton, Middlesex 
   TW12 2BX 
   UK  
   Email: Alexey.melnikov@isode.com 
    
Intellectual Property Statement 
    
   The IETF takes no position regarding the validity or scope of any 
   intellectual property or other rights that might be claimed to 
   pertain to the implementation or use of the technology described in 
 
 
Maes                    Expires - August 2005               [Page 12] 











                          <Lemonade Profile>             February 2005 
 
 
   this document or the extent to which any license under such rights 
   might or might not be available; neither does it represent that it 
   has made any effort to identify any such rights.  Information on the 
   IETF's procedures with respect to rights in standards-track and 
   standards-related documentation can be found in BCP-11.  Copies of 
   claims of rights made available for publication and any assurances of 
   licenses to be made available, or the result of an attempt made to 
 
 
Maes                    Expires - January 2005               [Page 15] 

                          <Lemonade Profile>                 July 2004 
   obtain a general license or permission for the use of such 
   proprietary rights by implementors or users of this specification can 
   be obtained from the IETF Secretariat.  
            
   The IETF invites any interested party to bring to its attention any 
   copyrights, patents or patent applications, or other proprietary 
   rights which may cover technology that may be required to practice  
   this standard.  Please address the information to the IETF Executive  
   Director. 
    
Acknowledgement 
    
   Funding for the RFC Editor function is currently provided by the 
   Internet Society. 
    
    
Full Copyright Statement 
    
   Copyright (C) The Internet Society 2003.  All Rights Reserved. 2004. This document is subject to 
   the rights, licenses and restrictions contained in BCP 78, and except 
   as set forth therein, the authors retain all their rights.  
        
   This document and the information contained herein are provided on an 
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
            
   This document and translations of it may be copied and furnished to 
   others, and derivative works that comment on or otherwise explain it 
   or assist in its implementation may be prepared, copied, published 
   and distributed, in whole or in part, without restriction of any 
   kind, provided that the above copyright notice and this paragraph are 
   included on all such copies and derivative works.  However, this 
   document itself may not be modified in any way, such as by removing 
   the copyright notice or references to the Internet Society or other 
   Internet organizations, except as needed for the purpose of 
   developing Internet standards in which case the procedures for 
   copyrights defined in the Internet Standards process must be 

 
 
Maes                    Expires - August 2005               [Page 13] 











                          <Lemonade Profile>             February 2005 
 
 
   followed, or as required to translate it into languages other than 
   English.  
            
   The limited permissions granted above are perpetual and will not be  
   revoked by the Internet Society or its successors or assigns. 
        
   This document and the information contained herein is provided on an 
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 










 
 
Maes                    Expires - January August 2005               [Page 16] 14] 










----