On Thu, 2009-02-19 at 17:10 +0000, Mark Zealey wrote:
Are you talking about only POP3 clients? I suppose in theory it should be possible, but it's such a special case that I'm not going to bother making Dovecot support that. Dovecot really wants to create dovecot-uidlist files. But I suppose you could just have it create them to some temp directories:
mail_location = maildir:~/Maildir:CONTROL=/tmp/%u:INDEX=MEMORY
Both IMAP and pop3 - I got the same errors with imap, but thanks to the CONTROL= parameter that's fixed now.
With IMAP that's a really bad idea, because then the UIDs won't be permanent.
2009-02-19T16:48:14+00:00 mail2 dovecot: POP3(test2@markandruth.co.uk): Disconnected: Mailbox is in inconsistent state. bytes=0/56, top=0/0, retr=0/0, del=0/0, size=0 2009-02-19T16:48:14+00:00 mail2 dovecot: POP3(test2@markandruth.co.uk): Couldn't init INBOX: Mailbox was deleted under us
But second login is fine - must be something to do with the CONTROL param.
Probably, yes.. Although didn't it log an error message to error log (may be in a different log)?
And be sure to use:
pop3_uidl_format = %f
Out of interest, why do we have to use that uidl format, or are you just saying we have to use some uidl format? We migrated from courier and so use "UID%u-%v".
Because the UIDs aren't permanent with that CONTROL change.
Hmm, weirdly enough (or perhaps not) dovecot looks successful if I delete the message (chmod -r):
dele 1 +OK Marked to be deleted. quit +OK Logging out, messages deleted.
chmod -r? Or -w? Did you do it to the messages or the cur directory? The only important thing is if cur directory has +w permission.
Do you think IMAP clients would handle the read-only situation better?
Yes. For example dovecot.org offers read-only mailing list archives.
I can see that it correctly reports the mailbox as read-only if we chmod -r files, however if the filesystem itself is mounted read-only, dovecot reports the mailbox as being read-write (dovecot 1.1.6)
Dovecot uses access(Maildir/cur) to see if it has write permissions. I guess the kernel says that the user does. I'm not sure if there's a good and easy way to fix that.