RFC 5957 PROPOSED STANDARD IMAP · EMAIL · SORTING

IMAP SORT display: Display-Based Address Sorting for the IMAP4 SORT Extension

IMAP sort criteria that order messages by the name people see in From and To, not the bare address.

On rfc-editor.org ↗
PUBLISHED
July 2010
AUTHORS
D. Karp
STREAM
IETF
BUILDS ON
RFC 5256 — IMAP SORT/THREAD
CAPABILITY
SORT=DISPLAY
NEW SORT KEYS
DISPLAYFROM, DISPLAYTO
DEFAULT CHARSET
UTF-8
DOI
10.17487/RFC5957

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                           D. Karp
Request for Comments: 5957                                        Zimbra
Updates: 5256                                                  July 2010
Category: Standards Track
ISSN: 2070-1721


       Display-Based Address Sorting for the IMAP4 SORT Extension

Abstract

   This document describes an IMAP protocol extension enabling server-
   side message sorting on the commonly displayed portion of the From
   and To header fields.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc5957.

Copyright Notice

   Copyright (c) 2010 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
   (http://trustee.ietf.org/license-info) 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.

Table of Contents

   1. Introduction ....................................................2
   2. Conventions Used in This Document ...............................2
   3. DISPLAY Sort Value for an Address ...............................2
   4. The DISPLAYFROM and DISPLAYTO Sort Criteria .....................3
   5. Formal Syntax ...................................................3
   6. Security Considerations .........................................3
   7. Internationalization Considerations .............................4
   8. IANA Considerations .............................................4
   9. Normative References ............................................4

1.  Introduction

   The [SORT] extension to the [IMAP] protocol provides a means for the
   server-based sorting of messages.  It defines a set of sort criteria
   and the mechanism for determining the sort value of a message for
   each such ordering.

   The [SORT] FROM and TO orderings sort messages lexically on the
   [IMAP] addr-mailbox of the first address in the message's From and To
   headers, respectively.  This document provides two alternative
   orderings, DISPLAYFROM and DISPLAYTO, which sort messages based on
   the first From or To address's [IMAP] addr-name (generally the same
   as its [RFC5322] display-name), when present.

   A server that supports the full [SORT] extension as well as both the
   DISPLAYFROM and DISPLAYTO sort criteria indicates this by returning
   "SORT=DISPLAY" in its CAPABILITY response.

2.  Conventions Used in This Document

   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].

3.  DISPLAY Sort Value for an Address

   For the purposes of the sort criteria defined in this document, the
   sort value for an [IMAP] address structure is defined as follows:

   o  If the address structure's [IMAP] addr-name is non-NIL, apply the
      procedure from [RFC5255], Section 4.6.  (That is, decode any
      [RFC2047] encoded-words and convert the resulting character string
      into a charset valid for the currently active [RFC4790] collation,
      with a default of UTF-8.)  If the resulting octet string is not
      the empty string, use it as the sort value for the address.

   o  Otherwise, if the address structure's [IMAP] addr-mailbox and
      [IMAP] addr-host are both non-NIL, the sort value for the address
      is addr-mailbox@addr-host.

   o  Otherwise, if the address structure's [IMAP] addr-mailbox is non-
      NIL, the sort value for the address is its addr-mailbox.

   o  If none of the above conditions are met, the sort value for the
      address is the empty string.

4.  The DISPLAYFROM and DISPLAYTO Sort Criteria

   This document introduces two new [SORT] sort criteria, DISPLAYFROM
   and DISPLAYTO.  A message's sort value under these orderings MUST be
   derived as follows:

   A "derived-addr" value is created from the [IMAP] envelope structure
   resulting from a FETCH ENVELOPE on the message.  For DISPLAYFROM, the
   derived-addr value is the [IMAP] env-from value.  For DISPLAYTO, the
   derived-addr value is the [IMAP] env-to value.

   o  If the derived-addr value is NIL, the message's sort value is the
      empty string.

   o  Otherwise, the message's sort value is the DISPLAY sort value of
      the first [IMAP] address in the derived-addr value.

5.  Formal Syntax

   The following syntax specification uses the Augmented Backus-Naur
   Form (ABNF) notation as specified in [RFC5234].  [IMAP] defines the
   non-terminal "capability", and [SORT] defines "sort-key".

   capability    =/ "SORT=DISPLAY"

   sort-key      =/ "DISPLAYFROM" / "DISPLAYTO"

6.  Security Considerations

   This document defines an additional IMAP4 capability.  As such, it
   does not change the underlying security considerations of [IMAP].
   The author believes that no new security issues are introduced with
   this additional IMAP4 capability.

7.  Internationalization Considerations

   DISPLAYFROM and DISPLAYTO are string-based sort criteria.  As stated
   in [SORT], the active [RFC4790] collation as per [RFC5255] MUST be
   used when sorting such strings.

   The DISPLAYFROM and DISPLAYTO orderings sort on the full decoded
   [IMAP] addr-name, when present.  They do not attempt to parse this
   string in a locale- or language-dependent manner in order to
   determine and sort on some semantically meaningful substring such as
   the surname.

8.  IANA Considerations

   [IMAP] capabilities are registered by publishing a Standards Track or
   IESG-approved Experimental RFC.  This document constitutes
   registration of the SORT=DISPLAY capability in the [IMAP]
   capabilities registry.

9.  Normative References

   [IMAP]     Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
              4rev1", RFC 3501, March 2003.

   [RFC2047]  Moore, K., "MIME (Multipurpose Internet Mail Extensions)
              Part Three: Message Header Extensions for Non-ASCII Text",
              RFC 2047, November 1996.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4790]  Newman, C., Duerst, M., and A. Gulbrandsen, "Internet
              Application Protocol Collation Registry", RFC 4790, March
              2007.

   [RFC5234]  Crocker, D., Ed., and P. Overell, "Augmented BNF for
              Syntax Specifications: ABNF", STD 68, RFC 5234, January
              2008.

   [RFC5255]  Newman, C., Gulbrandsen, A., and A. Melnikov, "Internet
              Message Access Protocol Internationalization", RFC 5255,
              June 2008.

   [RFC5322]  Resnick, P., Ed., "Internet Message Format", RFC 5322,
              October 2008.

   [SORT]     Crispin, M. and K. Murchison, "Internet Message Access
              Protocol - SORT and THREAD Extensions", RFC 5256, June
              2008.

Author's Address

   Dan Karp
   Zimbra
   3401 Hillview Avenue
   Palo Alto, CA  94304
   USA

   EMail: dkarp@zimbra.com
   URI:   http://www.zimbra.com

AI ELI5

On this page
PROBLEMThe IMAP SORT extension sorts FROM and TO on the bare mailbox part of the first address, which is not what users see in their message lists.
MECHANISMTwo new sort criteria, DISPLAYFROM and DISPLAYTO, sort on the address's display name when present, falling back to the mailbox address; servers advertise SORT=DISPLAY.
WHY IT MATTERSIt updates RFC 5256 and adds one capability to the IMAP registry.

§1Introduction

The SORT extension (RFC 5256) to IMAP (RFC 3501) lets the server sort messages. Its FROM and TO orderings sort lexically on the addr-mailbox of the first address in the From and To headers.

This document adds DISPLAYFROM and DISPLAYTO, which sort on the first address's addr-name (generally the display-name) when present. A server supporting full SORT and both criteria returns SORT=DISPLAY in its CAPABILITY response.

Mail used to be sorted by the hidden address. Now it can be sorted by the name you actually see.

§2How the Sort Value Is Chosen

For an address, the sort value comes from the first rule that applies. If addr-name is non-NIL, decode any RFC 2047 encoded-words and convert the result into a charset valid for the active collation (default UTF-8), as in RFC 5255; if that is not empty, use it. Otherwise, if mailbox and host are both non-NIL, use addr-mailbox@addr-host. Otherwise, if only the mailbox is non-NIL, use it. Otherwise the value is the empty string.

For a message, take the envelope from FETCH ENVELOPE. DISPLAYFROM uses env-from and DISPLAYTO uses env-to. If that value is NIL the sort value is the empty string; otherwise it is the sort value of the first address in it.

Use the person's name if there is one; if not, use their email address; if there is nothing, use blank.

ORDER OF RULES FOR AN ADDRESS SORT VALUE
  • 1addr-name — Decoded display name, if non-NIL and not empty.
  • 2mailbox@host — If addr-mailbox and addr-host are both non-NIL.
  • 3mailbox — If only addr-mailbox is non-NIL.
  • 4empty string — If none of the above apply.

§3Syntax and Internationalization

The ABNF adds SORT=DISPLAY to capability and DISPLAYFROM and DISPLAYTO to sort-key.

Both criteria are string-based, so the active collation MUST be used. They sort on the full decoded addr-name and do not try to pick out a meaningful part such as the surname.

The sorting looks at the whole name as written, not just the last name.

§4Security and IANA

The extension only adds an IMAP capability, so it does not change the underlying security considerations of IMAP. The author believes no new security issues are introduced.

IANA registration: this document registers the SORT=DISPLAY capability in the IMAP capabilities registry.

It is only a new way to sort, so it adds no new risk, and the new name goes on the official list.

§5References