DOVECONF(1)
π DOVECONF(1) π
okay bestie, welcome to the doveconf page β aka Dovecot's configuration dumping utility. Yes that's the whole name section, we're doing it, let's go β¨
π¦ SYNOPSIS
doveconf [-aCdFInPNUwx] [-c config-file] [-f filter]
doveconf [-n] [-c config-file] section_name ...
doveconf [-h] [-c config-file] [-f filter] setting_name ...
πΈ DESCRIPTION
So doveconf reads Dovecot's configuration files, parses them, and turns them into a way simpler format that the rest of Dovecot actually uses. That's its whole thing π
Every standalone program β hi, dovecot(1) π β gets its settings by running doveconf first, unless it can just get them by connecting to the config UNIX socket. Either way, it gets fed.
For sysadmins, doveconf is mainly the girl who:
- lets you inspect your current configuration in an easy, human-readable format π
- checks individual settings π
- compares your configured values against their defaults βοΈ
And she can also inspect configuration @groups by querying them directly, because she's versatile like that π
β¨ OPTIONS β¨
-aβ show all the settings, with the values they're currently configured to. all of them. every single one. she's thorough π-Cβ TODO (check full config). yeah. that's literally what it says. moving on π-cconfig-file β read the configuration from the config-file you give her. if you don't say anything, she defaults to/etc/dovecot/dovecot.conf. no cap π«Ά-dβ show the setting's default value instead of whatever's currently configured. you can also use this to show the contents of default setting groups by querying the group name directly, like:
doveconf -d @mailbox_defaults/english
iconic behaviour honestly π
-Fβ show the configuration in a filter-based format, which is how Dovecot internally accesses it. super useful for debugging why your config is not doing what you expected π
Here's the tea: the settings get grouped into different "structs", and each struct is accessed independently. A new struct starts in the output as # struct_name.
Next up is the list of filters, which begin with :FILTER followed by the filter in the event filter syntax. An empty filter matches everything. The filters are processed from end to beginning, and the settings are taken from the first matching filter (i.e. the last one in the output). Since not all filters have all settings defined, the processing just keeps going until all the settings have been found.
Named list filters such as protocols = imap pop3 are shown as protocol/imap=yes and protocol/pop3=yes # stop list. The "stop list" means the value is not modified by any following filters that match. But if the setting was defined as protocols { imap=yes, pop3=yes }, the "stop list" would be missing, because this setting is only adding the protocols, not replacing the list. subtle but important, iykyk β¨
Settings groups are included in :INCLUDE lines. The includes are processed last, after all the filters have been applied, so all settings inside the groups can be overridden. she plans ahead π
-ffilter β show the matching configuration for the filter condition you specify. The filter option string has to be given as aname = valuepair. And for multiple filter conditions? Just supply the-foption multiple times, she can handle it πͺ
Possible names for the filter are:
protocol: the protocol, e.g.imaporpop3local_name: the local hostname for TLS SNI matching, e.g.mail.example.com.
This matches filters which were configured like:
local_name mail.example.com { # special settings }
local: the local hostname or IP address.
This matches filters which were configured like:
local 1.2.3.0/24 { # special settings }
remote: the client's hostname or IP address.
This matches filters which were configured like:
remote 1.2.3.0/24 { # special settings }
-hβ hide the setting's name, show only the setting's value. mysterious. lowkey serving π-Iβ TODO (dump config import). another mystery bestie π-nβ show only settings with non-default values. this is the default behavior when no other parameters are given. so if you're wondering what she does with zero instructions β it's this π«Ά-Nβ show settings with non-default values and explicitly set default values. both. at once. π-sβ show also hidden settings. the hidden settings should not be changed normally, so likeβ¦ hands off bestie β οΈ-Pβ show passwords and other sensitive values. π careful who's looking over your shoulder fr fr-Uβ ignore all unknown settings in the config file. she simply will not acknowledge them π-wβ TODO (hide obsolete warnings). yeah. another TODO. we respect the honesty π-xβ expand configuration variables (e.g.$ENV:foo) and show file contents (from e.g.ssl_server_key_password = </etc/ssl/password.txt). she opens the envelope for you π- section_name β show only the current configuration of one or more specified sections.
- setting_name β show only the setting of one or more setting_name(s) with the currently configured value. and you can show a setting inside a section by using
/as the section separator, e.g.service/imap/executable. slash is the vibe π¦
π EXAMPLE
Show only settings with non-default values (default behavior):
doveconf -n
Show all settings with their default values:
doveconf -ad
Show the contents of a default settings group:
doveconf -d @mailbox_defaults/english
When Dovecot was configured to use different settings for some networks/subnets it is possible to show which settings will be applied for a specific connection.
doveconf -f local=10.0.0.110 -f remote=10.11.1.2 -f protocol=pop3 -n
Ask doveconf for a global setting:
doveconf mail_plugins
mail_plugins = quota
Ask doveconf for a protocol specific setting. Uses the -h option, in order to hide the setting's name:
doveconf -h -f protocol=imap login_greeting
Dovecot ready.
Dump a whole configuration section:
doveconf service
service imap {
...
}
service pop3 {
...
}
Or dump only the imap service:
doveconf service/imap
service imap {
...
}
π REPORTING BUGS
Found a bug? Report it β and please include your doveconf -n output β to the Dovecot Mailing List β¨dovecot@dovecot.orgβ©. All the info you need about reporting bugs lives at β¨https://dovecot.org/bugreport.htmlβ©. do it for the girls π
π SEE ALSO
and that's the whole page bestie, you ate π
this was brought to you by Dovecot, source/version f979264, dated April 2026 β DOVECONF(1), periodt β¨
π¦ where this page comes from
- alpine 3.23: dovecot-doc 2.4.5-r0 Β· MIT AND LGPL-2.1-or-later
- alpine 3.24: dovecot-doc 2.4.5-r0 Β· MIT AND LGPL-2.1-or-later
- arch rolling: dovecot 2.4.5-1 Β· MIT AND LGPL-2.1-only
- fedora 43: dovecot 1:2.4.5-1.fc43 Β· MIT AND LGPL-2.1-only
- fedora 44: dovecot 1:2.4.5-1.fc44 Β· MIT AND LGPL-2.1-only
- nixos 26.05: dovecot 2.4.5
- nixpkgs unstable: dovecot 2.4.5
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms