From 50df1556816e118b4bc449aaa7dfbab7a2ead626 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Tue, 10 Dec 2013 20:45:22 +0100 Subject: Enable IMAP virtual mailboxes. Using dovecot's 'virtual' plugin, cf. http://wiki2.dovecot.org/Plugins/Virtual The 'virtual/' namespace is visible in the NAMESPACE command (hidden=no), but not in LIST (list=no). This should ensure that the namespace isn't automatically synced by offlineimap, but nevertheless visible by roundcube, cf. http://trac.roundcube.net/ticket/1486796 http://mailman2.u.washington.edu/pipermail/imap-protocol/2010-May/001076.html --- roles/IMAP/files/etc/dovecot/conf.d/10-mail.conf | 6 +++--- roles/IMAP/files/etc/dovecot/conf.d/auth-ldap.conf.ext | 2 +- roles/IMAP/files/etc/dovecot/virtual/all/dovecot-virtual | 8 ++++++++ roles/IMAP/files/etc/dovecot/virtual/flagged/dovecot-virtual | 2 ++ roles/IMAP/files/etc/dovecot/virtual/recent/dovecot-virtual | 7 +++++++ roles/IMAP/files/etc/dovecot/virtual/unseen/dovecot-virtual | 8 ++++++++ 6 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 roles/IMAP/files/etc/dovecot/virtual/all/dovecot-virtual create mode 100644 roles/IMAP/files/etc/dovecot/virtual/flagged/dovecot-virtual create mode 100644 roles/IMAP/files/etc/dovecot/virtual/recent/dovecot-virtual create mode 100644 roles/IMAP/files/etc/dovecot/virtual/unseen/dovecot-virtual (limited to 'roles/IMAP/files/etc/dovecot') diff --git a/roles/IMAP/files/etc/dovecot/conf.d/10-mail.conf b/roles/IMAP/files/etc/dovecot/conf.d/10-mail.conf index 48e2c46..2c5f34f 100644 --- a/roles/IMAP/files/etc/dovecot/conf.d/10-mail.conf +++ b/roles/IMAP/files/etc/dovecot/conf.d/10-mail.conf @@ -27,7 +27,7 @@ # # # -mail_location = mdbox:/home/mail/mailboxes/%d/%n +mail_location = mdbox:~/mail # If you need to set multiple mailbox locations or want to change default # namespace settings, you can do it by defining namespace sections. @@ -80,9 +80,9 @@ namespace inbox { namespace virtual { prefix = virtual/ separator = / - location = virtual:/home/mail/virtual/%d/%n + location = virtual:/etc/dovecot/virtual:INDEX=~/virtual list = no - hidden = yes + hidden = no } # Example shared namespace configuration diff --git a/roles/IMAP/files/etc/dovecot/conf.d/auth-ldap.conf.ext b/roles/IMAP/files/etc/dovecot/conf.d/auth-ldap.conf.ext index 542353b..8e88b27 100644 --- a/roles/IMAP/files/etc/dovecot/conf.d/auth-ldap.conf.ext +++ b/roles/IMAP/files/etc/dovecot/conf.d/auth-ldap.conf.ext @@ -33,5 +33,5 @@ userdb { driver = static # The MTA has already verified the existence of users when doing alias resolution, # so we can skip the passdb lookup here. - args = home=/home/mail/mailboxes/%d/%n allow_all_users=yes + args = home=/home/mail/%d/%n allow_all_users=yes } diff --git a/roles/IMAP/files/etc/dovecot/virtual/all/dovecot-virtual b/roles/IMAP/files/etc/dovecot/virtual/all/dovecot-virtual new file mode 100644 index 0000000..98e5192 --- /dev/null +++ b/roles/IMAP/files/etc/dovecot/virtual/all/dovecot-virtual @@ -0,0 +1,8 @@ +!INBOX +-JUNK +-JUNK/* +-SPAM +-SPAM/* +-TRASH +* + all diff --git a/roles/IMAP/files/etc/dovecot/virtual/flagged/dovecot-virtual b/roles/IMAP/files/etc/dovecot/virtual/flagged/dovecot-virtual new file mode 100644 index 0000000..883f49e --- /dev/null +++ b/roles/IMAP/files/etc/dovecot/virtual/flagged/dovecot-virtual @@ -0,0 +1,2 @@ +* + flagged diff --git a/roles/IMAP/files/etc/dovecot/virtual/recent/dovecot-virtual b/roles/IMAP/files/etc/dovecot/virtual/recent/dovecot-virtual new file mode 100644 index 0000000..9c9a7e8 --- /dev/null +++ b/roles/IMAP/files/etc/dovecot/virtual/recent/dovecot-virtual @@ -0,0 +1,7 @@ +-JUNK +-JUNK/* +-SPAM +-SPAM/* +-TRASH +* + YOUNGER 2592000 diff --git a/roles/IMAP/files/etc/dovecot/virtual/unseen/dovecot-virtual b/roles/IMAP/files/etc/dovecot/virtual/unseen/dovecot-virtual new file mode 100644 index 0000000..c5c09fc --- /dev/null +++ b/roles/IMAP/files/etc/dovecot/virtual/unseen/dovecot-virtual @@ -0,0 +1,8 @@ +-DRAFTS +-JUNK +-JUNK/* +-SPAM +-SPAM/* +-TRASH +* + unseen -- cgit v1.2.3