Robert L Mathews
2019-Dec-17 19:20 UTC
Is there a way to hide the top level virtual IMAP folder when using the virtual plugin?
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
Robert L Mathews
2019-Dec-24 17:46 UTC
Is there a way to hide the top level virtual IMAP folder when using the virtual plugin?
As a quick followup to this, I didn't receive any replies to the message below, so I'm assuming it's currently impossible to "mix" virtual folders in with "real" top level folders at the top level of the IMAP hierarchy. If I'm wrong, a pointer to how to do so would be much appreciated! On 12/17/19 11:20 AM, Robert L Mathews wrote:> 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, Tiger Technologies, http://www.tigertech.net/