dovecot_config_version = "2.4.0" dovecot_storage_version = "2.4.0" base_dir = /run/dovecot state_dir = /run/dovecot protocols = imap lmtp listen = * mail_driver=maildir mailbox_list_layout=index mailbox_list_utf8=yes mail_path=~/mail mail_home=/var/mail/%{user|lower} mail_utf8_extensions = yes default_internal_user = vmail default_login_user = vmail default_internal_group = vmail mail_uid = vmail mail_gid = vmail namespace inbox { inbox = yes mailbox Drafts { special_use = \Drafts auto = create auto = subscribe } mailbox Junk { special_use = \Junk auto = create auto = subscribe } mailbox Trash { special_use = \Trash auto = create auto = subscribe } mailbox Sent { special_use = \Sent auto = create auto = subscribe } mailbox Archive { special_use = \Archive auto = create auto = subscribe } } passdb passwd-file { driver = passwd-file passwd_file_path = /etc/dovecot/users } ssl_server { cert_file = /etc/letsencrypt/tls.crt key_file = /etc/letsencrypt/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 } protocol imap { mail_plugins { imap_sieve = yes imap_filter_sieve = yes } } lmtp_save_to_detail_mailbox = yes recipient_delimiter = + protocol lmtp { mail_plugins { sieve = yes } } service imap-login { process_min_avail = 1 client_limit = 100 inet_listener imap { port = 31143 } inet_listener imaps { port = 31993 ssl = yes } } service stats { process_min_avail = 1 inet_listener http { port = 9090 } } auth_mechanisms = plain login service auth { inet_listener auth { port = 33100 } } # LMTP service to store sent emails service lmtp { inet_listener lmtp { port = 31024 } mail_plugins { sieve = yes } } event_exporter log { format = json time_format = rfc3339 } metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric auth_failure { 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 } } } metric mail_delivery { filter = event=mail_delivery_finished group_by duration { method exponential { base = 10 min_magnitude = 1 max_magnitude = 5 } } } sieve_script default { path = /etc/dovecot/sieve/default.sieve } mail_plugins { mail_crypt = yes } crypt_global_private_key main { crypt_private_key_file = /etc/mail-crypt/ecprivkey.pem } crypt_global_public_key_file = /etc/mail-crypt/ecpubkey.pem log_path = /dev/stdout info_log_path = /dev/stdout debug_log_path = /dev/stdout # Enable verbose logging # auth_verbose = yes # auth_debug = yes # auth_debug_passwords = yes # mail_debug = yes