# -------------------------------------------------------------------------- # Please create a file "extra.conf" for persistent overrides to dovecot.conf # -------------------------------------------------------------------------- # LDAP example: #passdb { # args = /etc/dovecot/ldap/passdb.conf # driver = ldap #} auth_mechanisms = plain login #mail_debug = yes #auth_debug = yes log_path = syslog disable_plaintext_auth = yes # Uncomment on NFS share #mmap_disable = yes #mail_fsync = always #mail_nfs_index = yes #mail_nfs_storage = yes login_log_format_elements = "user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k" mail_home = /var/vmail/%d/%n mail_location = maildir:~/ mail_plugins = </etc/dovecot/mail_plugins mail_attachment_fs = crypt:set_prefix=mail_crypt_global:posix: mail_attachment_dir = /var/attachments mail_attachment_min_size = 128k # Dovecot 2.2 #ssl_protocols = !SSLv3 # Dovecot 2.3 ssl_min_protocol = TLSv1.2 ssl_prefer_server_ciphers = yes ssl_cipher_list = ALL:!ADH:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL:!eNULL:!3DES:!MD5:!PSK:!DSS:!RC4:!SEED:!IDEA:+HIGH:+MEDIUM # Default in Dovecot 2.3 ssl_options = no_compression no_ticket # New in Dovecot 2.3 ssl_dh = </etc/ssl/mail/dhparams.pem # Dovecot 2.2 #ssl_dh_parameters_length = 2048 log_timestamp = "%Y-%m-%d %H:%M:%S " recipient_delimiter = + auth_master_user_separator = * mail_shared_explicit_inbox = yes mail_prefetch_count = 30 # try a master passwd passdb { driver = passwd-file args = /etc/dovecot/dovecot-master.passwd master = yes pass = yes result_failure = continue result_internalfail = continue } # try an app passwd passdb { driver = lua args = file=/etc/dovecot/lua/app-passdb.lua blocking=yes pass = yes result_failure = continue result_internalfail = continue } # check for regular password - if empty (e.g. force-passwd-reset), previous pass=yes passdbs also fail # a return of the following passdb is mandatory passdb { args = /etc/dovecot/sql/dovecot-dict-sql-passdb.conf driver = sql result_success = return-ok result_failure = continue result_internalfail = continue } passdb { driver = passwd-file args = /etc/dovecot/dovecot-master.passwd skip = authenticated } # Set doveadm_password=your-secret-password in data/conf/dovecot/extra.conf (create if missing) service doveadm { inet_listener { port = 12345 } vsz_limit=2048 MB } namespace inbox { inbox = yes location = separator = / mailbox "Trash" { auto = subscribe special_use = \Trash } mailbox "Deleted Messages" { special_use = \Trash } mailbox "Deleted Items" { special_use = \Trash } mailbox "Rubbish" { special_use = \Trash } mailbox "Gelöschte Objekte" { special_use = \Trash } mailbox "Gelöschte Elemente" { special_use = \Trash } mailbox "Papierkorb" { special_use = \Trash } mailbox "Itens Excluidos" { special_use = \Trash } mailbox "Itens Excluídos" { special_use = \Trash } mailbox "Lixeira" { special_use = \Trash } mailbox "Prullenbak" { special_use = \Trash } mailbox "Odstránené položky" { special_use = \Trash } mailbox "Koš" { special_use = \Trash } mailbox "Verwijderde items" { special_use = \Trash } mailbox "废件箱" { special_use = \Trash } mailbox "已删除消息" { special_use = \Trash } mailbox "已删除邮件" { special_use = \Trash } mailbox "Archive" { auto = subscribe special_use = \Archive } mailbox "Archiv" { special_use = \Archive } mailbox "Archives" { special_use = \Archive } mailbox "Arquivo" { special_use = \Archive } mailbox "Arquivos" { special_use = \Archive } mailbox "Archief" { special_use = \Archive } mailbox "Archív" { special_use = \Archive } mailbox "Archivovať" { special_use = \Archive } mailbox "归档" { special_use = \Archive } mailbox "Sent" { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox "Sent Items" { special_use = \Sent } mailbox "已发送" { special_use = \Sent } mailbox "已发送消息" { special_use = \Sent } mailbox "已发送邮件" { special_use = \Sent } mailbox "Gesendet" { special_use = \Sent } mailbox "Gesendete Objekte" { special_use = \Sent } mailbox "Gesendete Elemente" { special_use = \Sent } mailbox "Itens Enviados" { special_use = \Sent } mailbox "Enviados" { special_use = \Sent } mailbox "Verzonden items" { special_use = \Sent } mailbox "Verzonden" { special_use = \Sent } mailbox "Odoslaná pošta" { special_use = \Sent } mailbox "Odoslané" { special_use = \Sent } mailbox "Drafts" { auto = subscribe special_use = \Drafts } mailbox "Entwürfe" { special_use = \Drafts } mailbox "Rascunhos" { special_use = \Drafts } mailbox "Concepten" { special_use = \Drafts } mailbox "Koncepty" { special_use = \Drafts } mailbox "草稿" { special_use = \Drafts } mailbox "草稿箱" { special_use = \Drafts } mailbox "Junk" { auto = subscribe special_use = \Junk } mailbox "Junk-E-Mail" { special_use = \Junk } mailbox "Junk E-Mail" { special_use = \Junk } mailbox "Spam" { special_use = \Junk } mailbox "Lixo Eletrônico" { special_use = \Junk } mailbox "Nevyžiadaná pošta" { special_use = \Junk } mailbox "Infikované položky" { special_use = \Junk } mailbox "Ongewenste e-mail" { special_use = \Junk } mailbox "垃圾" { special_use = \Junk } mailbox "垃圾箱" { special_use = \Junk } mailbox "Koncepty" { special_use = \Drafts } mailbox "Nevyžádaná pošta" { special_use = \Junk } mailbox "Odstraněná pošta" { special_use = \Trash } mailbox "Odeslaná pošta" { special_use = \Sent } mailbox "Skräp" { special_use = \Trash } mailbox "Borttagna Meddelanden" { special_use = \Trash } mailbox "Arkiv" { special_use = \Archive } mailbox "Arkeverat" { special_use = \Archive } mailbox "Skickat" { special_use = \Sent } mailbox "Skickade Meddelanden" { special_use = \Sent } mailbox "Utkast" { special_use = \Drafts } prefix = } protocols = imap sieve lmtp pop3 service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } } service log { user = dovenull } service config { unix_listener config { user = root group = vmail mode = 0660 } } service auth { inet_listener auth-inet { port = 10001 } unix_listener auth-master { mode = 0600 user = vmail } unix_listener auth-userdb { mode = 0600 user = vmail } } service managesieve-login { inet_listener sieve { port = 4190 } service_count = 1 process_min_avail = 2 vsz_limit = 1G } service imap-login { service_count = 1 process_limit = 10000 vsz_limit = 1G user = dovenull inet_listener imap_haproxy { port = 10143 haproxy = yes } inet_listener imaps_haproxy { port = 10993 ssl = yes haproxy = yes } } service pop3-login { service_count = 1 vsz_limit = 1G inet_listener pop3_haproxy { port = 10110 haproxy = yes } inet_listener pop3s_haproxy { port = 10995 ssl = yes haproxy = yes } } service imap { executable = imap imap-postlogin user = vmail vsz_limit = 1G } service managesieve { process_limit = 256 } service lmtp { inet_listener lmtp-inet { port = 24 } user = vmail } listen = *,[::] ssl_cert = </etc/ssl/mail/cert.pem ssl_key = </etc/ssl/mail/key.pem !include_try /etc/dovecot/sni.conf !include_try /etc/dovecot/sogo_trusted_ip.conf userdb { driver = passwd-file args = /etc/dovecot/dovecot-master.userdb } userdb { args = /etc/dovecot/sql/dovecot-dict-sql-userdb.conf driver = sql skip = found } protocol imap { mail_plugins = </etc/dovecot/mail_plugins_imap imap_metadata = yes } mail_attribute_dict = file:%h/dovecot-attributes protocol lmtp { mail_plugins = </etc/dovecot/mail_plugins_lmtp auth_socket_path = /var/run/dovecot/auth-master } protocol sieve { managesieve_logout_format = bytes=%i/%o } plugin { # Allow "any" or "authenticated" to be used in ACLs acl_anyone = </etc/dovecot/acl_anyone acl_shared_dict = file:/var/vmail/shared-mailboxes.db acl = vfile last_login_dict = </etc/dovecot/last_login last_login_key = last-login/%s/%u fts = solr fts_autoindex = yes fts_solr = url=http://solr:8983/solr/dovecot-fts/ quota = dict:Userquota::proxy::sqlquota quota_rule2 = Trash:storage=+100%% sieve = /var/vmail/sieve/%u.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_vacation_send_from_recipient = yes sieve_redirect_envelope_from = recipient # From elsewhere to Spam folder imapsieve_mailbox1_name = Junk imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve # END # From Spam folder to elsewhere imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Junk imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve # END quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute sieve_extensions = +notify +imapflags +vacation-seconds +editheader sieve_max_script_size = 1M sieve_max_redirects = 100 sieve_max_actions = 101 sieve_quota_max_scripts = 0 sieve_quota_max_storage = 0 listescape_char = "\\" sieve_vacation_min_period = 5s sieve_vacation_max_period = 0 sieve_vacation_default_period = 60s sieve_before = /var/vmail/sieve/global_sieve_before.sieve sieve_before2 = dict:proxy::sieve_before;name=active;bindir=/var/vmail/sieve_before_bindir sieve_after = dict:proxy::sieve_after;name=active;bindir=/var/vmail/sieve_after_bindir sieve_after2 = /var/vmail/sieve/global_sieve_after.sieve sieve_duplicate_default_period = 60m sieve_duplicate_max_period = 7d # -- Global keys mail_crypt_global_private_key = </mail_crypt/ecprivkey.pem mail_crypt_global_public_key = </mail_crypt/ecpubkey.pem mail_crypt_save_version = 2 # Enable compression while saving, lz4 Dovecot v2.2.11+ zlib_save = lz4 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size mail_log_cached_only = yes } service quota-warning { executable = script /usr/local/bin/quota_notify.py # use some unprivileged user for executing the quota warnings user = vmail unix_listener quota-warning { user = vmail } } dict { sqlquota = mysql:/etc/dovecot/sql/dovecot-dict-sql-quota.conf sieve_after = mysql:/etc/dovecot/sql/dovecot-dict-sql-sieve_after.conf sieve_before = mysql:/etc/dovecot/sql/dovecot-dict-sql-sieve_before.conf } remote 127.0.0.1 { disable_plaintext_auth = no } submission_host = postfix:588 mail_max_userip_connections = 500 service imap-postlogin { executable = script-login /usr/local/bin/postlogin.sh unix_listener imap-postlogin { user = vmail mode = 0660 } } service stats { unix_listener stats-writer { mode = 0660 user = vmail } } imap_max_line_length = 2 M #auth_cache_verify_password_with_worker = yes #auth_cache_negative_ttl = 0 #auth_cache_ttl = 30 s #auth_cache_size = 2 M service replicator { process_min_avail = 1 } service aggregator { fifo_listener replication-notify-fifo { user = vmail } unix_listener replication-notify { user = vmail } } service replicator { unix_listener replicator-doveadm { mode = 0666 } } replication_max_conns = 10 doveadm_port = 12345 replication_dsync_parameters = -d -l 30 -U -n INBOX !include_try /etc/dovecot/extra.conf !include_try /etc/dovecot/sogo-sso.conf !include_try /etc/dovecot/shared_namespace.conf default_client_limit = 10400 default_vsz_limit = 1024 M