[Dovecot] Seen flag in maildir filename not being respected
Hi,
I'm using dovecot 1.1.2 (but I've noticed this since 1.1.1 which I
was using until yesterday). It seems dovecot is ignoring the "S" flag in Maildir filenames, and is relying only in its Index Files to determine if a message has been read or not.
I say that because if I delete the dovecot.index.* files for a mail
folder, all the mails in there appear as unread. Also, I've tried accessing the maildir directly (using heirloom-mailx, but mutt should have done, too) and reading a new message. The file name was changed to add a "S" to the end, but this message was still marked as "unread" when the mail folder was accessed via IMAP.
The flags R, F and T are correctly read from the filename if no
index is present. I haven't tested the other flags.
I'm using dovecot's deliver, and it creates filenames such as
"1217450416.M77457P5201.mail.kalinowski.com.br,S=1377,W=1411:2,S", that is, perfectly fine.
dovecot -n: # 1.1.2: /etc/dovecot/dovecot.conf log_path: /var/log/dovecot/main.log info_log_path: /var/log/dovecot/info.log log_timestamp: %Y-%m-%d %H:%M:%S ssl_cert_file: /etc/ssl/certs/server.pem ssl_key_file: /etc/ssl/private/server.pem login_dir: /var/run/dovecot/login login_executable: /usr/lib/dovecot/imap-login login_processes_count: 1 first_valid_uid: 100 mail_privileged_group: mail mail_location: maildir:/home/vmail/%d/%n/INBOX:INDEX=/home/vmail/%d/%n/dovecotidx mail_plugins: quota imap_quota zlib auth default: mechanisms: plain login cram-md5 passdb: driver: passwd-file args: username_format=%n /home/vmail/%d/db/passwd passdb: driver: pam userdb: driver: static args: uid=104 gid=8 home=/home/vmail/%d/%n userdb: driver: passwd socket: type: listen client: path: /var/run/dovecot/auth-client mode: 438 master: path: /var/run/dovecot/auth-master mode: 384 user: vmail group: mail plugin: quota: maildir quota_rule: ?:storage=0 quota_rule2: Trash:ignore quota_rule3: Spam:ignore quota_rule4: Spam.Errado:ignore sieve: /home/vmail/%d/db/sieves/%n.sieve
On Jul 31, 2008, at 12:43 AM, Eduardo M KALINOWSKI wrote:
Hi,
I'm using dovecot 1.1.2 (but I've noticed this since 1.1.1 which I was using until yesterday). It seems dovecot is ignoring the "S"
flag in Maildir filenames, and is relying only in its Index Files to determine if a message has been read or not.I say that because if I delete the dovecot.index.* files for a mail folder, all the mails in there appear as unread.
Do you have dovecot-shared file in the maildir? If it exists, Dovecot
uses only its index file for storing \Seen flags (to get per-user
\Seen flags with shared mailboxes).
Timo Sirainen wrote:
Do you have dovecot-shared file in the maildir? If it exists, Dovecot uses only its index file for storing \Seen flags (to get per-user \Seen flags with shared mailboxes).
I do, to set the owner/group and mode of files. (The mailboxes aren't really shared, actually.) Any workarounds?
-- Despite all appearances, your boss is a thinking, feeling, human being.
Eduardo M KALINOWSKI eduardo@kalinowski.com.br http://move.to/hpkb
On Jul 31, 2008, at 2:03 PM, Eduardo M KALINOWSKI wrote:
Timo Sirainen wrote:
Do you have dovecot-shared file in the maildir? If it exists, Dovecot uses only its index file for storing \Seen flags (to get per-user \Seen flags with shared mailboxes).
I do, to set the owner/group and mode of files. (The mailboxes aren't really shared, actually.) Any workarounds?
Only way currently would be to modify the sources:
src/lib-storage/index/maildir/maildir-storage.c:
mbox->ibox.box.private_flags_mask = MAIL_SEEN;
Comment out that line.
participants (2)
-
Eduardo M KALINOWSKI
-
Timo Sirainen