Introduction to Dovecot
Dovecot is an Internet Message
Access Protocol (IMAP) and Post Office Protocol (POP) server,
written primarily with security in mind. Dovecot aims to be lightweight, fast and easy
to set up as well as highly configurable and easily extensible with
plugins.
Note
Development versions of BLFS may not build or run some packages
properly if LFS or dependencies have been updated since the most
recent stable versions of the books.
Package Information
Additional Downloads
Dovecot Dependencies
Required
libtirpc-1.3.6
Optional
CLucene-2.3.3.4, ICU-76.1, libcap-2.72 with PAM, libunwind-1.8.1, Linux-PAM-1.7.0, Lua-5.4.7, MariaDB-11.4.4 or MySQL, OpenLDAP-2.6.9,
PostgreSQL-17.2, SQLite-3.47.2, Valgrind-3.24.0, xfsprogs-6.12.0, Cassandra, stemmer and
libsodium
Installation of Dovecot
There should be dedicated users and groups for unprivileged Dovecot
processes and for processing users' logins. Issue the following
commands as the root
user:
groupadd -g 42 dovecot &&
useradd -c "Dovecot unprivileged user" -d /dev/null -u 42 \
-g dovecot -s /bin/false dovecot &&
groupadd -g 43 dovenull &&
useradd -c "Dovecot login user" -d /dev/null -u 43 \
-g dovenull -s /bin/false dovenull
First, apply a patch to fix problems with OpenSSL-3:
patch -Np1 -i ../dovecot-2.3.21.1-openssl3_fixes-1.patch
Now, fix the package to build with icu-76.1 or later:
sed -i 's/\bPKG_CONFIG --libs "icu-i18n\b/& icu-uc/' configure
Next, apply a patch to fix a security vulnerability:
patch -Np1 -i ../dovecot-2.3.21.1-security_fix-1.patch
Install Dovecot by running the
following commands:
CPPFLAGS="-I/usr/include/tirpc" \
LDFLAGS+=" -ltirpc" \
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--docdir=/usr/share/doc/dovecot-2.3.21.1 \
--disable-static &&
make
To test the results, issue make -k
check.
Now, as the root
user:
make install
Command Explanations
CPPFLAGS=...
LDFLAGS+=...: build with libtirpc instead of the
recently removed RPC code provided by GlibC.
--disable-static
: This
switch prevents installation of static versions of the libraries.
--with-ldap
: This switch enables
OpenLDAP authentication support.
--with-pgsql
: This switch enables
PostgreSQL database support.
--with-mysql
: This switch enables
MySQL database support.
--with-sqlite
: This switch enables
SQLite database support.
--with-lucene
: This switch enables
CLucene full text search support.
--with-lua
: This switch enables
Lua plugin support. This includes
a mail and push notification plugin.
Configuring Dovecot
Config Files
/etc/dovecot/dovecot.conf
,
/etc/dovecot/conf.d/*
, and
/etc/dovecot/local.conf
Configuration Information
Copy an example configuration, which you can use as a starting
point:
cp -rv /usr/share/doc/dovecot-2.3.21.1/example-config/* /etc/dovecot
The following configuration is a simple proof of concept with
IMAP service using local users for authentication and mailbox
location. Reading files from the conf.d
directory is commented out since the
included example configuration requires OpenSSL and Linux
PAM.
sed -i '/^\!include / s/^/#/' /etc/dovecot/dovecot.conf &&
chmod -v 1777 /var/mail &&
cat > /etc/dovecot/local.conf << "EOF"
protocols = imap
ssl = no
# The next line is only needed if you have no IPv6 network interfaces
listen = *
mail_location = mbox:~/Mail:INBOX=/var/mail/%u
userdb {
driver = passwd
}
passdb {
driver = shadow
}
EOF
You will definitely want to read the official documentation at
https://wiki2.dovecot.org/ if
you plan to use Dovecot in a
production environment.
Systemd Unit
To start the dovecot daemon at boot, enable
the previously installed systemd unit with the following command:
systemctl enable dovecot
Contents
Installed Programs:
doveadm, doveconf, dovecot,
dovecot-sysreport, and dsync (symbolic link)
Installed Libraries:
various internal plugins in /usr/lib/dovecot
Installed Directories:
/etc/dovecot,
/usr/{include,lib,libexec,share}/dovecot and
/usr/share/doc/dovecot-2.3.21.1
Short Descriptions
doveadm
|
is the Dovecot
administration tool
|
doveconf
|
is Dovecot's
configuration dumping utility
|
dovecot
|
is the IMAP and POP server
|
dovecot-sysreport
|
prints system information that is useful to the Dovecot
developers when submitting bug reports upstream
|
dsync
|
is Dovecot's mailbox
synchronization utility
|