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/