dovecot_config_version = 2.4.1 dovecot_storage_version = 2.4.0 base_dir = /run/dovecot state_dir = /run/dovecot protocols = imap submission lmtp lda sieve mail_driver=maildir mailbox_list_layout=index mailbox_list_utf8=yes mail_path=~/mail mail_home=/data/vmail/%{user | domain}/%{user | username} mail_utf8_extensions = yes mail_uid = vmail mail_gid = vmail # Setup default mailboxes for inbox namespace @mailbox_defaults = english namespace inbox { separator = / mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Trash { auto = subscribe special_use = \Trash } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Archive { auto = subscribe special_use = \Archive } } ssl = yes ssl_server { cert_file = /etc/dovecot/ssl/tls.crt key_file = /etc/dovecot/ssl/tls.key } mail_attribute { dict file { path = %{home}/dovecot-attributes } } log_path = /dev/stdout imap_hibernate_timeout = 5s mail_plugins { fts = yes fts_flatcurve = yes mail_log = yes notify = yes } mail_log_events = delete undelete expunge save copy mailbox_create mailbox_delete mailbox_rename flag_change fts_autoindex = yes fts_autoindex_max_recent_msgs = 999 fts_search_add_missing = yes language_filters = normalizer-icu snowball stopwords language_tokenizers = generic email-address language_tokenizer_generic_algorithm = simple language en { default = yes filters = lowercase snowball english-possessive stopwords } fts flatcurve { substring_search = yes } auth_mechanisms = plain login auth_username_format = %{user | username} passdb passwd-file { passwd_file_path = /data/userdb default_password_scheme = SHA512-CRYPT } userdb passwd-file { passwd_file_path = /data/userdb fields { uid:default = vmail gid:default = vmail home:default = /data/vmail/%{user | domain}/%{user | username} } } protocol imap { mail_plugins { imap_sieve = yes imap_filter_sieve = yes } } protocol lmtp { mail_plugins { sieve = yes } } service imap-login { process_min_avail = 1 client_limit = 100 } service pop3-login { process_min_avail = 1 client_limit = 100 } service submission-login { process_min_avail = 1 client_limit = 100 inet_listener submissions { port = 465 ssl = yes } } protocol lda { mail_plugins { sieve = yes } } service managesieve-login { process_min_avail = 1 client_limit = 100 } plugin { sieve = ~/.dovecot.sieve sieve_dir = ~/sieve # Directory for :global include scripts for the include extension. #sieve_global_dir = sieve_before = /data/sieve/global/before/ sieve_after = /data/sieve/global/after/ sieve_extensions = +notify +imapflags +special-use +vnd.dovecot.pipe +vnd.dovecot.filter sieve_plugins = sieve_imapsieve sieve_extprograms } event_exporter log { format = json time_format = rfc3339 } # Add default backend metrics @metric_defaults = backend # Log auth failures metric auth_failures { filter = event=auth_request_finished AND NOT success=yes exporter = log } metric imap_command { filter = event=imap_command_finished group_by cmd_name { method discrete { } } group_by tagged_reply_state { method discrete { } } } metric smtp_command { filter = event=smtp_server_command_finished and protocol=submission group_by cmd_name { method discrete { } } group_by status_code { method discrete { } } group_by duration { method exponential { base = 10 min_magnitude = 1 max_magnitude = 5 } } } metric lmtp_command { filter = event=smtp_server_command_finished and protocol=lmtp group_by cmd_name { method discrete { } } group_by status_code { method discrete { } } group_by duration { method exponential { base = 10 min_magnitude = 1 max_magnitude = 5 } } } # Add duration metrics for deliveries metric mail_deliveries { filter = event=mail_delivery_finished group_by duration { method exponential { base = 10 min_magnitude = 1 max_magnitude = 5 } } } !include_try vendor.d/*.conf !include_try conf.d/*.conf