Settings for mail_chroot and default_mail_env are not playing well together.
It seems that default_mail_env is verified to exist *before* the chroot but is later used *after* the chroot.
A configuration like this:
mail_chroot = /var/mail/example.com/username
default_mail_env = maildir:/Maildir
Fails with the message:
- stat(/Maildir) failed: No such file or directory
As a work-around, I created an empty directory named Maildir *outside* of the chroot. The relevant portions of the filesystem now look something like this:
/Maildir
/var/mail/example.com/username/Maildir/...
NOTE: The empty /Maildir directory is owned by root.
NOTE: Each /var/mail/example.com/username directory and up is owned by root.
NOTE: Each /var/mail/example.com/username/Maildir directory and below is owned by the email user.
After successful testing with the "static" settings above, I was able to pull the per-user settings for mail_chroot in from PostgreSQL using home to over-ride mail_chroot.
If anyone else has been having trouble with mail_chroot + default_mail_env, hopefully this work-around will help.
Finally, I should mention my system, just in case I am the only one affected...
- Xen + Linux 2.6.16.13 + Debian 3.1 + ( Dovecot 1.0rc2 in chroot )
Regards, Daniel Kauffman