Cyrus IMAP 3.3.1 Tag Notes

Unavailable for download as this is a development branch only.

Access is via git.


This should be considered for testing purposes and bleeding-edge features only. We will try to tag these snapshots at coherent development points, but there will generally be large breaking changes occurring between releases in this series.

Major changes since the 3.2 series

  • DAV improvements

  • Improved performance for users with large folders

  • LITERAL- maximum size is now honoured (RFC 7888)

  • Support for the ESORT (but not CONTEXT) extension from RFC 5267

  • Experimental JMAP for Sieve Scripts support (requires jmap_nonstandard_extensions: yes in imapd.conf(5)).

  • Experimental Handling Message Disposition Notification with JMAP support (requires jmap_nonstandard_extensions: yes in imapd.conf(5)).

  • Experimental JMAP Backup extension (requires jmap_nonstandard_extensions: yes in imapd.conf(5)).

  • Experimental JMAP Notes extension (requires jmap_nonstandard_extensions: yes in imapd.conf(5)).

  • Experimental JMAP Blob extension (requires jmap_nonstandard_extensions: yes in imapd.conf(5)).

  • Experimental JMAP Mail extension (requires jmap_nonstandard_extensions: yes in imapd.conf(5)).

  • New cyrus.index format v17 adds changes_epoch field, needed by JMAP Backups extension

  • New reverseuniqueids imapd.conf(5) option (default on), which improves performance for users with large mailboxes

  • Further improvements to the reverseacls imapd.conf(5) performance option

  • Improvements to replication reliability and performance

  • Experimental vnd.cyrus.log and vnd.cyrus.jmapquery Sieve extensions

  • Experimental Sieve Snooze extension based on draft-ietf-extra-sieve-snooze

  • Experimental Sieve mailboxid extension based on draft-ietf-extra-sieve-mailboxid

  • Improvements to conversations

  • New mailbox_maxmessages_addressbook, mailbox_maxmessages_calendar, and mailbox_maxmessages_email imapd.conf(5) options for providing server-wide limits on the amount of objects in any one mailbox, independently of quotas. These default to 0 (unlimited) for backward compatibility, but are highly recommended for protecting your server from misbehaving clients.

  • New IMAP create/delete behaviour based on draft-ietf-extra-imap4rev2: mailboxes containing child mailboxes can no longer be deleted; and when creating mailboxes, ancestors will be created as needed.

  • CRC32 optimisations

  • quota(8) and cyr_expire(8) arguments are now in the admin namespace like other tools

  • Support for per-language indexing and searching

  • SNMP support has been removed, as it was broken and unmaintained

  • New sync_rightnow_channel imapd.conf(5) option to enable real-time replication to the specified channel as writes occur.

  • Caching of mailbox state for quicker replication turnaround. Configure sync_cache_db and sync_cache_db_path in imapd.conf(5) to enable.

  • New search-fuzzy-always annotation allows per-user override of the search_fuzzy_always imapd.conf(5) option

  • New lmtp_preparse imapd.conf(5) option for parsing incoming messages before locking the mailbox.

  • New search_index_skip_users and search_index_skip_domains imapd.conf(5) options for skipping indexing of particular users/domains.

  • The HTTP Admin module's Currently Running Services feature now works on the major BSDs (thanks Felix J. Ogris)

Updates to default configuration

The cyr_info(8) conf, conf-all and conf-default subcommands accept an -s <version> argument to highlight imapd.conf(5) options that are new or whose behaviour has changed since the specified version. We recommend using this when evaluating a new Cyrus version to check which configuration options you will need to examine and maybe set or change during the process.

  • The annotation_definitions file is now loaded case-insensitively

Security fixes

  • None so far

Significant bugfixes

  • Fixed: Sieve Editheader Extension (RFC 5293) now works correctly with respect to section 7, Interaction with Other Sieve Extensions.