Files
a13labs.infra/terraform/k8sapps/resources/mail/dovecot.conf
T

233 lines
3.7 KiB
Plaintext
Raw Normal View History

2025-03-15 23:01:46 +01:00
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 Spam {
special_use = \Spam
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
}
}
service auth {
inet_listener auth {
port = 31000
}
}
# LMTP service to store sent emails
service lmtp {
inet_listener auth {
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
}