RFC List

Every RFC is the work of someone who felt enough pain from the lack of something that they would make the effort to write the document. These problems need to be solved somehow - maybe inherently in a different protocol, maybe explicitly.

There's not even an attempt to include address book, calendaring, etc in this list yet!

RFC List


Problem Solved

Plan for new Protocol

RFC 1730 Internet Message Access Protocol - Version 4

Replaced by 3501

See 3501

RFC 1731 IMAP4 Authentication Mechanisms


We need to support good authentication mechanisms to succeed

RFC 1734 POP3 AUTHentication command

Additional Auth for POP3

Whatever we do with IMAP auth

RFC 1939 Post Office Protocol - Version 3

Simpler access mechanism than IMAP

Less necessary with higher resources available today. Make sure protocol supports simple access to emails. Special considerations: UIDL -> GUID mapping, RSET (undo) and "view selection"

RFC 1957 Some Observations on Implementations of the Post Office Protocol (POP3)

Syntax parsing problems

Don't roll-your-own syntax. Have test process documented in standard

RFC 2060 Internet Message Access Protocol - Version 4rev1

Replaced by 3501

See 3501

RFC 2086 IMAP4 ACL extension

Fine-grained access control

Will need an Access Control mechanism. Ideally not too different - reuse as much as possible. May need to consider individual folders vs "entire user" in the context of folder-level ACLs

RFC 2087 IMAP4 QUOTA extension

Enforce resource limits, prevent abuse

Will need some form of Quota. Expand scope to include other objects (annotations, keywords, num-folders, etc) consistently

RFC 2088 IMAP4 non-synchronizing literals

Extra round trip when uploading mesasges

No synchronising literals - this one becomes the default and only option

RFC 2177 IMAP4 IDLE command

"Real time notification"

Expand scope considerably - IDLE is insufficient for many users, because it only monitors one mailbox

RFC 2180 IMAP4 Multi-Accessed Mailbox Practice

Clarify ways to handle delete and expunge with other clients connected

Not using sequence numbers would render many of these moot. Mixed responses (a la LMTP) would render many more of them moot. Also need to handle the case of "partial IO error" - where data exists but can not be returned immediately for some reason

RFC 2192 IMAP URL Scheme

HTTP Mapping of IMAP mailboxes

Need to provide a HTTP mapping (see recent discussion on the imap5 list)

RFC 2195 IMAP/POP AUTHorize Extension for Simple Challenge/Response

More authentication handling

Merge into Auth, possibly by reference

RFC 2342 IMAP4 Namespace

Standardise a way to deal with existing different layouts

Specify one mailbox layout only. Heirarchy separator will either be forced or not exist (tree data structure on the wire). Either way fully merged with LIST/LSUB

RFC 2359 IMAP4 UIDPLUS extension

Fix insufficient information being returned from commands to synchronise state

All UIDPLUS returned information retained

RFC 2449 POP3 Extension Mechanism

Allow detection of capabilities of POP3 server

Out of scope

RFC 2595 Using TLS with IMAP, POP3 and ACAP

Encryption support

New protocol must support encryption, preferably as the default

RFC 2831 Using Digest Authentication as a SASL Mechanism

More auth

Merge into Auth

RFC 2919 List-Id: A Structured Field and Namespace for the Identification of Mailing Lists

Mostly interesting as a searchable/sortable field

RFC 2971 IMAP4 ID extension

Identify the remote client

Very valuable for tracking down buggy implementations. Require an ID

RFC 3348 The Internet Message Action Protocol (IMAP4) Child Mailbox Extension

Detect if child mailboxes exist for display and null-fetch optimisation

Ensure sufficient information can be queried in new LISTing system


The main protocol document

This will need to be addressed in individual sections

RFC 3502 Internet Message Access Protocol (IMAP) - MULTIAPPEND Extension

Efficiency and round-trip considerations for batch uploading

Ideally part of a more generic "batch operations" - more discussion required

RFC 3516 IMAP4 Binary Content Extension

Get server-side to decode part content

Ideally composible actions - first 1000 characters of decoded value of part "1.2" of message $GUID

RFC 3691 Internet Message Access Protocol (IMAP) UNSELECT command

Close mailbox without implicit expunge

Remove implicit expunge - problem no longer exists

RFC 4314 IMAP4 Access Control List (ACL) Extension

Clarify and expand ACL handling

See also comment on 2086 - need to support ACL handling

RFC 4315 Internet Message Access Protocol (IMAP) - UIDPLUS extension

Expand more on UIDPLUS

See 2359 comment - will be mooted. GUIDs will be compulsory, even if you just use a hash of the message contents, so UIDNOTSTICKY goes away

RFC 4466 Collected Extensions to IMAP4 ABNF

Tidy up the ballooning synax variations

Avoid having such a complex ABNF - use a structured substrate of some sort. It will be less human-typing-friendly, but more machine friendly

RFC 4467 Internet Message Access Protocol (IMAP) - URLAUTH Extension

Authentication token

Definitely want token based access so you can authenticate once and then re-connect with the same token, at least during the same "session"

RFC 4468 Message Submission BURL Extension

Send a message by copying content from an IMAP store

Supplement/replace with submit via same protocol. BURL is too complex from a "interacting systems, firewalls and authentication methods" perspective

RFC 4469 Internet Message Access Protocol (IMAP) CATENATE Extension

Reduce bandwidth use by manipulating partial messages on the server

Definitely want to be able to do this

RFC 4550 Internet Email to Support Diverse Service Environments (Lemonade) Profile

Reduce bandwidth and resource use

Need to support the same use cases

RFC 4551 IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization

Avoid fetching flags for every message in a mailbox to see what's changed

Along with QRESYNC, need to support the same concepts - fast resync without holding a connection open

RFC 4731 IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned

Reduce bandwidth use and parsing requirements for search - also get a seqset to allow reuse without parsing/combining the sequence at the client

Flexible enough search syntax that all the use cases given here are possible

RFC 4959 IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response

Auth mechanisms

Should be supported as part of Auth

RFC 4978 The IMAP COMPRESS Extension

Reduce bandwidth use

Compression should be part of the transport layer

RFC 5032 WITHIN Search Extension to the IMAP Protocol

More search extentions

Flexible enough search syntax that the use cases are possible

RFC 5092 IMAP URL Scheme

URL encoding of IMAP mailboxes

This is almost a replacement protocol in itself - hopefully it will map almost untouched. The hard bit will be extra things like metadata, condstore, which it doesn't seem to consider - so it's incomplete

RFC 5161 The IMAP ENABLE Extension

Make sure clients don't choke on extra response information

Explicity allow space for extention. Make test case system add random "rubbish" where it's allowed to make sure clients/servers don't complain

RFC 5162 IMAP4 Extensions for Quick Mailbox Resynchronization

Fix "unaware of expunge" deficiency in CONDSTORE

new protocol will not have this particular deficiency

RFC 5182 IMAP Extension for Referencing the Last SEARCH Result

Avoid sending message set data backwards and forwards

Ideally, part of a more general "compose commands" - but the ability to store a search result for later manipulation will be needed

RFC 5228 Sieve: An Email Filtering Language

(and all the extentions)

Support Sieve - possibly even sieve fragments as "run this filter on this mailbox". Common use case is "add a rule to filter messages matching X into a folder, and also apply that to the messages in INBOX now so existing ones get copied"

RFC 5255 Internet Message Access Protocol Internationalization

Support multiple languages

Definitely, need to keep this - language negotiation needs to be part of the initial connection

RFC 5256 Internet Message Access Protocol - SORT and THREAD Extensions

Server-side support for message ordering

Doesn't go far enough - particularly across folders. Also fuzzy searching and partial response is an interesting area

RFC 5257 Internet Message Access Protocol - ANNOTATE Extension

Like metadata for folders, but for messages

Yet another axis of data - need to merge with keywords and regularise. Specify quota and ACL handling (currently different for keywords and annotations). Specify shared vs private "same keyword", e.g. shared \Seen and private \Seen ?

RFC 5258 Internet Message Access Protocol version 4 - LIST Command Extensions

Was there really a point? Except making LIST extensible and giving tiny bandwidth improvements and tiny server performance improvements

There are a few cases covering list andling - it's a lot more complex than the small amount of actual data involved justifies. Massive deadwood cleaning required here

RFC 5321 Simple Mail Transfer Protocol

Submission of email

Need to consider interaction with submission if we support submission

RFC 5423 Internet Message Store Events

More detailed information about changes than IDLE provides

Good notification architecture is essential - absorb all this

RFC 5464 The IMAP METADATA Extension

Annotations for mailboxes

Along with Special-Use, metadata about mailboxes

RFC 5465 The IMAP NOTIFY Extension

Easy way to get new email notifications for all mailboxes

Combine with message store events

RFC 5530 IMAP Response Codes

Better machine-readable status information

Definitely want this, include

RFC 5550 The Internet Email to Support Diverse Service Environments (Lemonade) Profile

Set a baseline of "required supported features" to get a better experience

Exactly what we're planning here - everything you can do with Lemonade should be supported - not necessarily in the same way

RFC 5593 Internet Message Access Protocol (IMAP) - URL Access Identifier Extension

Clarify some bits of URL access, add streaming support

Hopefully URL access can stay almost exactly the same

RFC 5703 Sieve Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure

Sieve commands for manipulating messages

Keep, maybe see if it dovetails well with CATENATE for issuing server-side manipulations

RFC 5738 IMAP Support for UTF-8

Multiple charsets and encoding/decoding is annoying

Use UTF-8 everywhere from the beginning

RFC 5788 IMAP4 Keyword Registry

Register particular keywords that are already in common use

Either use them as-is, or map into annotation-space. In particular, replacing pairs of mutually exclusive options with a "tristate" makes sense. ($NotReported $ReportedAsSpam $ReportedAsHam) for example

RFC 5819 IMAP4 Extension for Returning STATUS Information in Extended LIST

Get status data on multiple folders more efficiently

Make it easy to not only get status data, but to get a list of which folders have changed since last request

RFC 5957 Display-Based Address Sorting for the IMAP4 SORT Extension

Match the sorting orders being done by clients

Would love to make this more general - sort by a somewhat arbitrary function on the message

RFC 6154 IMAP LIST Extension for Special-Use Mailboxes

A particular type of metadata - basicallly standarising Google's XLIST, near enough

Extend more - allow both private and shared "special uses", because there are contexts where both make sense. Folder listing is one of the major pain points for client authors

RFC 6203 IMAP4 Extension for Fuzzy Search

Giving a human-friendly search result, sorted by relevancy

Everyone wants this

RFC 6237 IMAP4 Multimailbox SEARCH Extension

Simplifying "search from all mailboxes" for clients

And this! But this one has a problem, it doesn't let you sort across folders, which makes it only half the solution. Need to fix the sort as well

[http://tools.ietf.org/html/rfc6409|RFC 6409]]

Submission of message by MUAs

Update of RFC 2476 and RFC 4409 - need to refer to for submission logic

(auto-generated from the list stored at Github)

None: ImapRFCList (last edited 2012-02-20 13:23:54 by pat-tdc)