Search K
Appearance
Appearance
WARNING
Dovecot 2.3.x settings will NOT work unless the configuration is changed as described in this section.
The first setting in dovecot.conf MUST now be dovecot_config_version. This helps to avoid unexpected configuration changes in the future.
Another new required setting is dovecot_storage_version. This helps to avoid unexpected storage file format incompatibilities.
Using dovecot_storage_version = 2.3.20 disables the new fts.S file format (the old fts_dovecot_message_count_stats=no).
Unknown/invalid %{variables} cause Dovecot errors. This may cause, e.g., authentication failures if the old (broken) behavior was relied on.
Passdb and userdb sections now require a name, i.e.:
# This gives an error:
passdb {
...
}
# Use this instead:
passdb some_name {
}userdb fields can be set to empty value. Previously they became changed to yes value.
| Parameter | Notes |
|---|---|
%{fail_type} variable to auth_policy_request_attributes | Variable was added. |
| Feature | Notes |
|---|---|
| ARGON2 password scheme | Support for the ARGON2 password scheme was added. |
| SCRAM-SHA-1, SCRAM-SHA-256 | Support SASL mechanisms for outgoing connections. |
| X25519, X448 | mail-crypt plugin and Mail Crypt Plugin: fs-crypt now support these curves. |
See imapc_features.
| Feature | Notes |
|---|---|
no-qresync | Parameter was added. |
See LDAP authentication.
| Feature | Notes |
|---|---|
%{ldap_multi} variable | Variable was added to LDAP configuration file to allow for fetching a multi-valued attribute. |
Added base64url format to hash modifier in variable expansion. Example: %{sha1;format=base64url:username}. See Variable Modifiers.
| Parameter | Notes |
|---|---|
log_retries | Parameter was added. |
metacache_forced_refresh_intervalauth_internal_failure_delayfts_message_max_sizelogin_socket_pathquota_mailbox_countquota_mailbox_message_countsubmission_add_received_headercassandra_log_retries| Feature | Replacement |
|---|---|
| License Plugin | Plugin has been removed and the license_checksum setting is marked obsolete. |
| Dovecot director role | Replaced with the Dovecot Pro Palomar architecture. |
| Global ACL directory | Use acl instead. See below for details on migration. |
| IMAP SETQUOTA command | Quota limits can no longer be modified using the IMAP SETQUOTA command. The set_quota setting has been removed. |
| IPC process | Has been merged to anvil. |
| OpenSSL support for older than 1.0.2 | Older versions are not supported anymore. |
Sieve extensions: notify, imapflags, vnd.dovecot.duplicate | These deprecated Sieve extensions have been removed. |
ssl-parameters.dat | This file is no longer converted automatically by config process, you need to set ssl_server_dh_file setting if you need non-ECC Diffie-Hellman. |
| TCP wrapper support | Use Lua authentication database instead. |
| Weak password schemes | Weak password schemes are disabled by default; you need to use auth_allow_weak_schemes to enable them. |
local_name "multiple names" { ... } | List each name as a separate local_name { ... } |
| Parameter | Notes |
|---|---|
Cassandra ssl_verify=cert-dns setting | Removed, as it was deprecated by Cassandra cpp-driver due to it being insecure against MITM attacks. |
| Setting | Notes |
|---|---|
auth_stats | |
dict_db_config | Berkeley DB is not supported anymore. |
imap_id_log | Replaced by the imap_id_received event. |
login_access_sockets | Use Lua authentication database instead. Dovecot will fail to start if this setting is present in configuration. |
quota_set | |
sieve_dir | See Script storage. |
sieve_global_dir | See Script storage. |
sieve_global_path | See Script storage. |
sieve_editheader_protected | Replaced by sieve_editheader_header_forbid_add and sieve_editheader_header_forbid_delete. |
sieve_vacation_max_subject_codepoints |
| Backend | Notes |
|---|---|
| checkpassword auth database | Use Lua authentication database instead. |
| Dict passdb & userdb driver | Use Lua authentication database instead. |
| Dict quota; Dirsize quota | These drivers are removed. You should use Quota Driver: Count instead along with quota-clone plugin. Note that switching to quota count can cause all users' indexes to update, so reserve time for this. |
| imap-zlib plugin | The IMAP COMPRESS extension is now automatically enabled. |
| listescape plugin | Use mailbox_list_storage_escape_char instead. |
| mailbox-alias plugin | Depending on the use case, replacement may be the mailbox_special_use mailbox setting and/or Sieve filters. |
| Memcached dict driver | Use Redis instead. |
| old-stats plugin | Use Statistics instead. auth_stats setting has been removed too. |
| shadow auth driver | Use PAM authentication database instead. |
| XZ Compression | You need to perform migration using a different compression format. With Maildir, you can try uncompressing all your mail and compressing them with another algorithm while Dovecot is not running. |
| zlib plugin | Use mail-compress plugin with the mail_compress_write_method setting instead. |
Dictmap configuration has been replaced by Dictmap: Settings.
| Parameter | Description |
|---|---|
cleanup-uncertain | Previously, this parameter needed to be explicitly enabled. It is now called fs_dictmap_cleanup_uncertain, which is enabled by default. |
max-parallel-iter | Previously the default was 1. This parameter has been replaced by the fs_dictmap_max_parallel_iter, which defaults to 10. now. |
See obox.
| Parameter | Description |
|---|---|
absolute_timeout_msecs | Use absolute_timeout instead. |
connect_timeout_msecs | Use connect_timeout instead. |
delete_timeout_msecs | Use delete_timeout instead. |
read_timeout_msecs | Use read_timeout instead. |
slow_warn_msecs | Use slow_warn instead. |
timeout_msecs | Use timeout setting instead. |
write_timeout_msecs | Use write_timeout setting instead. |
| Setting | Notes |
|---|---|
ssl | Connections from login_trusted_networks are now also required to be SSL/TLS encrypted with the setting ssl=required. |
ssl_min_protocol | The SSLv3 option was removed, as it is no longer secure. |
Mail Crypt Plugin: fs-crypt now requires encryption keys by default.
| Setting | Old Default | New Default | Notes |
|---|---|---|---|
fts_dovecot_mail_flush_interval | 0 | 10 | |
fts_dovecot_max_triplets | 0 | 200 | |
imapc_features | Features "delay-login", "search", "fetch-headers", "fetch-bodystructure", "fetch-size" by default. Enable "acl" and "modseq" by default, if the remote server supports it. | ||
mail_cache_max_headers_count | unlimited | 100 | New feature, explicitly set to 0 for the old behavior. |
mail_cache_max_header_name_length | unlimited | 100 | New feature, explicitly set to 0 for the old behavior. |
mail_log_prefix | %s(%u)<%{pid}><%{session}>: | %s(%u)<%{process:pid}><%{session}>: | Uses new process key. |
mailbox_list_drop_noselect | no | yes | \NoSelect folders are now dropped by default. |
service/anvil/chroot | empty | <no value> | Anvil is no longer chrooted. |
service/anvil/user | $default_internal_user | <no value> | Anvil runs as root. |
service/auth-worker/process_limit | 1 | 30 |
| Old Setting | New Setting |
|---|---|
metacache_disable_bundle_list_cache | metacache_bundle_list_cache |
metacache_disable_secondary_indexes | metacache_secondary_indexes |
obox_refresh_index_once_after | metacache_refresh_index_once_after |
obox_rescan_mails_once_after | metacache_rescan_mails_once_after |
obox_no_pop3_backend_uidls | obox_pop3_backend_uidls |
obox_dont_use_object_ids | obox_use_object_ids |
IMAP Hibernation is now enabled by default.
New default:
service metacache {
unix_listener metacache {
mode = 0660
group = $default_internal_group
}
}Default LMTP proxy destination port is now 24.
| Event | Change |
|---|---|
fs_object_write_uncertain | Event was added. |
auth_client_cache_flush_started | Event was removed. |
auth_client_cache_flush_finished | Event was removed. |
imap_id_received | Event was added. |
login_aborted | Event was added. |
mail_metadata_accessed | Event was added. |
pop3_command_finished | Event was added. |
| Event | Field | Change |
|---|---|---|
dns_worker_request_finished | cached | Field was added. |
| Mail user events | service | Field was added. |
proxy_session_finished | error_code | Field was added. |
proxy_session_finished | idle_usecs | Field was changed from idle_secs. |
smtp_server_transaction_rcpt_finished | dest_host | Field was added. |
smtp_server_transaction_rcpt_finished | dest_ip | Field was added. |
sql_query_finished | consistency | Field was added. |
sql_query_finished | error_consistency | Field was added. |
| Various | net_bytes_in | Field was changed from bytes_in. |
| Various | net_bytes_out | Field was changed from bytes_out. |
| Various | transport | transport=trusted was changed to transport=secured. See also secured connections. |
Events can now be exported to a local file or a unix socket. See Event Export: Drivers.
To migrate the ACL directories into their respective files you have to do the following:
vfile parameter to the new ACL file.The doveadm batch command was removed.
doveadm fs put can now put metadata also.
Added doveadm indexer command.
Added -r received-date parameter. See doveadm save.
The dsync command symlink was removed. Use doveadm sync or doveadm backup commands directly instead.
USER environment variable can be used only with --no-userdb-lookup parameter.
All mail commands require providing -u, -F, -A parameter or --no-userdb-lookup parameter. This will always be subject to user database lookup and requires access to auth userdb socket, unless --no-userdb-lookup was used.
Added doveadm metacache pull command.
The doveadm HTTP API now requires valid boolean values. Providing invalid boolean values will result in a 400 response.