I never did locate the root cause of the problem I was experiencing. The problem seems to have been fixed by switching to the Dovecot LDA (deliver) by putting in the /etc/postfix/main.cf: mailbox_command = /usr/local/libexec/dovecot/deliver -c /usr/local/etc/dovecot.conf -f "$SENDER"
I brought this up on the postfix mailing list as well. According to Wietse Venema:
We're looking at this code fragment:
/* * Open an existing file. */ if ((fp = vstream_fopen(path, flags & ~(O_CREAT | O_EXCL), 0)) == 0) { saved_errno = errno; vstring_sprintf(why, "cannot open file: %m"); errno = saved_errno; return (0); }
Since the file already exists, Postfix attempts to open it with the recipient's uid/gid privileges.
...
Does anyone have any advice on how I might get better details about why postfix is having trouble accessing the file? "Permission denied" is what the kernel says in response to an open(2) or write(2) request. Postfix just delivers the bad news.
Wietse is the one who suggested switching to the Dovecot LDA, and it does seem to be working out well.
-John
On 12/22/06, Timo Sirainen tss@iki.fi wrote:
On 8.12.2006, at 23.30, John Reddy wrote:
Dec 7 09:42:05 solaris-host local[18332]: [ID 197553 mail.info] D35C3445C: to=bubba@solaris-host.sample.com, relay=local, delay=0.17, delays=0.09/0/0/0.08, dsn=5.2.0, status=bounced (cannot update mailbox /var/mail/bubba for user bubba. cannot open file: Permission denied)
I'd guess you're solved this already somehow, but to me it looks like a Postfix configuration problem. Maybe you've configured Postfix to use different UID for a user than for Dovecot.