Re: Permissions for shared mail don't work
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Sun, 19 Oct 2014, Damien Desfontaines wrote: On Sun, Oct 19, 2014 at 10:52:59AM +0200, Steffen wrote: how do you deliver new messages to spam's INBOX? By sending an e-mail to spam.whate...@desfontain.es ? (I'm not sure I understand the question?) How does your MTA deliver the messages to the INBOX, do you use Dovecor LDA, LMTP or the MTA? The MTA itself delivers it, I think. Here are my config files : - http://paste.fulltxt.net/xx31R (/etc/postfix/main.cf) - and http://paste.fulltxt.net/t9iXRBIH (/etc/postfix/master.cf) I don't use Postfix, but neither Postfix nor Maildrop honor Dovecot's permission settings obviously. So, you need to re-configure those to set the Unix permissions, too. I'd recommend to reconfigure Postfix to use Dovecot LMTP: http://wiki2.dovecot.org/HowTo/PostfixDovecotLMTP or Dovecot LDA. However, if you use maildrop filtering, you have to switch to Dovecot Pigeonhole Sieve filtering. - -- Steffen Kaiser -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iQEVAwUBVESrcHz1H7kL/d9rAQIDlggAgN1l0PA0yWYVIMIpuehVb0bKkdiKsDh1 adP899zThrl8/gKC6TQLldbCi92Kxnudt+yCZef07oFoiZxy3Xj+o7jECJrWI900 LLG1TrwR2IX2jmwKL3XNR2F5nOJl2ePp8YI5LxYZiys2eZ1Ug9Ks0klJTEBzKCY3 cZqad5+T7C1Lp39IjJF9ILPUWaCIFgkTgWBt/TvgXx6zj4zYxFL1bweN2zZOteFz m3nm8GcWlfXs2R9zc7Lpn+SM8IjRAZKB+/PtF2eqDHxQ+D8mddIqDFQhSK30sjfq Cf5ZMB7/+jEzSi4DdEnNwrsSGyuoJCEA5Ekoj1zR5M0HNOWMKy4V6A== =1q+8 -END PGP SIGNATURE-
Re: last_login plugin with MySQL
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Sun, 19 Oct 2014, Michael Cramer wrote: Gedalya wrote on 18/10/2014 17:36: The code looks at shared/$last_login_key, so shared/last-login/username, but your map says /shared/last-login/$user, note the leading slash! That's probably all it is. BINGO! Now that we killed the mosters of this level, let's move to the next level. I was expecting an UPDATE...WHERE but I got this: INSERT INTO mailbox (lastlogin,username) VALUES ('1413647370','username') ON DUPLICATE KEY UPDATE lastlogin='1413647370' anybody knows how this can be achieved with postgresql, because 'ON DUPLICATE KEY UPDATE' syntax is mysql specific http://wiki2.dovecot.org/Quota/Dict see the section about If you're using PostgreSQL, you'll need a trigger - -- Steffen Kaiser -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (GNU/Linux) iQEVAwUBVESzD3z1H7kL/d9rAQLX8wf/WoO/J8GSf5ht2ZH7tV731jxvjd29epJr LzyqJ9DdwAt/4doR7/RK+3TKYfEzvkP7wkzOr7j6IkWhM9R2NXdXRLpYmKYG0GOb oPueNHQ3ibAcGgYHNL14UJve/H+laxJXOWYhlxM8CgR2IT+EBeJIGiHmVWjUm3DL f1Wxwzf4Ozdl0nRwZGr0nToVklaDabB9wdNNdBno+42UcbdENZdloWbAEs/2HjfA 0ckbJ4BXf+SR/TgeRmMPXMIN7/n4iIJnikTQuuE0MhV5DgdTfY0Xa1p+sE0Q1qSO pxC7FxYaaI+Yxk9q/NT8HJRwMbx3T0GQ0zyh8Bo0DH/v1QSvbgtJrg== =nZET -END PGP SIGNATURE-
2.2.14 Panic in sync_expunge_range()
I am getting some panics after upgrading from 2.2.13 to 2.2.14 This panic happens for one user only, he is subscribed to 86 folders, on two of them this panic happens quite often - several times a day. The mbox folders seems OK, less than 30M with 30 and 200 messages. Panic: file mail-index-sync-update.c: line 250 (sync_expunge_range): assertion failed: (count 0) hmk GNU gdb 6.8 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as i386-pc-solaris2.10... Reading symbols from /datapool/local/dovecot-2.2.14/lib/dovecot/libdovecot-storage.so.0...done. Loaded symbols for /local/dovecot-2.2.14/lib/dovecot/libdovecot-storage.so.0 Reading symbols from /datapool/local/dovecot-2.2.14/lib/dovecot/libdovecot.so.0...done. Loaded symbols for /local/dovecot-2.2.14/lib/dovecot/libdovecot.so.0 Reading symbols from /datapool/local/program/lib/libssl.so.1.0.0...done. Loaded symbols for /local/program/lib/libssl.so.1.0.0 Reading symbols from /datapool/local/program/lib/libcrypto.so.1.0.0...done. Loaded symbols for /local/program/lib/libcrypto.so.1.0.0 Reading symbols from /datapool/local/program/lib/libz.so...done. Loaded symbols for /local/program/lib/libz.so Reading symbols from /lib/libm.so.2...done. Loaded symbols for /lib/libm.so.2 Reading symbols from /datapool/local/program/lib/libiconv.so.2...done. Loaded symbols for /local/program/lib/libiconv.so.2 Reading symbols from /lib/librt.so.1...done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libnsl.so.1...done. Loaded symbols for /lib/libnsl.so.1 Reading symbols from /lib/libsocket.so.1...done. Loaded symbols for /lib/libsocket.so.1 Reading symbols from /lib/libsendfile.so.1...done. Loaded symbols for /lib/libsendfile.so.1 Reading symbols from /lib/libc.so.1...done. Loaded symbols for /lib/libc.so.1 Reading symbols from /lib/libdl.so.1...done. Loaded symbols for /lib/libdl.so.1 Reading symbols from /usr/lib/libz.so...done. Loaded symbols for /usr/lib/libz.so Reading symbols from /lib/libaio.so.1...done. Loaded symbols for /lib/libaio.so.1 Reading symbols from /lib/libmd.so.1...done. Loaded symbols for /lib/libmd.so.1 Reading symbols from /lib/ld.so.1...done. Loaded symbols for /lib/ld.so.1 Core was generated by `dovecot/imap imap-postlogin'. Program terminated with signal 6, Aborted. [New process 76621] #0 0xfe7fc8e5 in _lwp_kill () from /lib/libc.so.1 #0 0xfe7fc8e5 in _lwp_kill () from /lib/libc.so.1 No symbol table info available. #1 0xfe7f7765 in thr_kill () from /lib/libc.so.1 No symbol table info available. #2 0xfe7a376f in raise () from /lib/libc.so.1 No symbol table info available. #3 0xfe7829e1 in abort () from /lib/libc.so.1 No symbol table info available. #4 0xfeda13ba in default_fatal_finish (type=LOG_TYPE_PANIC, status=0) at failures.c:152 backtrace = 0x8093660 0xfeda22d7 - 0xfeda15d3 - 0xfef31e5f - 0xfef32d65 - 0xfef3349e - 0xfef33b77 - 0xfef1dcbd - 0xfef170e4 - 0xfef173a4 - 0xfef1767d - 0xfef03e09 - 0xfeea5540 - 0xfeea5714 - 0xfeea5857 - 0xfe... #5 0xfeda22d7 in i_internal_fatal_handler (ctx=0x8047400, format=0xfef5ebc8 file %s: line %d (%s): assertion failed: (%s), args=0x8047424 .ìõþú) at failures.c:152 status = 0 #6 0xfeda15d3 in i_panic (format=0xfef5ebc8 file %s: line %d (%s): assertion failed: (%s)) at failures.c:152 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, timestamp_usecs = 0} args = 0x8047424 .ìõþú #7 0xfef31e5f in sync_expunge_range (ctx=0x8047600, seqs=0x80474d8) at ../../src/lib/array.h:197 map = (struct mail_index_map *) 0x80c5d90 range = (const struct seq_range *) 0x8093430 i = 134509780 count = 0 dest_seq1 = 562 prev_seq2 = 562 orig_rec_count = 4277606968 __FUNCTION__ = sync_expunge_range #8 0xfef32d65 in mail_index_sync_record_real (ctx=0x8047600, hdr=0x80b5d28, data=0x80b5df8) at ../../src/lib/array.h:197 rec = (const struct mail_transaction_expunge_guid *) 0x80b8968 end = (const struct mail_transaction_expunge_guid *) 0x80b8968 seqs = {arr = {buffer = 0x8093410, element_size = 8}, v = 0x8093410, v_modifiable = 0x8093410} seq = 0 modseq = 32612 ret = 0 __FUNCTION__ = mail_index_sync_record_real #9 0xfef3349e in mail_index_sync_record (ctx=0x8047600, hdr=0x80b5d28, data=0x80b5df8) at ../../src/lib/array.h:197 _data_stack_cur_id = 5 ret = 1 #10 0xfef33b77 in mail_index_sync_map (_map=0x80b5400, type=MAIL_INDEX_SYNC_HANDLER_HEAD, force=true) at ../../src/lib/array.h:197 map = (struct mail_index_map *) 0x0 index = (struct mail_index *) 0x80b53b0 view = (struct mail_index_view *) 0x80ab8b0
2.2.14 Panic in imap_fetch_more()
This panic happens with different users, and it also occured in 2.2.13 Panic: file imap-fetch.c: line 556 (imap_fetch_more): assertion failed: (ctx-client-output_cmd_lock == NULL || ctx-client-output_cmd_lock == cmd) hmk GNU gdb 6.8 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as i386-pc-solaris2.10... Reading symbols from /datapool/local/dovecot-2.2.14/lib/dovecot/libdovecot-storage.so.0...done. Loaded symbols for /local/dovecot-2.2.14/lib/dovecot/libdovecot-storage.so.0 Reading symbols from /datapool/local/dovecot-2.2.14/lib/dovecot/libdovecot.so.0...done. Loaded symbols for /local/dovecot-2.2.14/lib/dovecot/libdovecot.so.0 Reading symbols from /datapool/local/program/lib/libssl.so.1.0.0...done. Loaded symbols for /local/program/lib/libssl.so.1.0.0 Reading symbols from /datapool/local/program/lib/libcrypto.so.1.0.0...done. Loaded symbols for /local/program/lib/libcrypto.so.1.0.0 Reading symbols from /datapool/local/program/lib/libz.so...done. Loaded symbols for /local/program/lib/libz.so Reading symbols from /lib/libm.so.2...done. Loaded symbols for /lib/libm.so.2 Reading symbols from /datapool/local/program/lib/libiconv.so.2...done. Loaded symbols for /local/program/lib/libiconv.so.2 Reading symbols from /lib/librt.so.1...done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libnsl.so.1...done. Loaded symbols for /lib/libnsl.so.1 Reading symbols from /lib/libsocket.so.1...done. Loaded symbols for /lib/libsocket.so.1 Reading symbols from /lib/libsendfile.so.1...done. Loaded symbols for /lib/libsendfile.so.1 Reading symbols from /lib/libc.so.1...done. Loaded symbols for /lib/libc.so.1 Reading symbols from /lib/libdl.so.1...done. Loaded symbols for /lib/libdl.so.1 Reading symbols from /usr/lib/libz.so...done. Loaded symbols for /usr/lib/libz.so Reading symbols from /lib/libaio.so.1...done. Loaded symbols for /lib/libaio.so.1 Reading symbols from /lib/libmd.so.1...done. Loaded symbols for /lib/libmd.so.1 Reading symbols from /lib/ld.so.1...done. Loaded symbols for /lib/ld.so.1 Core was generated by `dovecot/imap imap-postlogin'. Program terminated with signal 6, Aborted. [New process 79111] #0 0xfe7fc8e5 in _lwp_kill () from /lib/libc.so.1 #0 0xfe7fc8e5 in _lwp_kill () from /lib/libc.so.1 No symbol table info available. #1 0xfe7f7765 in thr_kill () from /lib/libc.so.1 No symbol table info available. #2 0xfe7a376f in raise () from /lib/libc.so.1 No symbol table info available. #3 0xfe7829e1 in abort () from /lib/libc.so.1 No symbol table info available. #4 0xfeda13ba in default_fatal_finish (type=LOG_TYPE_PANIC, status=0) at failures.c:152 backtrace = 0x8093560 0xfeda22d7 - 0xfeda15d3 - 0x806d60b - 0x805d326 - 0x806aa61 - 0x80699d2 - 0x8069cb7 - 0x8069d15 - 0x8069e57 - 0x8069fe0 - 0xfedba96d - 0xfedbc0cc - 0xfedbab06 - 0xfedbaa5d - 0xfed41db1 -... #5 0xfeda22d7 in i_internal_fatal_handler (ctx=0x80479e0, format=0x807f310 file %s: line %d (%s): assertion failed: (%s), args=0x8047a04 \236ó\a\b,\002) at failures.c:152 status = 0 #6 0xfeda15d3 in i_panic (format=0x807f310 file %s: line %d (%s): assertion failed: (%s)) at failures.c:152 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, timestamp_usecs = 0} args = 0x8047a04 \236ó\a\b,\002 #7 0x0806d60b in imap_fetch_more (ctx=0x80c20e0, cmd=0x80c2018) at ../../src/lib/array.h:158 ret = 135365712 __FUNCTION__ = imap_fetch_more #8 0x0805d326 in cmd_fetch (cmd=0x80c2018) at cmd-fetch.c:37 client = (struct client *) 0x80b17b8 ctx = (struct imap_fetch_context *) 0x80c20e0 args = (const struct imap_arg *) 0x80c99f0 next_arg = (const struct imap_arg *) 0x80c9a20 list_arg = (const struct imap_arg *) 0x8047a98 search_args = (struct mail_search_args *) 0x0 qresync_args = {qresync_sample_seqset = 0x80c20a8, qresync_sample_uidset = 0x807ee7e} messageset = 0x80c9ab8 1899 send_vanished = false ret = 1 #9 0x0806aa61 in command_exec (cmd=0x80c2018) at imap-commands.c:101 hook = (const struct command_hook *) 0x809bfd8 ret = 8 #10 0x080699d2 in client_command_input (cmd=0x80c2018) at imap-client.c:130 client = (struct client *) 0x80b17b8 command = (struct command *) 0x3 __FUNCTION__ = client_command_input #11 0x08069cb7 in client_command_input (cmd=0x80c2018) at imap-client.c:130 client = (struct client *) 0x80b17b8 command = (struct command *) 0x809d41c __FUNCTION__ = client_command_input #12 0x08069d15 in client_handle_next_command (client=0x80b17b8, remove_io_r=0x8047b9d) at imap-client.c:130 No locals. #13 0x08069e57 in client_handle_input
Sieve: carry global variables from sieve_before to user sieve scripts
Hi! Is there a way to initialize global variables with default values in sieve_before scripts that can be used in the sieve_default script or in user scripts? I've tried the following code but this doesn't work.. before.d/10-set-defaults.sieve: 8 require [variables, include]; require vnd.dovecot.debug; set global.S_TESTVAR leo; debug_log LEO SIEVE: in before.d/10-set-defaults, S_TESTVAR: ${global.S_TESTVAR}; 8 default.sieve: 8 require [variables, include]; require vnd.dovecot.debug; global S_TESTVAR; debug_log LEO SIEVE: in default.sieve: S_TESTVAR: ${global.S_TESTVAR}, ${S_TESTVAR}; 8 Is there any other way to set up defaults in a global sieve script? Cheers, --leo -- e-mail ::: Leo.Bergolth (at) wu.ac.at fax ::: +43-1-31336-906050 location ::: IT-Services | Vienna University of Economics | Austria
Re: fixes for quota support on NetBSD
This patch still applies cleanly against 2.2.14, and is still needed. Thomas On Fri, Oct 10, 2014 at 05:07:38PM +0200, Thomas Klausner wrote: Hi! dovecot-2.2.13 already has quota support for NetBSD, but it's buggy. The attached patches by Manuel Bouyer bou...@netbsd.org fix the issues. There is one thing that's not nice in them: one include is now for /usr/include/quota.h since dovecot comes with its own file quota.h which is earlier in the search path. Perhaps dovecot's copy can be renamed to dovecot-quota.h or to some other non-conflicting name? Cheers, Thomas $NetBSD: patch-src_plugins_quota_quota-fs.c,v 1.4 2013/08/05 23:12:42 bouyer Exp $ fix support for NetBSD's libquota --- src/plugins/quota/quota-fs.c.orig 2013-02-26 09:42:04.0 +0100 +++ src/plugins/quota/quota-fs.c 2013-08-06 01:00:32.0 +0200 @@ -672,34 +672,38 @@ { struct quotakey qk; struct quotaval qv; + struct quotahandle *qh; + int ret; - if (root-qh == NULL) { - if ((root-qh = quota_open(root-mount-mount_path)) == NULL) { - i_error(cannot open quota for %s: %m, - root-mount-mount_path); - fs_quota_root_disable(root, group); - return 0; - } - } + if ((qh = quota_open(root-mount-mount_path)) == NULL) { + i_error(cannot open quota for %s: %m, + root-mount-mount_path); + fs_quota_root_disable(root, group); + return 0; + } qk.qk_idtype = group ? QUOTA_IDTYPE_GROUP : QUOTA_IDTYPE_USER; qk.qk_id = group ? root-gid : root-uid; qk.qk_objtype = bytes ? QUOTA_OBJTYPE_BLOCKS : QUOTA_OBJTYPE_FILES; - if (quota_get(root-qh, qk, qv) != 0) { + if (quota_get(qh, qk, qv) != 0) { if (errno == ESRCH) { fs_quota_root_disable(root, group); return 0; } i_error(quotactl(Q_GETQUOTA, %s) failed: %m, root-mount-mount_path); - return -1; + ret = -1; + goto end; } *value_r = qv.qv_usage * DEV_BSIZE; *limit_r = qv.qv_softlimit * DEV_BSIZE; - return 1; + ret = 1; +end: + quota_close(qh); + return ret; } #endif $NetBSD: patch-src_plugins_quota_quota-fs.h,v 1.4 2013/08/05 23:12:42 bouyer Exp $ fix support for NetBSD's libquota --- src/plugins/quota/quota-fs.h.orig 2013-08-06 00:53:34.0 +0200 +++ src/plugins/quota/quota-fs.h 2013-08-06 00:54:29.0 +0200 @@ -7,7 +7,8 @@ #endif #ifdef HAVE_QUOTA_OPEN -# include quota.h /* NetBSD with libquota */ +/* absolute path to avoid confusion with ./quota.h */ +# include /usr/include/quota.h /* NetBSD with libquota */ #endif #ifdef HAVE_SYS_QUOTA_H
replication sieve settings
Hello, can someone give me a hint, where to find an info, how to setup dovecote replication with sieve? On my active.active setup, it replicates the user mdboxes and sieve works also, on the active destination fileserver. Client changes the sieve, tests work fine. But the sieve file won't get replicated to the replica server. As i've researched, it was introduced in dovecot v2.2.rc3 Is it default, that doveadm replicator replicate '*' includes the sieve and i made a config error? Or is there an option to set for the replication service? On dovecot director server, i've set director in conf.d/20-managesieve.conf service managesieve-login { executable = managesieve-login director inet_listener sieve { port = 4190 } } and added sieve to plugins in conf.d/20-lmtp.conf protocol lmtp { mail_plugins = $mail_plugins sieve } doveconf -n ... director_mail_servers = 192.168.200.10 192.168.200.11 director_servers = 192.168.200.1:9090 192.168.200.2:9090 disable_plaintext_auth = no doveadm_port = 24245 lmtp_proxy = 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 ihave duplicate plugin { sieve = file:~/sieve;active=~/.dovecot.sieve } protocols = imap lmtp sieve pop3 ... service managesieve-login { executable = managesieve-login director inet_listener sieve { port = 4190 } } ... protocol lmtp { auth_socket_path = director-userdb mail_plugins = sieve } ... Thank you Martin Schmidt Germany
90-sieve.conf syntax - moving from v2.0.x to v2.2.x
Hi, I'm currently running version v2.0.x in production (using Maildir storage) and it's been working well. I'm interested in moving to version 2.2.x and am preparing a test server to do so. As I have been merging the conf file changes between the two versions I noticed syntax changes for the 90-sieve.conf file. There are now 'locations' and presumably to keep referring to local content I'll need to use the 'file:' location type. On my production box (v2.0.x) I have 90-sieve.conf configured like so: sieve = /var/vmail/sieve/%d/%n/.dovecot.sieve sieve_default = /var/vmail/sieve/global.sieve sieve_dir = /var/vmail/sieve/%d/%n/sieve_dir Inside of the /var/vmail/sieve/%d/%n/ directory (i.e., /var/vmail/sieve/example.com/testuser/) I find: drwxr-xr-x 3 vmail vmail 64 Oct 19 12:07 . drwxr-xr-x 9 vmail vmail 101 Jun 21 10:47 .. lrwxrwxrwx 1 vmail vmail 25 Jun 21 11:10 .dovecot.sieve - sieve_dir/roundcube.sieve -rw--- 1 vmail vmail 3694 Oct 19 12:07 .dovecot.svbin drwx-- 3 vmail vmail 38 Oct 19 11:58 sieve_dir and that works well. I look at the current wiki documentation: http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration and I find that the 'seive_dir' conf option is still listed, but the comments for it appear very similar to the comments that precede the 'sieve' conf option in the stock 90-sieve.conf file: # The location of the user's main Sieve script or script storage. The LDA # Sieve plugin uses this to find the active script for Sieve filtering at # delivery. The include extension uses this location for retrieving # :personal scripts. This is also where the ManageSieve service will store # the user's scripts, if supported. Assuming that the 'sieve' and 'sieve_dir' conf settings have not been merged into just 'sieve' (and that I need to use the 'file:' location specifier), is this how I would configure the two settings for Dovecot 2.2.x? sieve = file:/var/vmail/sieve/%d/%n;active=~/.dovecot.sieve sieve_dir = file:/var/vmail/sieve/%d/%n/sieve_dir If the two have been merged, how would I go about configuring the 90-sieve.conf file to get the same results? Thanks for your help.
Re: last_login plugin with MySQL
Michael Cramer mich...@bigmichi1.de writes: anybody knows how this can be achieved with postgresql, because 'ON DUPLICATE KEY UPDATE' syntax is mysql specific A clear, concise explanation of consistency problems with SQL update-or-insert (upsert) operation, including a PostgreSQL implementation: http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/ Joseph Tam jtam.h...@gmail.com