This guide installs Dovecot on a Linux host. This documentation assumes Dovecot v2.4.x, which has different configuration syntax compared to previous versions.
sudo apt-get update
sudo apt-get install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-sqlite
sudo dnf install -y dovecot
sudo apk add dovecot dovecot-imapd dovecot-pop3d
Before making changes, backup the default configuration:
sudo cp -r /etc/dovecot /etc/dovecot.backup.$(date +%Y%m%d)
Dovecot 2.4 introduced significant changes to configuration. The main configuration file is /etc/dovecot/dovecot.conf, but most settings are in /etc/dovecot/conf.d/ directory.
Edit the main configuration file:
sudo nano /etc/dovecot/conf.d/10-main.conf
Set the following basic parameters:
# Protocols to enable
protocols = imap pop3 lmtp submission
# SSL configuration
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
# Mail location
mail_location = maildir:~/Maildir
Edit authentication settings:
sudo nano /etc/dovecot/conf.d/10-auth.conf
Enable plain text authentication (for encrypted connections only):
auth_mechanisms = plain login
disable_plaintext_auth = yes
Edit mailbox settings:
sudo nano /etc/dovecot/conf.d/10-mail.conf
# Mail location
mail_location = maildir:~/Maildir:LAYOUT=fs
first_valid_uid = 1000
last_valid_uid = 1000
Generate or place your SSL certificates:
# If using Let's Encrypt
sudo ln -s /etc/letsencrypt/live/yourdomain.com/fullchain.pem /etc/ssl/certs/dovecot.pem
sudo ln -s /etc/letsencrypt/live/yourdomain.com/privkey.pem /etc/ssl/private/dovecot.pem
Or configure the SSL settings in /etc/dovecot/conf.d/10-ssl.conf:
ssl = required
ssl_cert = </etc/ssl/certs/your-cert.pem
ssl_key = </etc/ssl/private/your-private-key.pem
sudo systemctl enable --now dovecot
sudo systemctl status dovecot
Check that Dovecot is running and listening on the correct ports:
sudo netstat -tlnp | grep dovecot
# Or with ss (modern replacement for netstat):
sudo ss -tlnp | grep dovecot
Test the configuration:
sudo doveadm version
sudo doveconf -n
Consider using infrastructure automation tools to deploy and manage Dovecot:
# Example using systemd drop-in for customizations
sudo mkdir -p /etc/systemd/system/dovecot.service.d/
sudo tee /etc/systemd/system/dovecot.service.d/custom.conf << EOF
[Service]
Restart=always
RestartSec=5
OOMScoreAdjust=-500
EOF
sudo systemctl daemon-reload
If upgrading from Dovecot 2.3.x, note that configuration syntax has changed significantly. Key changes include:
Always backup your configuration before upgrading and test in a staging environment.
sudo doveconf -nCheck logs for issues:
sudo journalctl -u dovecot -f
# Or check log files directly:
sudo tail -f /var/log/dovecot.log
Additional diagnostic commands:
# Check configuration syntax
sudo doveconf -n
# Test authentication
sudo doveadm auth test username@domain.com
# List users
sudo doveadm user '*'
# Check current connections
sudo doveadm who
For high-load environments, consider these optimizations in /etc/dovecot/conf.d/10-master.conf:
# Increase process limits for high-traffic servers
service imap-login {
process_min_avail = 2
process_limit = 100
}
service imap {
process_limit = 1024
vsz_limit = 256M
}
See Dovecot Configuration for configuration guidance.
See Dovecot Security for hardening guidance.
Any questions?
Feel free to contact us. Find all contact information on our contact page.