diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-04-10 15:12:46 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-04-29 01:38:30 +0800 |
commit | 6aeff979ada4a1775bddb87a0ccad354faaa8093 (patch) | |
tree | f21bf38bea4d48c21df6209f65ef4726d577ece8 /services/docker/mail-server/dovecot.conf | |
parent | 1238ea1cba60316a641b8755b8c6c12e42badfbd (diff) | |
download | crupest-6aeff979ada4a1775bddb87a0ccad354faaa8093.tar.gz crupest-6aeff979ada4a1775bddb87a0ccad354faaa8093.tar.bz2 crupest-6aeff979ada4a1775bddb87a0ccad354faaa8093.zip |
HALF WORK!
Diffstat (limited to 'services/docker/mail-server/dovecot.conf')
-rw-r--r-- | services/docker/mail-server/dovecot.conf | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/services/docker/mail-server/dovecot.conf b/services/docker/mail-server/dovecot.conf new file mode 100644 index 0000000..6cebe9b --- /dev/null +++ b/services/docker/mail-server/dovecot.conf @@ -0,0 +1,243 @@ +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 |