Dovecot Core Advanced Settings

See Settings for list of all setting groups.

Warning

These settings should not normally be changed.

login_proxy_notify_path
  • Default: proxy-notify

  • Values: String

Path to proxy-notify pipe.

Login variables can be used.

mail_cache_max_header_name_length

New in version 2.4.0 (CE).

New in version 3.0.0 (Pro).

Maximum header name length stored in the cache, where 0 stands for unlimited (which is also the former behavior).

When enabled, the cache truncates the names to this length in memory and on file. While the header name remains unchanged in the storage, all the headers sharing the first mail_cache_max_header_name_length prefix characters are de facto aliased and will be considered as the same header on cache fetch.

Also, attempting to fetch a specific aliased header will succeed even if the header does not actually exist (this does NOT happen when the feature is disable with explicitly with mail_cache_max_header_name_length = 0)

Example: (mail_cache_max_header_name_length = 5)

If the mail contains the header X-name: value, attempting to fetch X-nam or X-names will also produce X-name: value as a result (with the original header name, not the requested one).

Trying to fetch the mail text or the mail headers will properly return only X-name: value

mail_cache_max_headers_count

New in version 2.4.0 (CE).

New in version 3.0.0 (Pro).

Maximum number of headers in yes/temp cache decision before the cache refuses to promote more header decisions from no to temp, where 0 stands for unlimited (which is also the former behavior).

When entries are rejected, the event mail_cache_decision_rejected is emitted.

Also, while the cache’s headers count is saturated, the effective value of mail_cache_unaccessed_field_drop is reduced to 1/4 of of the specified one, in order to aid the cache to return within the limits.

mail_cache_max_size
  • Default: 1G

  • Values: Size

New in version 2.3.11.

If dovecot.index.cache becomes larger than this, it’s truncated to empty size.

Warning

The maximum value is 1 GB because the cache file format can’t currently support large sizes.

mail_cache_min_mail_count

Only update cache file when the mailbox contains at least this many messages.

With a setting other than 0, you can optimize behavior for fewer disk writes at the cost of more disk reads.

mail_cache_purge_continued_percentage

Compress the cache file when n% of rows contain continued rows.

For example 200 means that the record has 2 continued rows, i.e. it exists in 3 separate segments in the cache file.

mail_cache_purge_delete_percentage

Compress the cache file when n% of records are deleted (by count, not by size).

mail_cache_purge_header_continue_count

Compress the cache file when we need to follow more than n next_offsets to find the latest cache header.

mail_cache_purge_min_size
  • Default: 32k

  • Values: Size

Only compress cache file if it is larger than this size.

mail_cache_record_max_size
  • Default: 64k

  • Values: Size

If a cache record becomes larger than this, don’t add it to the cache file.

mail_cache_unaccessed_field_drop
  • Default: 30days

  • Values: Time

Specifies when cache decisions are downgraded.

Changed in version 2.3.11: Change caching decision from YES to TEMP after this much time has passed. Drop the field entirely after twice this much time has passed (i.e. 60 days by default), regardless of whether the cache decision was YES or TEMP previously. Older versions used this setting only for dropping the field after it hadn’t been accessed for this long.

Changed in version 2.4.0 (CE): If the cache header count is capped to mail_cache_max_headers_count then the effective value is reduced to 1/4 of the configured value until enough headers expire for the cache to fall back inside the limits.

Changed in version 3.0.0 (Pro): If the cache header count is capped to mail_cache_max_headers_count then the effective value is reduced to 1/4 of the configured value until enough headers expire for the cache to fall back inside the limits.

mail_index_log_rotate_max_size
  • Default: 1M

  • Values: Size

Always rotate transaction log after it exceeds this size.

mail_index_log_rotate_min_age
  • Default: 5mins

  • Values: Time

Rotate transaction log if it is older than this value and is larger than mail_index_log_rotate_min_size.

mail_index_log_rotate_min_size
  • Default: 32k

  • Values: Size

Rotate transaction log if it is larger than this size and is older than mail_index_log_rotate_min_age.

mail_index_log2_max_age
  • Default: 2days

  • Values: Time

Delete .log.2 index file when older than this value.

Older .log.2 files are useful for QRESYNC and dsync, so this value should not be too low.

mail_index_rewrite_max_log_bytes
  • Default: 128k

  • Values: Size

Rewrite the index when the number of bytes that needs to be read from the .log index file on refresh is between these min/max values.

mail_index_rewrite_min_log_bytes
  • Default: 8k

  • Values: Size

Rewrite the index when the number of bytes that needs to be read from the .log index file on refresh is between these min/max values.