Since I haven't gotten any traction on this, I decided to investigate myself. Perhaps this will be useful to others searching the internet for answers.
So, from all-settings.c, the default mail_inbox_path is actually set to ".":
static const struct setting_keyvalue maildir_default_settings_keyvalue[] = { { "maildir/mailbox_list_layout", "maildir++" }, { "maildir/mail_path", "%{home}/Maildir" }, /* Use Maildir/ root as the INBOX, not Maildir/.INBOX/ */ { "maildir/layout_maildir++/mail_inbox_path", "." }, { "maildir/layout_fs/mail_inbox_path", "." }, { NULL, NULL } };
When I was trying to "unset" it by setting its value to "", this later if condition was never entered at all, so it never had an absolute path set (""[0] == '\0'):
if (set->mail_inbox_path[0] != '\0' && set->mail_inbox_path[0]
!= '/') { /* Convert to absolute path */ if (strcmp(set->mail_inbox_path, ".") == 0) set->mail_inbox_path = set->mail_path; else { set->mail_inbox_path = p_strdup_printf(pool, "%s/%s", set->mail_path, set->mail_inbox_path); } }
So the "correct" way to unset that variable in the local.conf is:
mail_inbox_path = "."
I still think setting it to "" should be a correct way to unset the variable.
--Pat
On 2026-08-26 10:41, Pat Suwalski wrote:
So. If a variable does not show up in doveconf, either by never being set, or by being unset, is there a reason it would be set differently in other parts of the code?
--Pat
On 2026-08-21 16:46, Pat Suwalski via dovecot wrote:
That is precisely why I wanted to unset the global config variable.
But that doesn't work. Thus my email.
Why does unsetting not work?
--Pat
On August 21, 2026 3:24:42 p.m. EDT, Michael Slusarz <michael.slusarz@dovecotpro.com> wrote:
On 08/21/2026 12:47 PM MDT Pat Suwalski via dovecot <dovecot@dovecot.org> wrote:
I recently upgraded my servers from Debian Bullseye to Trixie (2.3 -
2.4).
I have a pretty basic config, though I use Maildir instead of Debian's default of mbox.
In the process of getting things working correctly for the new config format, I believe I have stumbled on a bug.
To make the inbox work correctly, I need the mail_inbox_path variable to be unset. This is because the default shipped 10-mail.conf file from Debian has:
mail_driver = mbox mail_home = /home/%{user | username} mail_path = %{home}/mail mail_inbox_path = /var/mail/%{user}
So, I overrode the mail_driver and mail_path in my local.conf. From the documentation, it seems like I should be able to set:
mail_inbox_path =
And that should clear it. Certainly, doveconf shows no mail_inbox_path variable set when that happens. However, no inbox! If I comment out mail_inbox_path from 10-mail.conf, doveconf output is identical, however the inbox works.
My workaround is to make it the same as mail_path:
mail_inbox_path = ~/Maildir
However, I think the variable unsetting is buggy.
See https://doc.dovecot.org/2.4.4/core/summaries/ settings.html#mail_inbox_path , specifically the WARNING box.
michael
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org