aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md6
-rw-r--r--roles/dovecot/files/conf.d/10-auth.conf11
-rw-r--r--roles/dovecot/files/conf.d/10-mail.conf18
-rw-r--r--roles/dovecot/files/conf.d/10-master.conf2
-rw-r--r--roles/dovecot/files/conf.d/10-tcpwrapper.conf14
-rw-r--r--roles/dovecot/files/conf.d/15-lda.conf4
-rw-r--r--roles/dovecot/files/conf.d/90-acl.conf19
-rw-r--r--roles/dovecot/files/conf.d/90-plugin.conf11
-rw-r--r--roles/dovecot/files/conf.d/90-quota.conf83
-rw-r--r--roles/dovecot/files/conf.d/90-sieve-extprograms.conf44
-rw-r--r--roles/dovecot/files/conf.d/90-sieve.conf10
-rw-r--r--roles/dovecot/files/conf.d/auth-checkpassword.conf.ext21
-rw-r--r--roles/dovecot/files/conf.d/auth-deny.conf.ext15
-rw-r--r--roles/dovecot/files/conf.d/auth-dict.conf.ext16
-rw-r--r--roles/dovecot/files/conf.d/auth-master.conf.ext16
-rw-r--r--roles/dovecot/files/conf.d/auth-passwdfile.conf.ext20
-rw-r--r--roles/dovecot/files/conf.d/auth-sql.conf.ext30
-rw-r--r--roles/dovecot/files/conf.d/auth-static.conf.ext24
-rw-r--r--roles/dovecot/files/conf.d/auth-system.conf.ext74
-rw-r--r--roles/dovecot/files/dovecot.conf81
20 files changed, 101 insertions, 418 deletions
diff --git a/README.md b/README.md
index 0318337..2335ab0 100644
--- a/README.md
+++ b/README.md
@@ -62,9 +62,7 @@ The records are in BIND9 format but the values can be extracted for use on any p
62## FAQ 62## FAQ
63 63
64### Distros 64### Distros
65I have only tested this on Debian 12 and that is currently the only "supported" distro. 65I have only tested this on Debian 12 and 13 and that is currently the only "supported" distro.
66
67This will likely not work on Debian 11 due to some changes with the spamassassin package, but could easily be modified to work.
68 66
69It will likely also work with current versions of Ubuntu but may require some modifications there also. 67It will likely also work with current versions of Ubuntu but may require some modifications there also.
70 68
@@ -98,5 +96,5 @@ As a security precaution, the user's shell is set to /usr/sbin/nologin to preven
98management access to the server. 96management access to the server.
99 97
100### Multiple Domains 98### Multiple Domains
101The playbook will configure the mail server for a single domain. However, there is nothing in the configuration preventing a mult-domain setup. 99The playbook will configure the mail server for a single domain. However, there is nothing in the configuration preventing a multi-domain setup.
102Setting up multiple domains will require some manual configuration of postfix main.cf. 100Setting up multiple domains will require some manual configuration of postfix main.cf.
diff --git a/roles/dovecot/files/conf.d/10-auth.conf b/roles/dovecot/files/conf.d/10-auth.conf
index 7ac1eee..d6a6417 100644
--- a/roles/dovecot/files/conf.d/10-auth.conf
+++ b/roles/dovecot/files/conf.d/10-auth.conf
@@ -1,10 +1,9 @@
1# Authentication 1# Authentication
2disable_plaintext_auth = yes 2auth_allow_cleartext = no
3auth_username_format = %n 3auth_username_format = %{user | username}
4auth_mechanisms = plain 4auth_mechanisms = plain
5userdb { 5userdb passwd {
6 driver = passwd
7} 6}
8passdb { 7passdb pam {
9 driver = pam 8 failure_show_msg = yes
10} 9}
diff --git a/roles/dovecot/files/conf.d/10-mail.conf b/roles/dovecot/files/conf.d/10-mail.conf
index 683c5e9..8a5b61c 100644
--- a/roles/dovecot/files/conf.d/10-mail.conf
+++ b/roles/dovecot/files/conf.d/10-mail.conf
@@ -1,10 +1,14 @@
1# Mail location 1# Mail location
2mail_location = maildir:~/Mail:INBOX=~/Mail/Inbox:LAYOUT=fs 2mail_driver = maildir
3mail_path = ~/Mail
4mail_inbox_path = ~/Mail/Inbox
5mailbox_list_layout = fs
3namespace inbox { 6namespace inbox {
4 type = private 7 type = private
5 prefix = 8 prefix =
6 separator = / 9 separator = /
7 inbox = yes 10 inbox = yes
8 subscriptions = yes 11 subscriptions = yes
9 list = yes 12 list = yes
10} 13}
14
diff --git a/roles/dovecot/files/conf.d/10-master.conf b/roles/dovecot/files/conf.d/10-master.conf
index c2c9493..013ebfd 100644
--- a/roles/dovecot/files/conf.d/10-master.conf
+++ b/roles/dovecot/files/conf.d/10-master.conf
@@ -1,7 +1,7 @@
1# Master Configuration 1# Master Configuration
2service imap-login { 2service imap-login {
3 # Run login processes in high-security mode (see: LoginProcess.txt in dovecot docs) 3 # Run login processes in high-security mode (see: LoginProcess.txt in dovecot docs)
4 service_count = 1 4 service_restart_request_count = 1
5 # Disable unencrypted IMAP by setting port for plain IMAP to 0 5 # Disable unencrypted IMAP by setting port for plain IMAP to 0
6 inet_listener imap { 6 inet_listener imap {
7 port = 0 7 port = 0
diff --git a/roles/dovecot/files/conf.d/10-tcpwrapper.conf b/roles/dovecot/files/conf.d/10-tcpwrapper.conf
deleted file mode 100644
index b237d96..0000000
--- a/roles/dovecot/files/conf.d/10-tcpwrapper.conf
+++ /dev/null
@@ -1,14 +0,0 @@
1# 10-tcpwrapper.conf
2#
3# service name for hosts.{allow|deny} are those defined as
4# inet_listener in master.conf
5#
6#login_access_sockets = tcpwrap
7#
8#service tcpwrap {
9# unix_listener login/tcpwrap {
10# group = $default_login_user
11# mode = 0600
12# user = $default_login_user
13# }
14#}
diff --git a/roles/dovecot/files/conf.d/15-lda.conf b/roles/dovecot/files/conf.d/15-lda.conf
deleted file mode 100644
index 8538f79..0000000
--- a/roles/dovecot/files/conf.d/15-lda.conf
+++ /dev/null
@@ -1,4 +0,0 @@
1# Local Delivery Agent
2protocol lda {
3 mail_plugins = $mail_plugins sieve
4}
diff --git a/roles/dovecot/files/conf.d/90-acl.conf b/roles/dovecot/files/conf.d/90-acl.conf
deleted file mode 100644
index f0c0e7a..0000000
--- a/roles/dovecot/files/conf.d/90-acl.conf
+++ /dev/null
@@ -1,19 +0,0 @@
1##
2## Mailbox access control lists.
3##
4
5# vfile backend reads ACLs from "dovecot-acl" file from mail directory.
6# You can also optionally give a global ACL directory path where ACLs are
7# applied to all users' mailboxes. The global ACL directory contains
8# one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter
9# specifies how many seconds to wait between stat()ing dovecot-acl file
10# to see if it changed.
11plugin {
12 #acl = vfile:/etc/dovecot/global-acls:cache_secs=300
13}
14
15# To let users LIST mailboxes shared by other users, Dovecot needs a
16# shared mailbox dictionary. For example:
17plugin {
18 #acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
19}
diff --git a/roles/dovecot/files/conf.d/90-plugin.conf b/roles/dovecot/files/conf.d/90-plugin.conf
deleted file mode 100644
index 8c8fccf..0000000
--- a/roles/dovecot/files/conf.d/90-plugin.conf
+++ /dev/null
@@ -1,11 +0,0 @@
1##
2## Plugin settings
3##
4
5# All wanted plugins must be listed in mail_plugins setting before any of the
6# settings take effect. See <doc/wiki/Plugins.txt> for list of plugins and
7# their configuration. Note that %variable expansion is done for all values.
8
9plugin {
10 #setting_name = value
11}
diff --git a/roles/dovecot/files/conf.d/90-quota.conf b/roles/dovecot/files/conf.d/90-quota.conf
deleted file mode 100644
index 3308c05..0000000
--- a/roles/dovecot/files/conf.d/90-quota.conf
+++ /dev/null
@@ -1,83 +0,0 @@
1##
2## Quota configuration.
3##
4
5# Note that you also have to enable quota plugin in mail_plugins setting.
6# <doc/wiki/Quota.txt>
7
8##
9## Quota limits
10##
11
12# Quota limits are set using "quota_rule" parameters. To get per-user quota
13# limits, you can set/override them by returning "quota_rule" extra field
14# from userdb. It's also possible to give mailbox-specific limits, for example
15# to give additional 100 MB when saving to Trash:
16
17plugin {
18 #quota_rule = *:storage=1G
19 #quota_rule2 = Trash:storage=+100M
20
21 # LDA/LMTP allows saving the last mail to bring user from under quota to
22 # over quota, if the quota doesn't grow too high. Default is to allow as
23 # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
24 #quota_grace = 10%%
25
26 # Quota plugin can also limit the maximum accepted mail size.
27 #quota_max_mail_size = 100M
28}
29
30##
31## Quota warnings
32##
33
34# You can execute a given command when user exceeds a specified quota limit.
35# Each quota root has separate limits. Only the command for the first
36# exceeded limit is executed, so put the highest limit first.
37# The commands are executed via script service by connecting to the named
38# UNIX socket (quota-warning below).
39# Note that % needs to be escaped as %%, otherwise "% " expands to empty.
40
41plugin {
42 #quota_warning = storage=95%% quota-warning 95 %u
43 #quota_warning2 = storage=80%% quota-warning 80 %u
44}
45
46# Example quota-warning service. The unix listener's permissions should be
47# set in a way that mail processes can connect to it. Below example assumes
48# that mail processes run as vmail user. If you use mode=0666, all system users
49# can generate quota warnings to anyone.
50#service quota-warning {
51# executable = script /usr/local/bin/quota-warning.sh
52# user = dovecot
53# unix_listener quota-warning {
54# user = vmail
55# }
56#}
57
58##
59## Quota backends
60##
61
62# Multiple backends are supported:
63# dirsize: Find and sum all the files found from mail directory.
64# Extremely SLOW with Maildir. It'll eat your CPU and disk I/O.
65# dict: Keep quota stored in dictionary (eg. SQL)
66# maildir: Maildir++ quota
67# fs: Read-only support for filesystem quota
68
69plugin {
70 #quota = dirsize:User quota
71 #quota = maildir:User quota
72 #quota = dict:User quota::proxy::quota
73 #quota = fs:User quota
74}
75
76# Multiple quota roots are also possible, for example this gives each user
77# their own 100MB quota and one shared 1GB quota within the domain:
78plugin {
79 #quota = dict:user::proxy::quota
80 #quota2 = dict:domain:%d:proxy::quota_domain
81 #quota_rule = *:storage=102400
82 #quota2_rule = *:storage=1048576
83}
diff --git a/roles/dovecot/files/conf.d/90-sieve-extprograms.conf b/roles/dovecot/files/conf.d/90-sieve-extprograms.conf
deleted file mode 100644
index 17dcb77..0000000
--- a/roles/dovecot/files/conf.d/90-sieve-extprograms.conf
+++ /dev/null
@@ -1,44 +0,0 @@
1# Sieve Extprograms plugin configuration
2
3# Don't forget to add the sieve_extprograms plugin to the sieve_plugins setting.
4# Also enable the extensions you need (one or more of vnd.dovecot.pipe,
5# vnd.dovecot.filter and vnd.dovecot.execute) by adding these to the
6# sieve_extensions or sieve_global_extensions settings. Restricting these
7# extensions to a global context using sieve_global_extensions is recommended.
8
9plugin {
10
11 # The directory where the program sockets are located for the
12 # vnd.dovecot.pipe, vnd.dovecot.filter and vnd.dovecot.execute extension
13 # respectively. The name of each unix socket contained in that directory
14 # directly maps to a program-name referenced from the Sieve script.
15 #sieve_pipe_socket_dir = sieve-pipe
16 #sieve_filter_socket_dir = sieve-filter
17 #sieve_execute_socket_dir = sieve-execute
18
19 # The directory where the scripts are located for direct execution by the
20 # vnd.dovecot.pipe, vnd.dovecot.filter and vnd.dovecot.execute extension
21 # respectively. The name of each script contained in that directory
22 # directly maps to a program-name referenced from the Sieve script.
23 #sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
24 #sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter
25 #sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute
26}
27
28# An example program service called 'do-something' to pipe messages to
29#service do-something {
30 # Define the executed script as parameter to the sieve service
31 #executable = script /usr/lib/dovecot/sieve-pipe/do-something.sh
32
33 # Use some unprivileged user for executing the program
34 #user = dovenull
35
36 # The unix socket located in the sieve_pipe_socket_dir (as defined in the
37 # plugin {} section above)
38 #unix_listener sieve-pipe/do-something {
39 # LDA/LMTP must have access
40 # user = vmail
41 # mode = 0600
42 #}
43#}
44
diff --git a/roles/dovecot/files/conf.d/90-sieve.conf b/roles/dovecot/files/conf.d/90-sieve.conf
index c7ef6c4..a4f70d3 100644
--- a/roles/dovecot/files/conf.d/90-sieve.conf
+++ b/roles/dovecot/files/conf.d/90-sieve.conf
@@ -1,6 +1,8 @@
1# Sieve Configuration 1# Sieve Configuration
2plugin { 2sieve_script default {
3 sieve = ~/.dovecot.sieve 3 type = default
4 sieve_default = /var/lib/dovecot/sieve/default.sieve 4 name = default
5 sieve_global = /var/lib/dovecot/sieve/ 5 driver = file
6 path = /var/lib/dovecot/sieve/default.sieve
7 active_path = ~/.dovecot.sieve
6} 8}
diff --git a/roles/dovecot/files/conf.d/auth-checkpassword.conf.ext b/roles/dovecot/files/conf.d/auth-checkpassword.conf.ext
deleted file mode 100644
index b2fb13a..0000000
--- a/roles/dovecot/files/conf.d/auth-checkpassword.conf.ext
+++ /dev/null
@@ -1,21 +0,0 @@
1# Authentication for checkpassword users. Included from 10-auth.conf.
2#
3# <doc/wiki/AuthDatabase.CheckPassword.txt>
4
5passdb {
6 driver = checkpassword
7 args = /usr/bin/checkpassword
8}
9
10# passdb lookup should return also userdb info
11userdb {
12 driver = prefetch
13}
14
15# Standard checkpassword doesn't support direct userdb lookups.
16# If you need checkpassword userdb, the checkpassword must support
17# Dovecot-specific extensions.
18#userdb {
19# driver = checkpassword
20# args = /usr/bin/checkpassword
21#}
diff --git a/roles/dovecot/files/conf.d/auth-deny.conf.ext b/roles/dovecot/files/conf.d/auth-deny.conf.ext
deleted file mode 100644
index ce3f1cf..0000000
--- a/roles/dovecot/files/conf.d/auth-deny.conf.ext
+++ /dev/null
@@ -1,15 +0,0 @@
1# Deny access for users. Included from 10-auth.conf.
2
3# Users can be (temporarily) disabled by adding a passdb with deny=yes.
4# If the user is found from that database, authentication will fail.
5# The deny passdb should always be specified before others, so it gets
6# checked first.
7
8# Example deny passdb using passwd-file. You can use any passdb though.
9passdb {
10 driver = passwd-file
11 deny = yes
12
13 # File contains a list of usernames, one per line
14 args = /etc/dovecot/deny-users
15}
diff --git a/roles/dovecot/files/conf.d/auth-dict.conf.ext b/roles/dovecot/files/conf.d/auth-dict.conf.ext
deleted file mode 100644
index 0be4847..0000000
--- a/roles/dovecot/files/conf.d/auth-dict.conf.ext
+++ /dev/null
@@ -1,16 +0,0 @@
1# Authentication via dict backend. Included from 10-auth.conf.
2#
3# <doc/wiki/AuthDatabase.Dict.txt>
4
5passdb {
6 driver = dict
7
8 # Path for dict configuration file, see
9 # example-config/dovecot-dict-auth.conf.ext
10 args = /etc/dovecot/dovecot-dict-auth.conf.ext
11}
12
13userdb {
14 driver = dict
15 args = /etc/dovecot/dovecot-dict-auth.conf.ext
16}
diff --git a/roles/dovecot/files/conf.d/auth-master.conf.ext b/roles/dovecot/files/conf.d/auth-master.conf.ext
deleted file mode 100644
index 2cf128f..0000000
--- a/roles/dovecot/files/conf.d/auth-master.conf.ext
+++ /dev/null
@@ -1,16 +0,0 @@
1# Authentication for master users. Included from 10-auth.conf.
2
3# By adding master=yes setting inside a passdb you make the passdb a list
4# of "master users", who can log in as anyone else.
5# <doc/wiki/Authentication.MasterUsers.txt>
6
7# Example master user passdb using passwd-file. You can use any passdb though.
8passdb {
9 driver = passwd-file
10 master = yes
11 args = /etc/dovecot/master-users
12
13 # Unless you're using PAM, you probably still want the destination user to
14 # be looked up from passdb that it really exists. pass=yes does that.
15 pass = yes
16}
diff --git a/roles/dovecot/files/conf.d/auth-passwdfile.conf.ext b/roles/dovecot/files/conf.d/auth-passwdfile.conf.ext
deleted file mode 100644
index c89d28c..0000000
--- a/roles/dovecot/files/conf.d/auth-passwdfile.conf.ext
+++ /dev/null
@@ -1,20 +0,0 @@
1# Authentication for passwd-file users. Included from 10-auth.conf.
2#
3# passwd-like file with specified location.
4# <doc/wiki/AuthDatabase.PasswdFile.txt>
5
6passdb {
7 driver = passwd-file
8 args = scheme=CRYPT username_format=%u /etc/dovecot/users
9}
10
11userdb {
12 driver = passwd-file
13 args = username_format=%u /etc/dovecot/users
14
15 # Default fields that can be overridden by passwd-file
16 #default_fields = quota_rule=*:storage=1G
17
18 # Override fields from passwd-file
19 #override_fields = home=/home/virtual/%u
20}
diff --git a/roles/dovecot/files/conf.d/auth-sql.conf.ext b/roles/dovecot/files/conf.d/auth-sql.conf.ext
deleted file mode 100644
index ccbea86..0000000
--- a/roles/dovecot/files/conf.d/auth-sql.conf.ext
+++ /dev/null
@@ -1,30 +0,0 @@
1# Authentication for SQL users. Included from 10-auth.conf.
2#
3# <doc/wiki/AuthDatabase.SQL.txt>
4
5passdb {
6 driver = sql
7
8 # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
9 args = /etc/dovecot/dovecot-sql.conf.ext
10}
11
12# "prefetch" user database means that the passdb already provided the
13# needed information and there's no need to do a separate userdb lookup.
14# <doc/wiki/UserDatabase.Prefetch.txt>
15#userdb {
16# driver = prefetch
17#}
18
19userdb {
20 driver = sql
21 args = /etc/dovecot/dovecot-sql.conf.ext
22}
23
24# If you don't have any user-specific settings, you can avoid the user_query
25# by using userdb static instead of userdb sql, for example:
26# <doc/wiki/UserDatabase.Static.txt>
27#userdb {
28 #driver = static
29 #args = uid=vmail gid=vmail home=/var/vmail/%u
30#}
diff --git a/roles/dovecot/files/conf.d/auth-static.conf.ext b/roles/dovecot/files/conf.d/auth-static.conf.ext
deleted file mode 100644
index 90890c5..0000000
--- a/roles/dovecot/files/conf.d/auth-static.conf.ext
+++ /dev/null
@@ -1,24 +0,0 @@
1# Static passdb. Included from 10-auth.conf.
2
3# This can be used for situations where Dovecot doesn't need to verify the
4# username or the password, or if there is a single password for all users:
5#
6# - proxy frontend, where the backend verifies the password
7# - proxy backend, where the frontend already verified the password
8# - authentication with SSL certificates
9# - simple testing
10
11#passdb {
12# driver = static
13# args = proxy=y host=%1Mu.example.com nopassword=y
14#}
15
16#passdb {
17# driver = static
18# args = password=test
19#}
20
21#userdb {
22# driver = static
23# args = uid=vmail gid=vmail home=/home/%u
24#}
diff --git a/roles/dovecot/files/conf.d/auth-system.conf.ext b/roles/dovecot/files/conf.d/auth-system.conf.ext
deleted file mode 100644
index dadb9f7..0000000
--- a/roles/dovecot/files/conf.d/auth-system.conf.ext
+++ /dev/null
@@ -1,74 +0,0 @@
1# Authentication for system users. Included from 10-auth.conf.
2#
3# <doc/wiki/PasswordDatabase.txt>
4# <doc/wiki/UserDatabase.txt>
5
6# PAM authentication. Preferred nowadays by most systems.
7# PAM is typically used with either userdb passwd or userdb static.
8# REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
9# authentication to actually work. <doc/wiki/PasswordDatabase.PAM.txt>
10passdb {
11 driver = pam
12 # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
13 # [cache_key=<key>] [<service name>]
14 #args = dovecot
15}
16
17# System users (NSS, /etc/passwd, or similar).
18# In many systems nowadays this uses Name Service Switch, which is
19# configured in /etc/nsswitch.conf. <doc/wiki/AuthDatabase.Passwd.txt>
20#passdb {
21 #driver = passwd
22 # [blocking=no]
23 #args =
24#}
25
26# Shadow passwords for system users (NSS, /etc/shadow or similar).
27# Deprecated by PAM nowadays.
28# <doc/wiki/PasswordDatabase.Shadow.txt>
29#passdb {
30 #driver = shadow
31 # [blocking=no]
32 #args =
33#}
34
35# PAM-like authentication for OpenBSD.
36# <doc/wiki/PasswordDatabase.BSDAuth.txt>
37#passdb {
38 #driver = bsdauth
39 # [blocking=no] [cache_key=<key>]
40 #args =
41#}
42
43##
44## User databases
45##
46
47# System users (NSS, /etc/passwd, or similar). In many systems nowadays this
48# uses Name Service Switch, which is configured in /etc/nsswitch.conf.
49userdb {
50 # <doc/wiki/AuthDatabase.Passwd.txt>
51 driver = passwd
52 # [blocking=no]
53 #args =
54
55 # Override fields from passwd
56 #override_fields = home=/home/virtual/%u
57}
58
59# Static settings generated from template <doc/wiki/UserDatabase.Static.txt>
60#userdb {
61 #driver = static
62 # Can return anything a userdb could normally return. For example:
63 #
64 # args = uid=500 gid=500 home=/var/mail/%u
65 #
66 # LDA and LMTP needs to look up users only from the userdb. This of course
67 # doesn't work with static userdb because there is no list of users.
68 # Normally static userdb handles this by doing a passdb lookup. This works
69 # with most passdbs, with PAM being the most notable exception. If you do
70 # the user verification another way, you can add allow_all_users=yes to
71 # the args in which case the passdb lookup is skipped.
72 #
73 #args =
74#}
diff --git a/roles/dovecot/files/dovecot.conf b/roles/dovecot/files/dovecot.conf
index 14a4cf0..ee7eb33 100644
--- a/roles/dovecot/files/dovecot.conf
+++ b/roles/dovecot/files/dovecot.conf
@@ -1,10 +1,81 @@
1# Enable installed protocols 1## Dovecot configuration file
2
3# If you're in a hurry, see https://doc.dovecot.org/latest/core/config/guides/quick.html
4
5# "doveconf -n" command gives a clean output of the changed settings. Use it
6# instead of copy&pasting files when posting to the Dovecot mailing list.
7
8# '#' character and everything after it is treated as comments. Extra spaces
9# and tabs are ignored. If you want to use either of these explicitly, put the
10# value inside quotes, eg.: key = "# char and trailing whitespace "
11
12# Default values are shown for each setting, it's not required to uncomment
13# those. These are exceptions to this though: No sections (e.g. namespace {})
14# or plugin settings are added by default, they're listed only as examples.
15# Paths are also just examples with the real defaults being based on configure
16# options. The paths listed here are for configure --prefix=/usr/local
17# --sysconfdir=/usr/local/etc --localstatedir=/var
18
19dovecot_config_version = 2.4.0
20dovecot_storage_version = 2.4.0
21
22# Protocols we want to be serving.
23#protocols = imap pop3 lmtp
2!include_try /usr/share/dovecot/protocols.d/*.protocol 24!include_try /usr/share/dovecot/protocols.d/*.protocol
3 25
4dict { 26# A comma separated list of IPs or hosts where to listen in for connections.
5 #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext 27# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
6 #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext 28# If you want to specify non-default ports or anything more complex,
7} 29# edit conf.d/master.conf.
30#listen = *, ::
31
32# Base directory where to store runtime data.
33#base_dir = /var/run/dovecot/
34
35# Name of this instance. In multi-instance setup doveadm and other commands
36# can use -i <instance_name> to select which instance is used (an alternative
37# to -c <config_path>). The instance name is also added to Dovecot processes
38# in ps output.
39#instance_name = dovecot
40
41# Greeting message for clients.
42#login_greeting = Dovecot ready.
43
44# Space separated list of trusted network ranges. Connections from these
45# IPs are allowed to override their IP addresses and ports (for logging and
46# for authentication checks). disable_plaintext_auth is also ignored for
47# these networks, unless ssl=required.
48# Typically you'd specify your IMAP proxy servers here.
49#login_trusted_networks =
50
51# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
52# proxying. This isn't necessary normally, but may be useful if the destination
53# IP is e.g. a load balancer's IP.
54#auth_proxy_self =
55
56# Show more verbose process titles (in ps). Currently shows user name and
57# IP address. Useful for seeing who are actually using the IMAP processes
58# (eg. shared mailboxes or if same uid is used for multiple accounts).
59#verbose_proctitle = yes
60
61# Should all processes be killed when Dovecot master process shuts down.
62# Setting this to "no" means that Dovecot can be upgraded without
63# forcing existing client connections to close (although that could also be
64# a problem if the upgrade is e.g. because of a security fix).
65#shutdown_clients = yes
66
67# If non-zero, run mail commands via this many connections to doveadm server,
68# instead of running them directly in the same process.
69#doveadm_worker_count = 0
70# UNIX socket or host:port used for connecting to doveadm server
71#doveadm_socket_path = doveadm-server
72
73# Space separated list of environment variables that are preserved on Dovecot
74# startup and passed down to all of its child processes. You can also give
75# key=value pairs to always set specific settings.
76#import_environment {
77# TZ=%{env:TZ}
78#}
8 79
9# Most of the actual configuration gets included below. The filenames are 80# Most of the actual configuration gets included below. The filenames are
10# first sorted by their ASCII value and parsed in that order. The 00-prefixes 81# first sorted by their ASCII value and parsed in that order. The 00-prefixes