Existing
- Debian Lenny
- Dovecot querying MySQL (virtual users)
- Remote NFS server storing Maildirs (owned by vmail, iud 500)
Configuration
Dovecot is able to fetch (through IMAP or POP) Maildirs message if it has:
- The user's HOME
- The user's UID
- The user's GID
For Dovecot:
- The user's Maildir is the user's HOME appended with "/Maildir"
- Dovecot executes the message fetching as the user's UID
- Dovecot executes the message fetching as the user's GID
My troubles
My
user_query
returned something like:
home | uid | gid |
/data/mailaka/gulfsat.mg/m/mihamina/ | 500 | 500 |
I found those lines in my debug logs:
maildir: access(/data/mailaka/gulfsat.mg/m/mihamina//Maildir, rwx):
failed: No such file or directory
maildir: couldn't find root dir
mbox: root exists (/data/mailaka/gulfsat.mg/m/mihamina//mail)
mbox: INBOX: access(/var/mail/mihamina@gulfsat.mg, rw)
failed: No such file or directory
mbox: INBOX: access(/var/spool/mail/mihamina@gulfsat.mg, rw)
failed: No such file or directory
mbox: INBOX defaulted to /data/mailaka/gulfsat.mg/m/mihamina//mail/inbox
Dovecot tried to look for the Maildir structure in
/data/mailaka/gulfsat.mg/m/mihamina//Maildir
which doesnt exist on my system.
The solution
I found that my
user_query
may return an additional column "mail", sot that the result is:
home | mail | uid | gid |
/data/mailaka/gulfsat.mg/m/mihamina/ | /data/mailaka/gulfsat.mg/m/mihamina/ | 500 | 500 |
Dovecot immediately found my messages...