doveadm
is the command-line administration tool for Dovecot, used for mailbox management, full-text search, quota checking, and replication tasks.
Syntax
doveadm [global options] <command> [command options]
Example:
doveadm -u user@example.com fetch -A hdr subject
Global Options
Option | Description |
---|---|
| Run command for this user |
| Apply command to all users |
| Use a specific admin socket |
| Output format ( |
| Read user list from file |
| Enable debug output |
Mailbox Management
List all mailboxes
doveadm mailbox list -u user@example.com
Count messages in a mailbox
doveadm search -u user@example.com mailbox INBOX | wc -l
Search messages
doveadm search -u user@example.com HEADER Subject "Test"
doveadm search -u user@example.com FROM "boss@firma.com"
doveadm search -u user@example.com SINCE 01-Jan-2025
Delete messages
doveadm expunge -u user@example.com mailbox Trash ALL
doveadm expunge -u user@example.com mailbox INBOX BEFORE 01-Jan-2024
Move messages
doveadm move -u user@example.com Trash mailbox Spam
Create or delete mailbox
doveadm mailbox create -u user@example.com "Archive/2025"
doveadm mailbox delete -u user@example.com "Archive/2022"
Full-Text Search (FTS)
If FTS is enabled (e.g. lucene or xapian):
doveadm fts rescan -u user@example.com
doveadm fts optimize -u user@example.com
Search body text:
doveadm search -u user@example.com TEXT "meeting"
Index and Cache Maintenance
doveadm index -u user@example.com INBOX
doveadm force-resync -u user@example.com INBOX
User Management and Debugging
doveadm user '*'
doveadm user -u user@example.com
doveadm auth test user@example.com 'password'
doveadm who
doveadm who -1 user@example.com
Mail Migration and Sync
IMAP Mirror
doveadm sync -u user@example.com ssh:user@remotehost
Local backup
doveadm backup -u user@example.com maildir:/backup/user/
One-way sync
doveadm sync -u user@example.com -1 ssh:user@remotehost
Quota and Usage
List quota usage for all users
doveadm quota get -A | sort -k5 -n
List users over quota
doveadm quota get -A | awk '$5 > $4 { print $1, $5, "/", $4 }'
Health Checks
doveconf -n
doveadm fs get -u user@example.com
doveadm user -A
Quick Cheat Sheet
Task | Command |
---|---|
List users |
|
Test login |
|
Search mails |
|
Delete old mails |
|
Rebuild FTS index |
|
Create mailbox |
|
Check quota |
|
Optional systemd Maintenance Service
Create /etc/systemd/system/dovecot-maint.service
:
[Unit]
Description=Dovecot Maintenance Task
[Service]
Type=oneshot
ExecStart=/usr/bin/doveadm fts rescan -A
ExecStartPost=/usr/bin/doveadm force-resync -A
[Install]
WantedBy=multi-user.target
Enable and run:
systemctl enable --now dovecot-maint.service