Virtual mailboxes, index update issues

Stefan Hagen dovecot at textmail.me
Mon Aug 7 20:28:20 EEST 2017


Hello,

I noticed a strange behavor, where I would like to ask for help.

I have set up a few virtual mailboxes using the Virtual plugin.
These mailboxes are:
- Unread (all undread in all mailboxes)
- LastDay (last 24h of all mailboxes)
- LastWeek (last 7 days of all mailboxes)
...

The virtual mailboxes in general are working great. However, there is one 
annoying behavior I would like to fix.

If I define my virtual mailboxes like this:

namespace inbox {
  inbox = yes
  prefix = "Virtual/"
  separator = /
  location = "virtual:~/.emails_virtual:LAYOUT=fs"
  list = yes
  subscriptions = yes
}

All programs can work with this mailbox. However, the index are not kept in 
sync. Let's say I mark some emails as "read" in the "Unread" mailbox, then 
they will still be in "unread"-state in the LastDay and LastWeek mailboxes.

This is annoying. And there is a fix for it...

  location = "virtual:~/.emails_virtual:LAYOUT=fs:INDEX=MEMORY"

Once I set INDEX=MEMORY, the mailbox refresh happens instantly. Marking an 
email as "read" in the "Unread" mailbox will instantly set it as "read" in the 
other mailboxes as well.

However, many mail programs (mainly clients on OSX and iOS) have trouble and 
freak out with a refresh loop once I open these mailboxes. One client 
specifically complained about UID validity issues, which leads me to believe 
that UIDs are generated on the fly and are not stable when INDEX is set to 
MEMORY?

How can I keep my virtual mailboxes in sync? Shouldn't they stay in sync even 
when INDEX=MEMORY is *not* set? I tried to set INDEX to a directory - it 
didn't help.

Best Regards,
Stefan

Files:
- 15-mailboxes.conf: https://gist.github.com/e54d458ece16ad6f29b536fa840e99ec
- dovecot version: 2.2.31 (65cde28)
- OS: FreeBSD 11.0-RELEASE-p11

-- 
Stefan Hagen
@: post at herrhagen.de
T: +49 (0) 151 623 456 01
PGP: 0x8B8BD6DB


More information about the dovecot mailing list