The IMAP Move Extension

The information below is for an old version of the document
Document Type Active Internet-Draft (imapmove WG)
Last updated 2012-06-28
Replaces draft-gulbrandsen-imap-move
Stream IETF
Intended RFC status (None)
Formats plain text pdf html bibtex
Stream WG state WG Document
Document shepherd None
IESG IESG state I-D Exists
Consensus Boilerplate Unknown
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                   Arnt Gulbrandsen
Internet-Draft                                                 June 2012
Intended Status: Standards Track

                        The IMAP Move Extension

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   ( in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document. Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   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-

   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 The list of Internet-
   Draft Shadow Directories can be accessed at

   This Internet-Draft expires in December 2012.

Gulbrandsen               Expires December 2012                 [Page 1]
Internet-draft                                                 June 2012


   The MOVE extension provides a new command, UID MOVE, which moves one
   or more messages from the selected mailbox to a named mailbox.

1. Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in [RFC2119].

   Formal syntax is defined by [RFC5234].

   Example lines prefaced by "C:" are sent by the client and ones
   prefaced by "S:" by the server.

2. Overview

   This document defines an IMAP extension to move messages from one
   mailbox to another. This function (very common in MUA UIs) is not
   provided by stock IMAP, and clients have to use a combination of UID
   STORE, UID COPY and EXPUNGE, and cope with partial failures and side

   Only UID MOVE is defined, not MOVE. There are three reasons for this.
   First, MOVE poses some difficult questions with regard to expunges.
   Second, in a survey of user agents that provide move in the user
   interface, all were seen to use UID commands anyway. Third, a server
   implementer reported that implementing move based on message sequence
   numbers would be more difficult than UID MOVE.

   If MSN-based move is found to be needed (rather than just neat), it
   can be defined by a future document.


   The UID MOVE command takes two arguments: a set of UIDs and a named
   mailbox. It moves each message included in the UID set to the named

   The UID MOVE command has the same effect as a sequence of UID COPY,
   UID STORE +FLAGS \DELETED and UID EXPUNGE, with three differences:

Gulbrandsen               Expires December 2012                 [Page 2]
Internet-draft                                                 June 2012

   First, each message SHOULD either be moved or unaffected. The server
   SHOULD NOT leave a message in neither or both mailboxes afterwards
   (even if the server returns a tagged NO response).

   Second, the messages MUST NOT have the \Deleted flag set in the
   target mailbox.

   Third, the server is not required to send FETCH FLAGS responses for
   the messages it expunges.

   UID MOVE is the same as the three-command sequence in all other
   respects, which implies that extensions which affect the three-
   command sequence also affect UID MOVE, and that response codes such
   as COPYUID, TRYCREATE and so on should be sent as appropriate.

   An example:
        C: a UID MOVE 42:69 forble
        S: * 22 EXPUNGE
        S: (more expunges)
        S: a OK [COPYUID 432432 42:69 1202:1229] Done

   Note that the server may send EXPUNGEs for other messages as well, if
   any happen to have been expunged at the same time.

   Implementers will need to read [RFC4315] to understand what UID
   EXPUNGE does. Implementing [RFC4315] is not necessary.

4. Interaction with other extensions

   This section points out how other IMAP extensions interact with this.
Show full document text