implement the imap metadata extension, rfc 5464

this allows setting per-mailbox and per-server annotations (metadata). we have
a fixed maximum for total number of annotations (1000) and their total size
(1000000 bytes). this size isn't held against the regular quota for simplicity.
we send unsolicited metadata responses when a connection is in the idle
command and a change to a metadata item is made.

we currently only implement the /private/ namespace.  we should implement the
/shared/ namespace, for mox-global metadata annotations.  only the admin should
be able to configure those, probably through the config file, cli, or admin web
interface.

for issue #290
This commit is contained in:
Mechiel Lukkien
2025-02-17 22:44:51 +01:00
parent 9dff879164
commit f30c44eddb
17 changed files with 820 additions and 41 deletions

View File

@ -201,7 +201,12 @@ https://www.iana.org/assignments/message-headers/message-headers.xhtml
5258 Yes - Internet Message Access Protocol version 4 - LIST Command Extensions
5259 No - Internet Message Access Protocol - CONVERT Extension
5267 Roadmap - Contexts for IMAP4
5464 Roadmap - The IMAP METADATA Extension
5464 Yes - The IMAP METADATA Extension
5464-eid1691 - - errata: fix example entry name
5464-eid1692 - - errata: make text match abnf
5464-eid2785 - - errata: fix GETMETADATA example
5464-eid2786 - - errata: fix GETMETADATA example
5464-eid3868 - - errata: fix GETMETADATA example
5465 Roadmap - The IMAP NOTIFY Extension
5466 Roadmap - IMAP4 Extension for Named Searches (Filters)
5524 No - Extended URLFETCH for Binary and Converted Parts