dovecot.conf 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. # --------------------------------------------------------------------------
  2. # Please create a file "extra.conf" for persistent overrides to dovecot.conf
  3. # --------------------------------------------------------------------------
  4. # LDAP example:
  5. #passdb {
  6. # args = /etc/dovecot/ldap/passdb.conf
  7. # driver = ldap
  8. #}
  9. auth_mechanisms = plain login
  10. #mail_debug = yes
  11. #auth_debug = yes
  12. log_path = syslog
  13. disable_plaintext_auth = yes
  14. # Uncomment on NFS share
  15. #mmap_disable = yes
  16. #mail_fsync = always
  17. #mail_nfs_index = yes
  18. #mail_nfs_storage = yes
  19. login_log_format_elements = "user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k"
  20. mail_home = /var/vmail/%d/%n
  21. mail_location = maildir:~/
  22. mail_plugins = </etc/dovecot/mail_plugins
  23. mail_attachment_fs = crypt:set_prefix=mail_crypt_global:posix:
  24. mail_attachment_dir = /var/attachments
  25. mail_attachment_min_size = 128k
  26. # Dovecot 2.2
  27. #ssl_protocols = !SSLv3
  28. # Dovecot 2.3
  29. ssl_min_protocol = TLSv1.2
  30. ssl_prefer_server_ciphers = yes
  31. ssl_cipher_list = ALL:!ADH:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL:!eNULL:!3DES:!MD5:!PSK:!DSS:!RC4:!SEED:!IDEA:+HIGH:+MEDIUM
  32. # Default in Dovecot 2.3
  33. ssl_options = no_compression no_ticket
  34. # New in Dovecot 2.3
  35. ssl_dh = </etc/ssl/mail/dhparams.pem
  36. # Dovecot 2.2
  37. #ssl_dh_parameters_length = 2048
  38. log_timestamp = "%Y-%m-%d %H:%M:%S "
  39. recipient_delimiter = +
  40. auth_master_user_separator = *
  41. mail_shared_explicit_inbox = yes
  42. mail_prefetch_count = 30
  43. passdb {
  44. driver = lua
  45. args = file=/etc/dovecot/lua/passwd-verify.lua blocking=yes
  46. result_success = return-ok
  47. result_failure = continue
  48. result_internalfail = continue
  49. }
  50. # try a master passwd
  51. passdb {
  52. driver = passwd-file
  53. args = /etc/dovecot/dovecot-master.passwd
  54. master = yes
  55. skip = authenticated
  56. }
  57. # check for regular password - if empty (e.g. force-passwd-reset), previous pass=yes passdbs also fail
  58. # a return of the following passdb is mandatory
  59. passdb {
  60. driver = lua
  61. args = file=/etc/dovecot/lua/passwd-verify.lua blocking=yes
  62. }
  63. # Set doveadm_password=your-secret-password in data/conf/dovecot/extra.conf (create if missing)
  64. service doveadm {
  65. inet_listener {
  66. port = 12345
  67. }
  68. vsz_limit=2048 MB
  69. }
  70. !include /etc/dovecot/dovecot.folders.conf
  71. protocols = imap sieve lmtp pop3
  72. service dict {
  73. unix_listener dict {
  74. mode = 0660
  75. user = vmail
  76. group = vmail
  77. }
  78. }
  79. service log {
  80. user = dovenull
  81. }
  82. service config {
  83. unix_listener config {
  84. user = root
  85. group = vmail
  86. mode = 0660
  87. }
  88. }
  89. service auth {
  90. inet_listener auth-inet {
  91. port = 10001
  92. }
  93. unix_listener auth-master {
  94. mode = 0600
  95. user = vmail
  96. }
  97. unix_listener auth-userdb {
  98. mode = 0600
  99. user = vmail
  100. }
  101. vsz_limit = 2G
  102. }
  103. service managesieve-login {
  104. inet_listener sieve {
  105. port = 4190
  106. }
  107. inet_listener sieve_haproxy {
  108. port = 14190
  109. haproxy = yes
  110. }
  111. service_count = 1
  112. process_min_avail = 2
  113. vsz_limit = 1G
  114. }
  115. service imap-login {
  116. service_count = 1
  117. process_limit = 10000
  118. vsz_limit = 1G
  119. user = dovenull
  120. inet_listener imap_haproxy {
  121. port = 10143
  122. haproxy = yes
  123. }
  124. inet_listener imaps_haproxy {
  125. port = 10993
  126. ssl = yes
  127. haproxy = yes
  128. }
  129. }
  130. service pop3-login {
  131. service_count = 1
  132. vsz_limit = 1G
  133. inet_listener pop3_haproxy {
  134. port = 10110
  135. haproxy = yes
  136. }
  137. inet_listener pop3s_haproxy {
  138. port = 10995
  139. ssl = yes
  140. haproxy = yes
  141. }
  142. }
  143. service imap {
  144. executable = imap
  145. user = vmail
  146. vsz_limit = 1G
  147. }
  148. service managesieve {
  149. process_limit = 256
  150. }
  151. service lmtp {
  152. inet_listener lmtp-inet {
  153. port = 24
  154. }
  155. user = vmail
  156. }
  157. listen = *,[::]
  158. ssl_cert = </etc/ssl/mail/cert.pem
  159. ssl_key = </etc/ssl/mail/key.pem
  160. userdb {
  161. driver = passwd-file
  162. args = /etc/dovecot/dovecot-master.userdb
  163. }
  164. userdb {
  165. args = /etc/dovecot/sql/dovecot-dict-sql-userdb.conf
  166. driver = sql
  167. skip = found
  168. }
  169. protocol imap {
  170. mail_plugins = </etc/dovecot/mail_plugins_imap
  171. imap_metadata = yes
  172. }
  173. mail_attribute_dict = file:%h/dovecot-attributes
  174. protocol lmtp {
  175. mail_plugins = </etc/dovecot/mail_plugins_lmtp
  176. auth_socket_path = /var/run/dovecot/auth-master
  177. }
  178. protocol sieve {
  179. managesieve_logout_format = bytes=%i/%o
  180. }
  181. plugin {
  182. # Allow "any" or "authenticated" to be used in ACLs
  183. acl_anyone = </etc/dovecot/acl_anyone
  184. acl_shared_dict = file:/var/vmail/shared-mailboxes.db
  185. acl = vfile
  186. acl_user = %u
  187. fts = solr
  188. fts_autoindex = yes
  189. fts_solr = url=http://solr:8983/solr/dovecot-fts/
  190. quota = dict:Userquota::proxy::sqlquota
  191. quota_rule2 = Trash:storage=+100%%
  192. sieve = /var/vmail/sieve/%u.sieve
  193. sieve_plugins = sieve_imapsieve sieve_extprograms
  194. sieve_vacation_send_from_recipient = yes
  195. sieve_redirect_envelope_from = recipient
  196. # From elsewhere to Spam folder
  197. imapsieve_mailbox1_name = Junk
  198. imapsieve_mailbox1_causes = COPY
  199. imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve
  200. # END
  201. # From Spam folder to elsewhere
  202. imapsieve_mailbox2_name = *
  203. imapsieve_mailbox2_from = Junk
  204. imapsieve_mailbox2_causes = COPY
  205. imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
  206. # END
  207. master_user = %u
  208. quota_warning = storage=95%% quota-warning 95 %u
  209. quota_warning2 = storage=80%% quota-warning 80 %u
  210. sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
  211. sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute
  212. sieve_extensions = +notify +imapflags +vacation-seconds +editheader
  213. sieve_max_script_size = 1M
  214. sieve_max_redirects = 100
  215. sieve_max_actions = 101
  216. sieve_quota_max_scripts = 0
  217. sieve_quota_max_storage = 0
  218. listescape_char = "\\"
  219. sieve_vacation_min_period = 5s
  220. sieve_vacation_max_period = 0
  221. sieve_vacation_default_period = 60s
  222. sieve_before = /var/vmail/sieve/global_sieve_before.sieve
  223. sieve_before2 = dict:proxy::sieve_before;name=active;bindir=/var/vmail/sieve_before_bindir
  224. sieve_after = dict:proxy::sieve_after;name=active;bindir=/var/vmail/sieve_after_bindir
  225. sieve_after2 = /var/vmail/sieve/global_sieve_after.sieve
  226. sieve_duplicate_default_period = 1m
  227. sieve_duplicate_max_period = 7d
  228. # -- Global keys
  229. mail_crypt_global_private_key = </mail_crypt/ecprivkey.pem
  230. mail_crypt_global_public_key = </mail_crypt/ecpubkey.pem
  231. mail_crypt_save_version = 2
  232. # Enable compression while saving, lz4 Dovecot v2.2.11+
  233. zlib_save = lz4
  234. mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
  235. mail_log_fields = uid box msgid size
  236. mail_log_cached_only = yes
  237. }
  238. service quota-warning {
  239. executable = script /usr/local/bin/quota_notify.py
  240. # use some unprivileged user for executing the quota warnings
  241. user = vmail
  242. unix_listener quota-warning {
  243. user = vmail
  244. }
  245. }
  246. dict {
  247. sqlquota = mysql:/etc/dovecot/sql/dovecot-dict-sql-quota.conf
  248. sieve_after = mysql:/etc/dovecot/sql/dovecot-dict-sql-sieve_after.conf
  249. sieve_before = mysql:/etc/dovecot/sql/dovecot-dict-sql-sieve_before.conf
  250. }
  251. remote 127.0.0.1 {
  252. disable_plaintext_auth = no
  253. }
  254. submission_host = postfix:588
  255. mail_max_userip_connections = 500
  256. service stats {
  257. unix_listener stats-writer {
  258. mode = 0660
  259. user = vmail
  260. }
  261. }
  262. imap_max_line_length = 2 M
  263. #auth_cache_verify_password_with_worker = yes
  264. #auth_cache_negative_ttl = 0
  265. #auth_cache_ttl = 30 s
  266. #auth_cache_size = 2 M
  267. service replicator {
  268. process_min_avail = 1
  269. }
  270. service aggregator {
  271. fifo_listener replication-notify-fifo {
  272. user = vmail
  273. }
  274. unix_listener replication-notify {
  275. user = vmail
  276. }
  277. }
  278. service replicator {
  279. unix_listener replicator-doveadm {
  280. mode = 0666
  281. }
  282. }
  283. replication_max_conns = 10
  284. doveadm_port = 12345
  285. replication_dsync_parameters = -d -l 30 -U -n INBOX
  286. # <Includes>
  287. !include_try /etc/dovecot/sni.conf
  288. !include_try /etc/dovecot/sogo_trusted_ip.conf
  289. !include_try /etc/dovecot/extra.conf
  290. !include_try /etc/dovecot/sogo-sso.conf
  291. !include_try /etc/dovecot/shared_namespace.conf
  292. # </Includes>
  293. default_client_limit = 10400
  294. default_vsz_limit = 1024 M