August 15, 2026 at 5:58 AM, "Marc Haber via dovecot" <dovecot@dovecot.org mailto:dovecot@dovecot.org?to=%22Marc%20Haber%20via%20dovecot%22%20%3Cdovecot%40dovecot.org%3E > wrote:
Hi,
this might be a stupid question asked by someone who does not know enough about IMAP, but I'm going to tell you my user story anyway:
tl;dr: can I keep dovecot from moving all "NEW" message to· "OLD" state when the Mailbox was opened once and nothing actually read?
long version: My mail is delivered to a maildir on a machine I also have a shell account on. That Maildir is huge, it holds half a million messages. I usually access it directly with mutt accessing the spool. In the Mailbox, new messages automatically get the N flag and once I have opened it in mutt, I can mark it as "O" (old). I use that flag for messages that still need further work, I usually have a couple of hundred messages in that state. There is also a third state (I would call it "read") that doesnt display any flags in mutt.
Occasionally, I need access to an attachment directly on my work box. In the past, I have moved that message to a sub-maildir which I then access with Thunderbird or neomutt via IMAP and dovecot (configured via userdb).
I now want to give neomutt direct IMAP access to the BIG mailbox. I am impressed how quickly the neomutt/dovecot acesses this mailbox. However, once I have once opened that mailbox, all messages that had the N flag in the mutt-on-spool lose that flag immediately, replaced by the O flag. That destroys my method of seeing "O" messages as "needs work".
Since that happens with both Thunderbird and neomutt when testing, I suspect, this is either mandated by the protocol (which would be a showstopper for me), or a dovecot issue, maybe even a thing that I could configure in dovecot.
Hence, my question, can I configure dovecot to move a "NEW" message to "OLD" only if the message was actually READ/body-displayed by an IMAP client? And, if yes, how do I do that.
Greetings Marc
--
Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Marc,
I think this isn't a Dovecot bug or a config option — the new/old split maps to IMAP's \Recent flag, which gets cleared as soon as any client opens the mailbox (SELECT). Dovecot handles that by moving messages from new/ to cur/, so your N→O distinction is gone. That's protocol, not configurable.
Note that opening the box over IMAP does not mark anything \Seen, so your read/unread state is fine — only the "O = needs work" convention breaks.
What I'd do: use \Flagged instead. In mutt just hit F; it's persistent and shows up the same across mutt-on-spool, neomutt-over-IMAP and Thunderbird. No Dovecot config needed.
n4ch0