Спустя семь лет после формирования версии 2.3.0 представлена новая ветка многоплатформенного IMAP-сервера Dovecot 2.4.0, поддерживающего протоколы POP3 и IMAP4rev1 с популярными расширениями, такими как SORT, THREAD, MULTIAPPEND, QUOTA, ACL, COMPRESS, NOTIFY, METADATA и IDLE, и механизмами аутентификации и шифрования (SASL, TLS, SCRAM, XOAUTH2). Dovecot сохраняет полную совместимость с классическими mbox и Maildir, применяя внешние индексы для повышения производительности. Для расширения функциональности могут использоваться плагины, через которые реализованы такие возможности, как квоты, ACL, Push-уведомления, полнотекстовый поиск и виртуальные почтовые ящики. Код проекта распространяется под лицензиями LGPL и MIT.
Основные изменения:
- Внесены изменения, нарушающие обратную совместимость c конфигурацией, применявшейся для ветки 2.3.x. Например, задействован новый синтаксис раскрытия переменных (“%{local_port}” вместо “%a” и т.п.) и модификаторов (“%{user | md5 | hexlify(1)}” вместо “%1Mu” и т.п.), введено обязательное указание имени в секциях passdb и userdb, переименованы многие настройки, в отдельную секцию вынесены настройки квот.
- Добавлена экспериментальная поддержка расширения SMTPUTF8 (RFC 6531) и режима “IMAP UTF8=ACCEPT”, позволяющих использовать символы национальных алфавитов в адресах электронной почты, именах хостов, названиях почтовых ящиков и заголовках. Для включения требуется сборка с опцией “–enable-experimental-mail-utf8” при вызове скрипта configure и выставление настройки “mail_utf8_extensions=yes”
- Добавлена поддержка схемы хэширования паролей ARGON2, SASL-алгоритмов SCRAM-SHA-1 и SCRAM-SHA-256, эллиптических кривых X25519 и X448.
- В драйвер аутентификации через LDAP добавлена поддержка атрибутов, включающих несколько значений (multi-value).
- Добавлена поддержка TLS-расширения Channel Bindings.
- При аутентификации реализована возможность учёта хэшей JA3, позволяющих на основе особенностей параметров соединения определить ПО, используемое для установки соединения.
- Добавлен новый плагин полнотекстового поиска fts-flatcurve, использующий движок Xapian.
- В IMAP добавлена поддержка кода возврата INPROGRESS (RFC 9585), через который можно передавать уведомления о ходе выполнения длительных операций.
- В lib-lua реализованы DNS-клиент и HTTP-клиент.
- В lib-sasl добавлена поддержка механизмов SCRAM-SHA.
- В lmtp добавлена поддержка SNI (Server Name Indication), позволяющего привязывать настройки к имени сервера, информация о котором передаётся в открытом виде в сеансе TLS.
- В драйвере sqlite добавлена поддержка режима ведения журнала транзакций (WAL – Write-Ahead Logging).
- Добавлена настройка auth_internal_failure_delay, определяющая задержку перед отправки клиент ответа в случае ошибки аутентификации из-за внутреннего сбоя.
- Добавлена настройка fts_message_max_size, задающая максимальный размер тела письма, индексируемый движком полнотекстового поиска.
- Добавлена настройка login_socket_path, указывающая путь к сокету, используемому login-процессами.
- Добавлена настройка quota_mailbox_count, задающая максимально допустимое число создаваемых mailbox-ов.
- Добавлена настройка quota_mailbox_message_count, задающая максимально допустимое число сообщений в одном mailbox-е.
- Добавлена настройка submission_add_received_header, управляющая добавлением заголовка “Received:” к письмам.
- Добавлена настройка cassandra_log_retries для управления отражением в логе повторных сбоев при обращении к Apache Cassandra.
- Обеспечено автоматическое включение IMAP-расширения COMPRESS для сжатия данных, передаваемых чрез соединение с IMAP-сервером.
- Объявлена устаревшей настройка acl_global_path (поддержка глобальных файлов с ACL).
- Удалена поддержка полнотекстовых индексаторов fts-lucene и fts-squat (вынесены в плагины), утилиты dsync (заменена на doveadm sync),
команды IMAP SETQUOTA и настройки set_quota, архитектуры Dovecot Director, replicator (рекомендовано использовать NFS), Sieve-расширений notify, imapflags и vnd.dovecot.duplicate. - На смену БД checkpassword, passdb и userdb для данных аутентификации пришла Lua authentication database.
- Прекращена поддержка плагинов zlib, listescape, old-stats и mailbox-alias.
- Прекращена поддержка драйвера Memcached, вместо которого рекомендовано использовать драйвер Redis.
- Прекращена поддержка драйвера shadow auth, вместо которого рекомендовано использовать БД аутентификации на основе PAM.
- Прекращена поддержка Berkeley DB в dict_db_config.
- Отключена по умолчанию поддержка ненадёжных схем хэширования паролей (для возвращения следует использовать параметр auth_allow_weak_schemes).
- Прекращена поддержка версий OpenSSL до 1.0.2.