Cyrus IMAP 3.4.0-beta3 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 -s option 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.

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.

  • Fixed Issue #2598: indexed search now works correctly with Squat engine again