Is there a way to hide the top level virtual IMAP folder when using the virtual plugin?

Robert L Mathews lists at tigertech.com
Tue Dec 17 21:20:17 EET 2019


I'm experimenting with the Virtual plugin to give users access to
folders like "All Mail", "Recent" and so on, similar to Gmail.

Something like this works properly:

  mail_location = maildir:~/
  namespace {
    inbox = yes
    location =
    prefix = INBOX.
    separator = .
    type = private
  }
  namespace {
    prefix = INBOX.virtual.
    separator = .
    location = virtual:virtual
    list = children
    ignore_on_failure = yes
  }

I can then create "virtual/All Mail/dovecot-virtual" and
"virtual/Recent/dovecot-virtual" in the maildir directory, and it works.

However, when accessed using IMAP, an IMAP folder named "virtual" shows
in the folder hierarchy, with "All Mail" and "Recent" descended from
"virtual". It looks like:

INBOX
  Drafts
  Sent
  Trash
  virtual
    All Mail
    Recent

I'd prefer the virtual folders to be a level up the hierarchy without
the "virtual" parent visible, like:

INBOX
  All Mail
  Drafts
  Recent
  Sent
  Trash

Is that possible?

I've tried changing the "prefix = INBOX.virtual." on the virtual
namespace to just "prefix = INBOX.", but that causes a "Duplicate
namespace prefix" error.

I also tried using "alias_for" to merge the namespaces, but that causes
"namespace configuration error: Namespace virtual. can't have
alias_for=INBOX. to a different storage type (virtual vs maildir)".

-- 
Robert L Mathews


More information about the dovecot mailing list