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 at 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 at 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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: Digit??lny podpis OpenPGP
URL:
<https://dovecot.org/pipermail/dovecot/attachments/20220403/065fc98d/attachment.sig>