Adding virtual folders to an existing dovecot installation
Hello dear dovecot mailinglist,
I am having a dovecot installation that is working so far (together with sieve and managesieve).
Now, I found the possibility to add a virtual folder to the server promising. I sort various mails using a per-user sieve script into subfolders. This works well on the latop but the mobile device does not like too many folders to check. So, I wanted to create a virtual inbox that holds all unread messages. I found this documentation: https://doc.dovecot.org/configuration_manual/virtual_plugin/
Now, I have first one question: When I use the virtual folder and read a message/mark it as read, will this be reflected on the underlaying folder or will it cause trouble on dovecot?
As far as I understand, usage of sieve filtering and the virtual plugin is considered critical as mentioned in the documentation. This is due to the fact, that the virtual mailboxes are read-only by default (unless a folder is prefixed with a !-symbol). Sieve will try to filter the virtual folder as well be default and moving a message to another folder will fail the read-only assumption.
Honestly, I do not get the content of https://doc.dovecot.org/ configuration_manual/virtual_plugin/#sieve-filters-with-virtual-mailboxes by 100%. The first paragraph indicates that sieve plus virtual mailboxes are a complete no-go, while the second indicates that a safe configuration is needed. Could someone please elaborate this a bit more?
I have not yet changed anything as I did not want blindly break my production mail system. The current (unaltered) configuration I will attach below.
Bonus question: Is it possible to restrict the effect of the virtual plugin to certain (virtual) user accounts?
Thank you very much Christian
# dovecot --version 2.3.13 (89f716dc2)
#dovecot -n
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.11.2-arch1-1 x86_64
# Hostname: server-hh.hh.lupus
auth_mechanisms = plain login
mail_location = maildir:~/Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext
namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Templates { auto = subscribe } mailbox Trash { auto = subscribe special_use = \Trash } prefix = }
passdb { args = scheme=PLAIN username_format=%n /home/.vmail/%d/etc/shadow driver = passwd-file } plugin { sieve = file:~/sieve;active=~/.dovecot.sieve stats_refresh = 30 secs stats_track_cmds = yes } protocols = imap lmtp sieve service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } } service stats { fifo_listener stats-mail { mode = 0600 user = vmail } } ssl = required ssl_cert = </etc/letsencrypt/live/dovecot/fullchain.pem ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM- SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA- AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128- SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128- SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256- SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS- AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256- SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128- SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:! MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_prefer_server_ciphers = yes userdb { args = uid=vmail gid=vmail home=/home/.vmail/%d/mails/%n driver = static } protocol lmtp { mail_plugins = " sieve" postmaster_address = postmaster@example.com } protocol lda { mail_plugins = " sieve" } protocol imap { mail_plugins = " old_stats" }
Il 06/05/21 15:11, Christian Wolf ha scritto:
Hello dear dovecot mailinglist,
Now, I have first one question: When I use the virtual folder and read a message/mark it as read, will this be reflected on the underlaying folder or will it cause trouble on dovecot? Will be reflected on original folder without trouble. Bonus question: Is it possible to restrict the effect of the virtual plugin to certain (virtual) user accounts? I tried with include Virtual folder configuration under "remote 1.2.3.4" but don't works.
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice
participants (2)
-
Alessio Cecchi
-
Christian Wolf