Dovecot 2.3.13 virtual mailboxes subscription problem
Hi,
by discussion on IRC channel is post details here.
I am using virtual plugin in dovecot 2.3.13 and i have porblems with subsription to these virtual mailboxes. I can setup autosubscribe to them and it works as expected. I can SUBSCRIBE to them, dovecot returns OK and they are added in subscriptions file, but then they are not shown in LSUB output. I can UNSUBSCRIBE from subscribed virtual mailbox (dovecot returns OK), but it is not removed from subscriptions file and remains there...
I bother with this for long time. I tried to setup mailboxes without UTF-8 chars, but that doesn't matter nad currently problematic mailbox has not any nonASCII char (Virtual.Dnes). I tried to define mailboxes in parent namespace too, doesn't help, nor defining only Virtual in parent namespace (with and without separator at end). Some evidence follows.
The (my) subscriptions file (the Virtual.Dnes is at end):
V 2
<snip> Virtual Dnes
IMAP LIST (only Virtual namespace), as shown by dovecot's imap command:
- PREAUTH [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY METADATA SPECIAL-USE QUOTA ACL RIGHTS=texk] Logged in as slavko@slavino.sk <snip>
- LIST (\Noselect \HasChildren) "." Virtual
- LIST (\HasNoChildren) "." Virtual.Dnes
- LIST (\HasNoChildren) "." Virtual.D&APQ-le&AX4-it&AOk-
- LIST (\HasNoChildren) "." Virtual.Pr&AO0-lohy
- LIST (\Noselect \HasChildren) "." Verejn&AOk-
- LIST (\HasNoChildren \UnMarked) "." Verejn&AOk-.Novinky . OK List completed (0.004 + 0.000 + 0.003 secs).
One can see that there are three virtual mailboxes, the Virtual.Dnes, the Virtual.Dôležité (encoded) and the Virtual.Prílohy (encoded too), including Virtual namespace.
IMAP LSUB output (again only Virtual namespace):
- PREAUTH [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY METADATA SPECIAL-USE QUOTA ACL RIGHTS=texk] Logged in as slavko@slavino.sk <snip>
- LSUB () "." Virtual.D&APQ-le&AX4-it&AOk-
- LSUB () "." Virtual.Pr&AO0-lohy a OK Lsub completed (0.001 + 0.000 secs).
As one can see, there are only auto-subscribed Virtual mailboxes, the Virtual.Dnes is missing, despite that it is in subscriptions file.
The doveconf -n output (can be wrapped):
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.13 (cdd19fe3) # OS: Linux 4.19.0-20-amd64 x86_64 Debian 10.12 # Hostname: servac.skk auth_default_realm = slavino.sk auth_mechanisms = plain login auth_policy_check_after_auth = no auth_policy_hash_nonce = # hidden, use -P to show it auth_policy_server_timeout_msecs = 5500 auth_policy_server_url = http://127.0.0.1:9090/ auth_verbose = yes first_valid_uid = 130 imap_idle_notify_interval = 15 mins imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} hdr_count=%{fetch_hdr_count} hdr_bytes=%{fetch_hdr_bytes} body_count=%{fetch_body_count} body_bytes=%{fetch_body_bytes} autoexp=%{autoexpunged} last_valid_uid = 130 lda_original_recipient_header = Envelope-to lmtp_add_received_header = no lmtp_hdr_delivery_address = none lmtp_rcpt_check_quota = yes lmtp_save_to_detail_mailbox = yes login_trusted_networks = 127.0.0.1 ::1 mail_attachment_detection_options = add-flags no-flags-on-fetch exclude-inlined content-type=!application/*-signature content-type=!application/pgp-keys mail_attribute_dict = file:%h/dovecot-attributes mail_home = /srv/vmail/%Ln mail_location = maildir:~/Maildir mail_plugins = " acl fts fts_xapian notify quota virtual quota_clone" mail_privileged_group = mail mail_server_admin = mailto:postmaster@slavino.sk mail_vsize_bg_after_count = 100 mailbox_list_index_very_dirty_syncs = yes maildir_very_dirty_syncs = yes 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 vnd.dovecot.report imapsieve vnd.dovecot.imapsieve metric imap_cmd { fields = bytes_in bytes_out filter = event=imap_command_finished } metric imap_cmdbad { filter = event=imap_command_finished AND tagged_reply_state=BAD } metric imap_cmdno { filter = event=imap_command_finished AND tagged_reply_state=NO } metric imap_cmdok { filter = event=imap_command_finished AND tagged_reply_state=OK } metric mail_deliv { fields = message_size filter = event=mail_delivery_finished } metric push_notif { filter = event=push_notification_finished } metric sieve_actions { filter = event=sieve_action_finished } metric sieve_scrrun { filter = event=sieve_runtime_script_finished } namespace Virtual { list = yes location = virtual:/usr/local/etc/vmail/virtual:INDEX=~/virtual:UTF-8 mailbox Dôležité { auto = subscribe } mailbox Dnes { auto = no } mailbox Prílohy { auto = subscribe } prefix = Virtual. separator = . subscriptions = no } namespace inbox { inbox = yes location = mailbox Archive { auto = create special_use = \Archive } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } mailbox Verejné.Novinky { auto = subscribe } prefix = separator = . } namespace pub { ignore_on_failure = yes location = maildir:/srv/vmail-public:INDEXPVT=~/public:UTF-8 prefix = Verejné. separator = . subscriptions = no type = public } namespace share { list = children location = maildir:%%h/Maildir:INDEXPVT=~/shared/%%u prefix = Zdieľané.%%u. separator = . subscriptions = no type = shared } passdb { args = username_format=%Ln /usr/local/etc/vmail/passwd.%{if;%Ls;eq;smtp;%Ls;empty} auth_verbose = no driver = passwd-file } passdb { args = username_format=%Ln scheme=ssha256 /usr/local/etc/vmail/passwd driver = passwd-file } plugin { acl = vfile:/etc/dovecot/dovecot-acl acl_shared_dict = file:/usr/local/etc/vmail/shared/shared-mailboxes.db fts = xapian fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Drafts fts_autoindex_exclude4 = Junk fts_autoindex_exclude5 = Trash fts_autoindex_exclude6 = Drafts fts_autoindex_exclude7 = Sent fts_autoindex_exclude8 = Verejné.* fts_autoindex_exclude9 = Virtual.* fts_autoindex_max_recent_msgs = 99 fts_decoder = decode2text fts_enforced = yes fts_index_timeout = 90s fts_xapian = partial=2 full=20 attachments=1 verbose=0 imapsieve_mailbox1_before = file:/usr/local/etc/vmail/sieve/imap/trash-seen.sieve imapsieve_mailbox1_causes = COPY APPEND imapsieve_mailbox1_name = Trash imapsieve_mailbox2_before = file:/usr/local/etc/vmail/sieve/imap/report-spam.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_name = Junk imapsieve_mailbox3_before = file:/usr/local/etc/vmail/sieve/imap/report-ham.sieve imapsieve_mailbox3_causes = COPY imapsieve_mailbox3_from = Junk imapsieve_mailbox3_name = * mail_log_cached_only = yes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename append mail_log_fields = uid box msgid size quota = count:User quota quota_clone_dict = redis:host=127.0.0.1:port=6379:prefix=dovec/:expire_secs=2592000 quota_exceeded_message = Mailbox is full quota_grace = 50M quota_max_mail_size = 50M quota_rule = *:storage=3G quota_rule2 = Trash:storage=+50M quota_rule3 = Junk:storage=+100M quota_rule4 = Sent:storage=+100M quota_vsizes = true sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /usr/local/etc/vmail/sieve/before.d/spam-move.sieve sieve_global_extensions = +vnd.dovecot.filter +vnd.dovecot.execute sieve_implicit_extensions = +vnd.dovecot.report sieve_max_redirects = 0 sieve_plugins = sieve_imapsieve sieve_extprograms } protocols = " imap lmtp sieve pop3" quota_full_tempfail = yes service anvil { unix_listener anvil { group = $default_internal_group mode = 0660 } } service auth { unix_listener auth-client { mode = 0666 } } service decode2text { executable = script /usr/lib/dovecot/decode2text.sh unix_listener decode2text { group = vmail mode = 0660 } user = vmail } service imap-login { inet_listener imap { address = 127.0.0.1 ::1 } process_min_avail = 2 service_count = 100 unix_listener imap { group = www-data mode = 0660 } } service indexer-worker { vsz_limit = 2 G } service lmtp { executable = lmtp -L inet_listener lmtp { address = 127.0.0.1 ::1 port = 24 } unix_listener lmtp { group = Debian-exim mode = 0660 } user = vmail } service managesieve-login { service_count = 100 vsz_limit = 64 M } service managesieve { process_limit = 256 } service pop3-login { inet_listener pop3 { port = 0 } service_count = 100 } service quota-status { client_limit = 1 executable = quota-status -p postfix unix_listener quota-status { group = Debian-exim mode = 0660 } } service stats { unix_listener stats-reader { group = $default_internal_group mode = 0660 } } ssl_cert = </etc/letsencrypt/live/slavino.sk/fullchain.pem ssl_cipher_list = HIGH:!kRSA:!SRP:!PSK:!DH:!eNULL:!aNULL:!SHA1:!CAMELLIA:+AESGCM:+AES256:+SHA256:+SHA384:+AES128:+AES256 ssl_client_ca_dir = /etc/ssl/certs ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 ssl_prefer_server_ciphers = yes submission_host = 127.0.0.1:25 userdb { args = username_format=%Ln /usr/local/etc/vmail/passwd default_fields = uid=vmail gid=vmail driver = passwd-file } verbose_proctitle = yes protocol lmtp { info_log_path = /var/log/dovecot/lmtp.log log_path = /var/log/dovecot/lmtp-errors.log mail_plugins = " acl fts fts_xapian notify quota virtual quota_clone push_notification sieve" } protocol imap { imap_metadata = yes mail_plugins = " acl fts fts_xapian notify quota virtual quota_clone imap_quota imap_sieve imap_acl" namespace inbox { location = mailbox Drafts { autoexpunge = 4 weeks } mailbox Junk { autoexpunge = 2 weeks } mailbox Sent { autoexpunge = 60 days } mailbox Trash { autoexpunge = 4 weeks autoexpunge_max_mails = 1000 } prefix = } } protocol sieve { managesieve_implementation_string = Dovecot Pigeonhole } protocol pop3 { mail_plugins = " acl fts fts_xapian notify quota virtual quota_clone" } local_name servac.slavino.org { ssl_cert = </etc/letsencrypt/live/slavino.org/fullchain.pem ssl_key = # hidden, use -P to show it } local_name servac.skk { ssl_cert = </etc/dovecot/private/servac.pem ssl_key = # hidden, use -P to show it }
If you need something more, be free to contact me...
regards
-- Slavko https://www.slavino.sk
On 03/04/2022 16:12 Slavko <linux@slavino.sk> wrote:
Hi,
by discussion on IRC channel is post details here.
I am using virtual plugin in dovecot 2.3.13 and i have porblems with subsription to these virtual mailboxes. I can setup autosubscribe to them and it works as expected. I can SUBSCRIBE to them, dovecot returns OK and they are added in subscriptions file, but then they are not shown in LSUB output. I can UNSUBSCRIBE from subscribed virtual mailbox (dovecot returns OK), but it is not removed from subscriptions file and remains there...
I bother with this for long time. I tried to setup mailboxes without UTF-8 chars, but that doesn't matter nad currently problematic mailbox has not any nonASCII char (Virtual.Dnes). I tried to define mailboxes in parent namespace too, doesn't help, nor defining only Virtual in parent namespace (with and without separator at end). Some evidence follows.
<snip/>
Can you try to reproduce this issue with 2.3.18? I am not able to reproduce this with latest 2.3 release.
-- Slavko https://www.slavino.sk
Aki
participants (2)
-
Aki Tuomi
-
Slavko