Cyrus IMAP 3.4.0 Release Notes¶
Download from GitHub:
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)
- squatter(8) once again supports the
-soption to skip reindexing mailboxes which were not modified since the last index (Squat backend only)
- squatter(8) now supports long options
- Improvements to search query normalisation performance
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
- Implementations may want to revisit their search_normalisation_max settings, but its default value 1000 is a good conservative choice. Current server-grade hardware may use 20000 or more.
- None so far