Search K
Appearance
Appearance
If you just want to get Dovecot running with typical configuration in a typical environment, this guide will help you.
Here is a very simple basic configuration with single vmail user to be placed in dovecot.conf
.
Note
Some distros split configuration under /etc/dovecot/conf.d/
. This can be useful, but it is not required.
For a simple setup, a single dovecot.conf
file is recommended.
You need to create group vmail
and user vmail
.
mail_home=/srv/mail/%Lu
mail_location=sdbox:~/Mail
## this is sometimes needed
#first_valid_uid = uid-of-vmail-user
# if you want to use system users
passdb pam {
driver = pam
}
userdb passwd {
driver = passwd
args = blocking=no
override_fields = uid=vmail gid=vmail
}
ssl=yes
ssl_cert=</path/to/cert.pem
ssl_key=</path/to/key.pem
namespace {
inbox = yes
separator = /
}
Prebuilt packages usually install the configuration files into /etc/dovecot/
. You'll find the correct path by running:
$ doveconf -n | head -n 1
It's a good idea to read through all the config files and see what settings you might want to change.
If you compiled and installed Dovecot from sources, Dovecot has installed only a /usr/local/etc/dovecot/README
file, which contains the path to the installed example configuration files, usually /usr/local/share/doc/dovecot/example-config
. Copy them to etc/
:
$ cp -r /usr/local/share/doc/dovecot/example-config/* /usr/local/etc/dovecot/
The default configuration starts from dovecot.conf
, which contains an !include conf.d/*.conf
statement to read the rest of the configuration. The idea is that the settings are nicely grouped into different files to make it easier for new admins to scan through related settings. It doesn't matter which config file you add which setting.
In the production system it's often easier to just have a single dovecot.conf
file, which you can create easily using:
$ doveconf -nP > dovecot.conf
<
, e.g.:ssl_cert = </etc/ssl/certs/imap.pem
By default, Dovecot is setup to use system user authentication. You'll probably be using PAM authentication. See the page PAM authentication database for how to configure it.
A typical configuration with Linux would be to create /etc/pam.d/dovecot
which contains:
auth required pam_unix.so
account required pam_unix.so
If you're planning on using virtual users, it's easier to first create a simple passwd-like file to make sure that the authentication will work. Later when you know Dovecot is working, you can do it differently (see virtual users).
Run as your own non-root user:
$ echo "$USER:{PLAIN}password:$UID:$GID::$HOME" > users
$ sudo mv users /etc/dovecot/
# If SELinux is enabled:
$ restorecon -v /etc/dovecot/users
You can (and should) replace the "password" with whatever password you wish to use, but don't use any important password here as we'll be logging in with insecure plaintext authentication until SSL is configured.
Switch to passwd-file authentication by adding to dovecot.conf
:
passdb {
driver = passwd-file
args = scheme=CRYPT username_format=%u /etc/dovecot/users
}
userdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/users
}
Verify with doveconf -n passdb userdb
that the output looks like above (and there are no other passdbs or userdbs).
If you're using something else, see passdb and userdb.
You can let Dovecot do its automatic mail location detection, but if that doesn't work you can set the location manually in mail_location
.
TIP
It is recommended to use either Maildir or dbox as your mailbox format.
mbox is a deprecated format, and should only be used for legacy message access and not for new systems.
For better performance you may want to set mbox_very_dirty_syncs = yes
.
Check imap_client_workarounds
and pop3_client_workarounds
and see if you want to enable more of them than the defaults.
If you intend to use SSL, set ssl_cert
and ssl_key
settings. Otherwise set ssl = no
.
Easiest way to get SSL certificates built is to use Dovecot's doc/mkcert.sh
script. For more information see SSL configuration.
By default auth_allow_cleartext = no
, which means that Dovecot will fail the authentication if the client doesn't use SSL (or use non-cleartext authentication mechanisms). This is recommended in most situations, since it prevents leaking passwords. However, if you don't offer SSL for some reason, you'll probably want to set auth_allow_cleartext = yes
.
If you're using NFS or some other remote filesystem that's shared between multiple computers, you should read NFS.
See running Dovecot and logging.