I?ve created virtual mailboxes in dovecot, and they show up in various clients, but the folders contain no messages. (I will get an ?empty? folder icon named ?@virtual? and an empty folder icon named ?month? inside it. Is there a way I can verify what dovecot THINKS should be in the virtual folder via doveadm? <https://www.dropbox.com/s/hd4wnjrs3y5iswi/Screenshot%202018-03-06%2011.38.25.png?dl=0> # cat /usr/local/etc/dovecot/virtual/month/dovecot-vitual # ~/Maildir/virtual/month/dovecot-virtual * all younger 2678400 # doveconf -n # 2.2.33.2 (d6601f4ec): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.4.21 (92477967) # OS: FreeBSD 11.1-RELEASE-p4 i386 auth_failure_delay = 5 secs auth_mechanisms = PLAIN LOGIN default_client_limit = 4096 default_process_limit = 1024 default_vsz_limit = 768 M disable_plaintext_auth = no first_valid_uid = 89 imap_id_log = * lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes login_log_format_elements = user=<%u> %r %m %c mail_location = maildir:~/Maildir mail_max_userip_connections = 90 mail_plugins = " virtual" 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 imapsieve vnd.dovecot.imapsieve namespace { location = virtual:/usr/local/etc/dovecot/virtual:INDEX=~/Maildir/virtual:CONTROL=~/Maildir/virtual prefix = @virtual. separator = . } namespace inbox { inbox = yes location = mailbox Archive { auto = subscribe special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { driver = pam username_filter = !*@* } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Junk imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk imapsieve_mailbox2_name = * sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms } protocols = imap pop3 service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } } service imap-login { inet_listener imaps { port = 993 ssl = yes } } service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } } ssl_cert = </path/to/fullchain.pem ssl_key = # hidden, use -P to show it ssl_protocols = !SSLv2 !SSLv3 userdb { driver = passwd } userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext default_fields = uid=vpopmail gid=vchkpw mail_location=/usr/local/virtual/%u mail=maildir:/usr/local/virtual/%u driver = sql } protocol imap { mail_plugins = " virtual imap_sieve" }
Hi there! I've had success using "doveadm mailbox list" to verify that my virtual mailboxes are showing up, and using "doveadm search mailbox $VIRTUAL_MAILBOX" to print out which mails are in a folder. -Rob On Tue, 6 Mar 2018 11:40:13 -0700 "@lbutlr" <kremels at kreme.com> wrote:> I?ve created virtual mailboxes in dovecot, and they show up in > various clients, but the folders contain no messages. (I will get an > ?empty? folder icon named ?@virtual? and an empty folder icon named > ?month? inside it. Is there a way I can verify what dovecot THINKS > should be in the virtual folder via doveadm? > > <https://www.dropbox.com/s/hd4wnjrs3y5iswi/Screenshot%202018-03-06%2011.38.25.png?dl=0> > > # cat /usr/local/etc/dovecot/virtual/month/dovecot-vitual > # ~/Maildir/virtual/month/dovecot-virtual > * > all younger 2678400 > > # doveconf -n > # 2.2.33.2 (d6601f4ec): /usr/local/etc/dovecot/dovecot.conf > # Pigeonhole version 0.4.21 (92477967) > # OS: FreeBSD 11.1-RELEASE-p4 i386 > auth_failure_delay = 5 secs > auth_mechanisms = PLAIN LOGIN > default_client_limit = 4096 > default_process_limit = 1024 > default_vsz_limit = 768 M > disable_plaintext_auth = no > first_valid_uid = 89 > imap_id_log = * > lda_mailbox_autocreate = yes > lda_mailbox_autosubscribe = yes > login_log_format_elements = user=<%u> %r %m %c > mail_location = maildir:~/Maildir > mail_max_userip_connections = 90 > mail_plugins = " virtual" > 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 imapsieve vnd.dovecot.imapsieve namespace { location > virtual:/usr/local/etc/dovecot/virtual:INDEX=~/Maildir/virtual:CONTROL=~/Maildir/virtual > prefix = @virtual. separator = . } namespace inbox { > inbox = yes > location = > mailbox Archive { > auto = subscribe > special_use = \Archive > } > mailbox Drafts { > special_use = \Drafts > } > mailbox Junk { > auto = subscribe > special_use = \Junk > } > mailbox Sent { > special_use = \Sent > } > mailbox Trash { > special_use = \Trash > } > prefix = > } > passdb { > driver = pam > username_filter = !*@* > } > passdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > imapsieve_mailbox1_before > file:/usr/lib/dovecot/sieve/report-spam.sieve > imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Junk > imapsieve_mailbox2_before > file:/usr/lib/dovecot/sieve/report-ham.sieve > imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk > imapsieve_mailbox2_name = * > sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment > sieve_pipe_bin_dir = /usr/lib/dovecot/sieve > sieve_plugins = sieve_imapsieve sieve_extprograms > } > protocols = imap pop3 > service auth { > unix_listener /var/spool/postfix/private/auth { > mode = 0666 > } > } > service imap-login { > inet_listener imaps { > port = 993 > ssl = yes > } > } > service pop3-login { > inet_listener pop3 { > port = 0 > } > inet_listener pop3s { > port = 995 > ssl = yes > } > } > ssl_cert = </path/to/fullchain.pem > ssl_key = # hidden, use -P to show it > ssl_protocols = !SSLv2 !SSLv3 > userdb { > driver = passwd > } > userdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > default_fields = uid=vpopmail gid=vchkpw > mail_location=/usr/local/virtual/%u > mail=maildir:/usr/local/virtual/%u driver = sql } > protocol imap { > mail_plugins = " virtual imap_sieve" > } > >
-- You only had to look into Teatime's mismatched eyes to know one thing, which was this: if Teatime wanted to find you he would not look everywhere. He'd look in only one place, which would be the place where you were hiding. --Hogfather> On 06 Mar 2018, at 13:13, Rob Hoelz <rob+dovecot at hoelz.ro> wrote: > > I've had success using "doveadm mailbox list?# doveadm mailbox list -u kremels Archive Drafts Junk ... @virtual @virtual.day @virtual.month INBOX So far so good.> and using "doveadm search mailbox $VIRTUAL_MAILBOX?# doveadm search mailbox "@virtual.day" -u kremels # Hmm? # doveadm search mailbox "INBOX" -u kremels e0fc6a3557f62158c111000021d1a38d 83 e0fc6a3557f62158c111000021d1a38d 84 e0fc6a3557f62158c111000021d1a38d 85 e0fc6a3557f62158c111000021d1a38d 86 e0fc6a3557f62158c111000021d1a38d 89 e0fc6a3557f62158c111000021d1a38d 90 e0fc6a3557f62158c111000021d1a38d 91 e0fc6a3557f62158c111000021d1a38d 92 e0fc6a3557f62158c111000021d1a38d 93 e0fc6a3557f62158c111000021d1a38d 94 e0fc6a3557f62158c111000021d1a38d 95 e0fc6a3557f62158c111000021d1a38d 96 e0fc6a3557f62158c111000021d1a38d 97 e0fc6a3557f62158c111000021d1a38d 98 e0fc6a3557f62158c111000021d1a38d 99 Do the dovecot-vitual files require certain permissions? They are 644 and owned by root:wheel I don?t see any errors on starting dovecot.
(Sorry for posting with the sig first, I thought I?d fixed that) On 06 Mar 2018, at 13:13, Rob Hoelz <rob+dovecot at hoelz.ro> wrote:> I've had success using "doveadm mailbox list?? # doveadm search mailbox "@virtual.day" -u kremels # ?
On 2018-03-06 (11:40 MST), @lbutlr <kremels at kreme.com> wrote:> > I?ve created virtual mailboxes in dovecot, and they show up in various clients, but the folders contain no messages. (I will get an ?empty? folder icon named ?@virtual? and an empty folder icon named ?month? inside it. Is there a way I can verify what dovecot THINKS should be in the virtual folder via doveadm? > > <https://www.dropbox.com/s/hd4wnjrs3y5iswi/Screenshot%202018-03-06%2011.38.25.png?dl=0> > > # cat /usr/local/etc/dovecot/virtual/month/dovecot-vitual > # ~/Maildir/virtual/month/dovecot-virtual > * > all younger 2678400 > > namespace { > location = virtual:/usr/local/etc/dovecot/virtual:INDEX=~/Maildir/virtual:CONTROL=~/Maildir/virtual > prefix = @virtual. > separator = . > }I have played around with this quite a bit, and all I get is an empty virtual mailbox. I've renamed the prefix to "virtual." "v." and "smart." with no change in behavior, the mailbox name changes, but no messages show up. The file /usr/local/etc/dovecot/virtual/month/dovecot-vitual is owned by root and has permissions 644 as does the file /usr/local/etc/dovecot/virtual/week/dovecot-vitual. I've even tried creating a milder in the home folder matching the name of the virtual prefix, though I did not expect that to work. I reloaded and restarted dovecot many times. Regardless of settings, doveadm shows no messages in the virtual mailboxes, though they do who up in # doveadm mailbox list -u kremels @virtual @virtual.day @virtual.month # doveadm search mailbox "@virtua" -u kremels doveadm(kremels): Error: Couldn't get mailbox '@virtua' GUID: Mailbox doesn't exist: @virtua # doveadm search mailbox "@virtual" -u kremels # doveadm search mailbox "@virtual.day" -u kremels # So, doveadm certainly knows the mailboxes are there, they just don't have messages in them. I'm at a loss as to what to check next as it seems the paths and permissions to the dovecot-virtual files must be OK, since they are being read to create the virtual folders. So, i assume I have something wrong gin the content, but * all younger <number of seconds> Is straight out of the documentation. -- Si Hoc Legere Scis Nimium Eruditionis Habes