[Dovecot] namespace and list=children inconsistencies
Hi, after setting up a new Dovecot server with shared and public namespaces, both with hidden=no and list=children, I see some inconsistency in the folder listing. . NAMESPACE * NAMESPACE (("" "/")) (("Shared/" "/")) (("Public/" "/")) . OK Namespace completed. . LIST "" * * LIST (\HasNoChildren) "/" "INBOX" * LIST (\Noselect \HasChildren) "/" "Shared/u...@do.main" * LIST (\HasNoChildren) "/" "Shared/u...@do.main/INBOX" * LIST (\HasChildren) "/" "Public" . OK List completed. . LIST "Shared/" * * LIST (\Noselect \HasChildren) "/" "Shared/u...@do.main" . OK List completed. . LIST "Public/" * . OK List completed. With LIST "Shared/" the other users INBOX is missing, so with namespace capable clients like Thunderbird it is impossible to see or subscribe this folder. The "Public/" namespace has some subfolders, but only for other acl_groups and I don't have rights to access any of them. So the LIST "Public/" looks good. However, with LIST "" * it is shown without the trailing slash and with \HasChildren where it should be hidden. Here is the relevant doveconf -n output: ... namespace { list = children location = maildir:%%h/Maildir:INDEX=~/shared/%%u prefix = Shared/%%u/ separator = / subscriptions = no type = shared } namespace { list = children location = cydir:/var/spool/imap/public:INDEX=~/public prefix = Public/ separator = / subscriptions = no type = public } ...
Re: [Dovecot] namespace and list=children inconsistencies
Am 16.12.2010 13:39, schrieb Charles Marcus: > On 2010-12-15 7:38 PM, Holger Mauermann wrote: >> Here is the relevant doveconf -n output: >> ... > > Please always include *full* doveconf -n output, not just what you > *think* is relevant... its not that much more, and includes extra info > that people sometimes forget - like dovecot version (and filesystem, etc)... You're right, I forgot at least to include the dovecot version ;-) Here is the full doveconf -n output: # 2.0.8: /etc/dovecot/dovecot.conf # OS: Linux 2.6.35-23-virtual x86_64 Ubuntu 10.10 auth_mechanisms = plain login digest-md5 cram-md5 apop debug_log_path = /var/log/dovecot/debug.log disable_plaintext_auth = no info_log_path = /var/log/dovecot/info.log lmtp_save_to_detail_mailbox = yes log_path = /var/log/dovecot/error.log mail_location = maildir:~/Maildir mail_plugins = " quota acl listescape zlib lazy_expunge" namespace { hidden = yes list = no location = maildir:~/expunged prefix = .EXPUNGED/ separator = / type = private } namespace { list = children location = maildir:%%h/Maildir:INDEX=~/shared/%%u prefix = Shared/%%u/ separator = / subscriptions = no type = shared } namespace { list = no location = cydir:/var/spool/imap/public:INDEX=~/public prefix = Public/ separator = / subscriptions = no type = public } namespace { inbox = yes location = prefix = separator = / type = private } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = file:/var/spool/imap/shared-mailboxes.dict lazy_expunge = .EXPUNGED/ quota = dict:Mailbox::file:%h/Maildir/dovecot-quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=+50M sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = imap pop3 sieve service auth { unix_listener auth-exim { user = Debian-exim } unix_listener auth-userdb { user = vmail } } service lmtp { inet_listener lmtp { port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lmtp { mail_plugins = " quota acl listescape zlib lazy_expunge sieve" } protocol lda { mail_plugins = " quota acl listescape zlib lazy_expunge sieve" } protocol imap { mail_plugins = " quota acl listescape zlib lazy_expunge imap_quota imap_acl imap_zlib" }
Re: [Dovecot] namespace and list=children inconsistencies
Am 16.12.2010 01:38, schrieb Holger Mauermann: > With LIST "Shared/" the other users INBOX is missing, so with namespace > capable clients like Thunderbird it is impossible to see or subscribe > this folder. After restarting Thunderbird now I can see and subscribe the other users INBOX. However, I still think that a "LIST Shared/ *" should include *all* sub mailboxes. Or am I wrong? > The "Public/" namespace has some subfolders, but only for other > acl_groups and I don't have rights to access any of them. So the LIST > "Public/" looks good. However, with LIST "" * it is shown without the > trailing slash and with \HasChildren where it should be hidden. I found a solution for this annoying "Public/" namespace vs. nonexistent "Public" mailbox behavior: I'm trying to setup per-domain public folders. First I used location=cydir:/path/%d/public:..., but Dovecot doesn't expand the %d variable inside type=public namespaces. Next I used location=cydir:/path/public:... and created /path/public/do.main and a dovecot-acl file inside with content "group=do.main lrswi". This works fine for users with the acl_groups=do.main extra field, they see their Public/ namespace. But users without a group or users in a group for that no public folder exists are wondering why they see a "Public" mailbox, which gives an error on select or subscribe... Now I return CONCAT('cydir:/path/', `domain`, '/public:INDEX=~/public') AS `namespace/pub/location` in the user_query, which works fine for all users in all domains :-) as long as there is either no subfolder or a subfolder/dovecot-acl with "anyone lrs" in /path/do.main/public. Holger
Re: [Dovecot] namespace and list=children inconsistencies
Am 17.12.2010 01:35, schrieb Willie Gillespie: > Eh, hard to say. > > From RFC 3501: > ... A non-empty > reference name argument is the name of a mailbox or a level of > mailbox hierarchy, and indicates the context in which the mailbox > name is interpreted. > > But, later on it says: > Note: The interpretation of the reference argument is > implementation-defined. I really should read RFC 3501 completely. It's been many years since I tried to understand the now obsolete RFC 2060 ;-) I always thought that LIST "some/mail/box/" "*" LIST "" "some/mail/box/*" LIST "some/mail/" "box/*" are all equivalent. > and: > A client SHOULD NOT use such a reference argument except > at the explicit request of the user. Hmmm, but this paragraph starts with: If the reference argument is not a level of mailbox hierarchy (that is, it is a \NoInferiors name), and/or the reference argument does not end with the hierarchy delimiter, it is implementation-dependent how this is interpreted. ... A client SHOULD NOT use such a reference argument except at the explicit request of the user. So Shared/ seems to be a valid reference argument that may be used by clients, because it is a level of mailbox hierarchy, it is not a \NoInferiors name and it ends with the hierarchy delimiter. Anyway, it works now. Thunderbird always uses "" as reference argument to list the shared namespace. And for LIST "" "Shared/*" dovecot returns all sub mailboxes. However, I still don't know why TB first displayed only Shared/u...@do.main without the shared mailboxes... Holger
Re: [Dovecot] stat(/..../Maildir/cur) failed: No such file or directory
Am 19.12.2010 08:02, schrieb Lystopad Olexandr: > ... > mail_location = maildir:~/Maildir > ... > user_query = SELECT homedir as home, uid, gid, maildir as mail FROM accounts > WHERE login = '%u'; > ... > Dec 19 08:50:05 server dovecot: lda: Debug: auth input: 3m...@somedomain.priv > home=/d/mail/somedomain.priv/3mail uid=26 gid=26 > mail=/d/mail/somedomain.priv/3mail/Maildir Have you tried SELECT homedir as home, uid, gid FROM accounts WHERE login = '%u' in your user_query? If mail_location is the same for all users you don't need to override it with "SELECT ... maildir as mail...". But if you do you have to prefix it with the mailbox format. Holger
Re: [Dovecot] v2.0.9 released
Am 13.01.2011 12:21, schrieb Timo Sirainen: > I'm still lagging behind in my email, but I guess it's time to release > v2.0.9 anyway. > ... > - Maildir: Fixed renaming child mailboxes when namespace had a prefix. Renaming a mailbox that has children still doesn't work for me with v2.0.9 Any ideas? . CREATE mailbox . OK Create completed. . CREATE "mailbox/sub mailbox" . OK Create completed. . LIST "" * * LIST (\HasChildren) "/" "mailbox" * LIST (\HasNoChildren) "/" "mailbox/sub mailbox" . OK List completed. . RENAME mailbox mail-box . NO [SERVERBUG] Internal error occurred. Refer to server log for more information. [2011-01-13 17:48:15] . LIST "" * * LIST (\HasNoChildren) "/" "mail-box" * LIST (\HasNoChildren) "/" "mailbox/sub mailbox" . OK List completed. # cat /var/log/mail.err Jan 13 17:48:15 dovecot dovecot: imap(u...@do.main): Error: rename(/var/spool/imap/do.main/user/Maildir/.mailbox/sub mailbox, /var/spool/imap/do.main/user/Maildir/.mail-box/sub mailbox) failed: No such file or directory # ls -alF /var/spool/imap/do.main/user/Maildir/ drwx-- 5 vmail vmail 4096 2011-01-13 17:47 .mail-box/ drwx-- 5 vmail vmail 4096 2011-01-13 17:47 .mailbox.sub mailbox/ Holger
Re: [Dovecot] v2.0.9 released
Am 13.01.2011 18:58, schrieb Timo Sirainen: > On 13.1.2011, at 19.20, Holger Mauermann wrote: > >> Renaming a mailbox that has children still doesn't work for me with >> v2.0.9 Any ideas? > > I can't reproduce. Show your dovecot -n output? Here it is: # 2.0.9: /etc/dovecot/dovecot.conf # OS: Linux 2.6.35-24-virtual x86_64 Ubuntu 10.10 auth_mechanisms = plain login digest-md5 cram-md5 apop disable_plaintext_auth = no lmtp_save_to_detail_mailbox = yes mail_location = maildir:~/Maildir mail_plugins = " quota acl listescape zlib lazy_expunge" 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 namespace { hidden = yes list = no location = maildir:~/expunged prefix = .EXPUNGED/ separator = / type = private } namespace { list = children location = maildir:%%h/Maildir:INDEX=~/shared/%%u prefix = Shared/%%u/ separator = / subscriptions = no type = shared } namespace { list = children location = maildir:/var/spool/imap/public:INDEX=~/public prefix = Public/ separator = / subscriptions = no type = public } namespace { inbox = yes location = prefix = separator = / type = private } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = file:/var/spool/imap/shared-mailboxes.dict lazy_expunge = .EXPUNGED/ quota = dict:Mailbox::file:%h/Maildir/dovecot-quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=+50M sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = imap pop3 sieve rejection_subject = Mail delivery failed: %s service auth { unix_listener auth-exim { user = Debian-exim } unix_listener auth-userdb { user = vmail } } service lmtp { inet_listener lmtp { port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } ssl_cert =
Re: [Dovecot] v2.0.9 released
Am 13.01.2011 19:42, schrieb Holger Mauermann: > Am 13.01.2011 18:58, schrieb Timo Sirainen: >> On 13.1.2011, at 19.20, Holger Mauermann wrote: >> >>> Renaming a mailbox that has children still doesn't work for me with >>> v2.0.9 Any ideas? >> >> I can't reproduce. Show your dovecot -n output? > > Here it is: > > # 2.0.9: /etc/dovecot/dovecot.conf > # OS: Linux 2.6.35-24-virtual x86_64 Ubuntu 10.10 > ... > mail_plugins = " quota acl listescape zlib lazy_expunge" > ... Ok, seems to be a bug in the listescape plugin. If I remove it from mail_plugins renaming works fine. Unfortunately, that's not an option because some users have folders with '.' in its name. Another issue that is probably related: if a user shares a _sub_folder to other users, it is not visible for them while the listescape plugin is enabled. It works only for root level folders. Holger
Re: [Dovecot] v2.0.9 released
Am 14.01.2011 12:35, schrieb Mark Alan: > Ubuntu (Debian based) server < http://www.ubuntu.com/server > > > Main distro has Dovecot 1.2.12, but there are ppa's (a kind of user > maintained, but publicly available repository) with the latest Dovecot > (currently 2.0.9). > > To install Dovecot 2.0.9, using Mauermann's ppa, you just execute: > sudo add-apt-repository ppa:mauermann/testing > sudo apt-get update > sudo apt-get install dovecot-imapd dovecot-pop3d Nice to hear that some people other than me are using my PPA :-) But I recommend using my main "stable" PPA: sudo add-apt-repository ppa:mauermann/ppa However, above steps currently only work for Ubuntu 10.10 Maverick. The packages should work in Lucid and Natty too (feedback welcome), but you may have to manually edit /etc/apt/sources.list (or /etc/apt/sources.list.d/mauermann-xx-yy.list) Holger
Re: [Dovecot] v2.0.9 released
Am 14.01.2011 10:52, schrieb Spyros Tsiolis: > Quick question : > > Is "listescape" a plugin that allows people own folders with > period (".")in them ? > AFAIK (and on mozilla thunderbird) one cannot have these : > > "." "/" "\" "*" and "^" With the listescape plugin you can have almost any character in mailbox names. See http://wiki2.dovecot.org/Plugins/Listescape Holger
[Dovecot] Panic: file mailbox-list-maildir.c: line 133: unreached
I converted personal mailboxes from maildir to sdbox. Public mailboxes are still in maildir format, because I need per-user seen flags. However, if the user is subscribed to public mailboxes and the client sends 'LIST (SUBSCRIBED) "" *', dovecot crashes with: imap(hol...@mauermann.org): Panic: file mailbox-list-maildir.c: line 133: unreached imap(hol...@mauermann.org): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x3756a) [0x7f25f7b1456a] -> /usr/lib/dovecot/libdovecot.so.0(+0x375b6) [0x7f25f7b145b6] -> /usr/lib/dovecot/libdovecot.so.0(+0x118ca) [0x7f25f7aee8ca] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x35cce) [0x7f25f7d8acce] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_list_is_valid_pattern+0x26) [0x7f25f7d80146] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x33a31) [0x7f25f7d88a31] -> /usr/lib/dovecot/libdovecot-storage.so.0(fs_list_iter_next+0x2f) [0x7f25f7d885cf] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(+0xb658) [0x7f25f6f2c658] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_list_iter_next+0xa) [0x7f25f7d7faba] -> dovecot/imap(+0xc529) [0x7f25f824d529] -> dovecot/imap(cmd_list_full+0x43e) [0x7f25f824e48e] -> dovecot/imap(+0x10dad) [0x7f25f8251dad] -> dovecot/imap(+0x10e8d) [0x7f25f8251e8d] -> dovecot/imap(client_handle_input+0x135) [0x7f25f82520c5] -> dovecot/imap(client_in put+0x62) [0x7f25f8252a22] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x48) [0x7f25f7b1f898] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x9f) [0x7f25f7b2080f] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7f25f7b1f828] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f25f7b0dcf3] -> dovecot/imap(main+0x30f) [0x7f25f825b07f] -> /lib/libc.so.6(__libc_start_main+0xfe) [0x7f25f736cd8e] -> dovecot/imap(+0x9279) [0x7f25f824a279] master: Error: service(imap): child 32285 killed with signal 6 (core dumped) This does not happen with 'LSUB "" *' or with personal mailboxes in maildir format. Below is the gdb and doveconf -n output: (gdb) bt full #0 0x7f25f7381ba5 in raise () from /lib/libc.so.6 No symbol table info available. #1 0x7f25f73856b0 in abort () from /lib/libc.so.6 No symbol table info available. #2 0x7f25f7b1457d in default_fatal_finish (type=, status=0) at failures.c:187 backtrace = 0x7f25f980d468 "/usr/lib/dovecot/libdovecot.so.0(+0x3756a) [0x7f25f7b1456a] -> /usr/lib/dovecot/libdovecot.so.0(+0x375b6) [0x7f25f7b145b6] -> /usr/lib/dovecot/libdovecot.so.0(+0x118ca) [0x7f25f7aee8ca] -> /usr/lib/do"... #3 0x7f25f7b145b6 in i_internal_fatal_handler (ctx=0x7fff36a6acc0, format=, args=) at failures.c:645 status = 0 #4 0x7f25f7aee8ca in i_panic (format=0x7e1d ) at failures.c:259 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0} args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff36a6ad90, reg_save_area = 0x7fff36a6acd0}} #5 0x7f25f7d8acce in maildir_is_valid_pattern (list=, pattern=) at mailbox-list-maildir.c:133 No locals. #6 0x7f25f7d80146 in mailbox_list_is_valid_pattern (list=0x7f25f98422d0, pattern=0x7f25f980d410 "public") at mailbox-list.c:651 _data_stack_cur_id = 0 ret = #7 0x7f25f7d88a31 in fs_list_subs (ctx=0x7f25f9818b70) at mailbox-list-fs-iter.c:683 node = flags = MAILBOX_SUBSCRIBED ns = path = dir = fname = storage_name = 0x7f25f980d410 "public" len = 0 st = {st_dev = 139801076486872, st_ino = 19, st_nlink = 139801053739543, st_mode = 128, st_uid = 0, st_gid = 1, __pad0 = 0, st_rdev = 139801046211004, st_size = 206158430224, st_blksize = 140734110281536, st_blocks = 140734110281344, st_atim = {tv_sec = 579820584960, tv_nsec = 139801076651024}, st_mtim = {tv_sec = 139801076728920, tv_nsec = 139801076766928}, st_ctim = {tv_sec = 139801076486872, tv_nsec = 536871048}, __unused = {128, 139801076731466, 139801046189669}} #8 0x7f25f7d885cf in fs_list_iter_next (_ctx=0x7f25f9818b70) at mailbox-list-fs-iter.c:356 _data_stack_cur_id = 0 info = __FUNCTION__ = "fs_list_iter_next" #9 0x7f25f6f2c658 in acl_mailbox_list_iter_next_info (_ctx=) at acl-mailbox-list.c:205 alist = 0x7f25f9835410 #10 acl_mailbox_list_iter_next (_ctx=) at acl-mailbox-list.c:372 ctx = 0x7f25f98163f0 info = 0x7f25f98518d0 ret = #11 0x7f25f7d7faba in mailbox_list_iter_next (ctx=0x7e1d) at mailbox-list.c:1029 info = #12 0x7f25f824d529 in list_namespace_mailboxes (cmd=) at cmd-list.c:377 info = 0x80 flags = 536871048 str = 0x7f25f980d2d8 ret = 1 ns = 0x0 name = 0x7f25f98518d0 "Public/public" #13 cmd_list_continue (cmd=) at cmd-list.c:792 _data_stack_cur_id = 4 ctx = 0x7f25f9848458 #14 0x7f25f824e48e in cmd_list_full (cmd=0x7f25f9848350, lsub=false) at cmd-list.c:957
Re: [Dovecot] Dovecot2 + Sieve
Am 28.01.2011 11:10, schrieb Philipp v. Strobl-Albeg: > Am 28.01.2011 11:03, schrieb Ralf Hildebrandt: >> * Philipp v. Strobl-Albeg: >> >>> Everything else works fine, except the program "mail". I dont know if >>> there is a coherence but a typical Mailserver-Test "date|mail -s test >>> em...@example.com" also don't sent a message to postfix. >> find / -name sendmail >> >> what is the output? >> > > find / -name sendmail Output: > > /etc/webmin/sendmail > /usr/libexec/webmin/blue-theme/sendmail > /usr/libexec/webmin/caldera/sendmail > /usr/libexec/webmin/sendmail > /usr/libexec/webmin/mscstyle3/sendmail > /usr/sbin/sendmail > /usr/lib/sendmail Try echo "Subject: Test" | /usr/sbin/sendmail em...@example.com and watch your sendmail log.