Re: [Dovecot] Clarifications on Pigeonhole and MySQL lookups
Hi Stephan, thanks a lot for your reply. On 10/11/2012 10:35 PM, Stephan Bosch wrote: On 10/10/2012 11:23 AM, Sandro Tosi wrote: Hello, we're scouting if it's possible to use Pigeonhole (currently v0.3.1, as this will be provided with an upcoming Debian package) with MySQL dict lookups with the mail setup we're designing. Our (main) goals are: 1. store the filters on the database That is possible with some limitations. Are the ones below the only limitatios (ie one script per user) or are there any other worth knowing? 2. allow each user to enable/disable any of the filters set we provide (it's a static set of some general filters, available to all the users; we're currently not providing the possibility to users to write their own filters) Will one or multiple scripts be active at the same time? Yep, the idea is that any user could have multiple scripts active at the same time, and we'd like also to give them an ordering, so like managing a sort of priority (the lower the priority the sooner the script is executed, or the other way around, doesn't matter). Ideally, we have a set of several scripts and each user can select to enable only some of them, and choose the order of their executions. For point 1) we already see[1] that's possible, but it uses the map construct that might not fit with our current database structure: we have a domain table (storing the domain info) and a mailbox table (storing the mailbox info, but the username is composed by the local part, stored in this table, and the domain part is a FK to the domain table, using an id). Do you think it's possible to run a join query on domain+mailbox to retrieve the mailbox_id needed to query the table for the filters? Or do we have to create the filter table and store the lo...@domain.ext info there (relaxing the integrity relationships between tables)? My SQL is a bit rusty, but afaik this is possible with a JOIN or a nested query. Ah no well, I mean, using map { } constructs :) The example for Sieve-MySQL only shows 2 maps, but given we've never used them, we'd want to know if a map cascade would work, so implementing the joins in multiple steps: selecting the ids with a map and the subsequent would use that id to exec the join and so on. How do we specify which filters are enabled for any given user? We originally thought of an Enabled field on the filter table, but in the example in the doc[1] I hadn't seen a way to do that: it seems like the filter list is specified in the proxy definition - am I wrong? How can we do that? The above suggests that you would like to activate multiple Sieve scripts at the same time. That is currently not possible with the dict Script location. It is on my TODO list, but I am not sure when it will be ready (definitely not for coming Debian stable). I see, I think that some others would wonder the same, so you might also want to extend the doc to state that explicitly. Maybe you may want to include something in your TODO list to handle the ordering in case of multiple scripts. In our situation, what would you suggest? We're now thinking of keeping the scripts list on a separate table, and merge the user selected ones in a single script to write in the filters table. Is that what would you suggest? Is there a better solution? Cheers, -- Sandro Tosi Product Engineer Shared Hosting Products RD | Dada.pro eml sandro.t...@register.it
[Dovecot] (no subject)
Hi. I'm using dovecot 2.0.18 and I'm trying to authenticate through a CAS server (until now authentication was through MS Active Directory). I could not find anywhere some examples, so here is what i have done so far. -install phpcas and pam_cas -edit /etc/pam.d/dovecot auth sufficient /lib/security/pam_cas.so -simap://webmail.mydomain.com -f /etc/pam_cas.conf -edit /etc.pam_cas.conf host mycas.mydomain.com port 443 uriValidate /cas/proxyValidate ssl on proxy ??? trusted_ca /etc/cert/certificate.pem debug on - and finally dovecot.conf which I'm sure is complety wrong userdb { args = /etc/dovecot/dovecot-ldap.conf driver = ldap } passdb { driver = pam args = cache_key=%u dovecot } What I get in log is Oct 15 15:39:58 auth-worker: Debug: Loading modules from directory: /usr/lib64/dovecot/auth Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_mysql.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_pgsql.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so Oct 15 15:39:58 auth-worker: Debug: pam(user,127.0.0.1): lookup service=dovecot Oct 15 15:39:58 auth-worker: Debug: pam(user,127.0.0.1): #1/1 style=1 msg=Password: Oct 15 15:39:58 auth-worker: Info: pam(user,127.0.0.1): pam_authenticate() failed: Permission denied Oct 15 15:40:00 auth: Debug: client out: FAIL 1 user=user Oct 15 15:40:00 imap-login: Info: Aborted login (auth failed, 1 attempts): user=user, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured Oct 15 15:40:00 auth: Debug: auth client connected (pid=9019) Any ideas? Thanks.
[Dovecot] Can't Start Dovecot
Hi; I just installed dovecot from yum on CentOS5. ps wax grep dovecot only brings up the grep The command dovecot is not recognized. # ls /usr/local/bin/dove* doveadm doveconf No dovecot. What up? TIA, John
[Dovecot] Plugin hooks in login process
Hi all; I've setup dovecot (2.1.10) in a cluster configuration. We have two servers acting as frontend which authenticates users and proxy them to other two servers which handles the real work. Users credentials are on a mysql cluster; we have one master, in which read/write queries are processed, and many replicated slave, which process read-only queries. The frontend servers reads users credentials from the read-only mysql slaves. I'd like to execute a query once the client is verified to update the last login data. Right now, that query is executed on the backend servers, via a post-login service: protocols = imap service imap-postlogin { executable = script-login /usr/local/etc/dovecot/postlogin.sh unix_listener imap-postlogin { group = vchkpw mode = 0600 user = vpopmail } } service imap { executable = imap imap-postlogin process_limit = 2048 } Problem is, if I execute the update on the backend, I miss the information regarding the original IP, as I only see the IP of the proxies. I haven't been able to launch the postlogin service on the frontend, so I figured that I can try to write a plugin - that also seems to me the cleanest solution. Looking in the dovecot source code, I noticed that there aren't any hooks in the execution path used by the proxies; I am missing something ? I am the only one missing the presence of this hooks in the auth/proxy process ? I've also thought of a workaround for this problem. One way is to monitor the dovecot logs on the frontend and execute the update asyncronously. One other way is to query directly the main mysql server of the cluster and adjust the query making it call a stored procedure that updates the information in case of successful login. But I'd really prefer to create a plugin, that I'd be willing to share. I attach the configuration of the servers (front and back) generated via postfix -n. Thanks in advance for any help. -- Simone Lazzaris | Responsabile aree datacenter e VoIP Interactive Network srl | via Roggia Vignola 9, 24047 Treviglio (BG) Tel. 0363 1970352 | Fax 0363.1971971 | www.interactive.eu # 2.1.10: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.32-5-686-bigmem i686 Debian 6.0.2 auth_debug = yes auth_verbose = yes auth_verbose_passwords = plain base_dir = /var/run/dovecot/ default_login_user = nobody director_doveadm_port = 9091 director_mail_servers = AAA.BBB.CCC.DDD EEE.FFF.GGG.HHH director_servers = XXX.YYY.ZZZ.WWW disable_plaintext_auth = no listen = * log_path = /var/log/dovecot passdb { args = /usr/local/etc/dovecot/sql.conf driver = sql } protocols = imap service director { fifo_listener login/proxy-notify { mode = 0666 } inet_listener { port = 9090 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service imap-login { executable = imap-login director service_count = 0 } ssl_cert = /usr/local/etc/dovecot/imapd.pem ssl_key = /usr/local/etc/dovecot/imapd.pem userdb { driver = prefetch } # 2.0.13: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.32-5-686-bigmem i686 Debian 6.0.2 auth_verbose = yes auth_verbose_passwords = plain base_dir = /var/run/dovecot/ default_login_user = nobody disable_plaintext_auth = no listen = * log_path = /var/log/dovecot mail_gid = 2109 mail_location = maildir:~/Maildir:INDEX=/var/indexes/%1d/%d/%1n/%n:INBOX=~/Maildir mail_plugins = quota mail_uid = 7797 namespace { inbox = yes location = prefix = INBOX. separator = . type = private } namespace { hidden = yes list = no location = prefix = separator = . type = private } passdb { args = /usr/local/etc/dovecot/sql.conf driver = sql } plugin { quota = maildir:User quota } protocols = imap service imap-postlogin { executable = script-login /usr/local/etc/dovecot/postlogin.sh unix_listener imap-postlogin { group = vchkpw mode = 0600 user = vpopmail } } service imap { executable = imap imap-postlogin process_limit = 2048 } ssl_cert = /usr/local/etc/dovecot/imapd.pem ssl_key = /usr/local/etc/dovecot/imapd.pem userdb { driver = prefetch } protocol imap { mail_plugins = quota imap_quota } signature.asc Description: This is a digitally signed message part.
Re: [Dovecot] Search for substring in header?
on Sun Oct 14 2012, Michael M Slusarz slusarz-AT-curecanti.org wrote: Quoting Dave Abrahams d...@boostpro.com: Hi, According to the IMAP spec (http://tools.ietf.org/html/rfc2060#page-37), if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. What am I doing wrong? First, you referenced the wrong RFC - RFC 2060 has been obsoleted by RFC 3501. Thanks for pointing me to the right one. Second, your assumption is correct - TO should do a substring search. But this works fine for me (using version 2.1.10). Using 2.1.6 and 2.1.9 built --with-clucene --with-libstemmer, I get the same empty result with either of these two commands: UID SEARCH TO isocpp.org UID SEARCH TO isocpp.org Am I formatting the command wrongly? -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
Re: [Dovecot] Can't Start Dovecot
Never mind. The command /etc/init.d/dovecot start would work; however, something else is using the port. Tracking it down. John From: linuxpen...@hotmail.com To: dovecot@dovecot.org Date: Mon, 15 Oct 2012 09:01:04 -0400 Subject: [Dovecot] Can't Start Dovecot Hi; I just installed dovecot from yum on CentOS5. ps wax grep dovecot only brings up the grep The command dovecot is not recognized. # ls /usr/local/bin/dove* doveadm doveconf No dovecot. What up? TIA, John
Re: [Dovecot] Can't Start Dovecot
netstat --numeric-hosts --numeric-ports --programs -u -t -l will list all listening ports and as root also the exectueable /etc/init.d/dovecot star is they way to go never start a service by it's binary without a good reason without knowing exactly how it is supposed to work BTW: the dovecot binary lives in /sbin/ not /bin/ [root@srv:~]$ ps aux | grep dovecot root 1843 0.0 0.0 19548 1520 ?Ss 11:58 0:00 /usr/sbin/dovecot -F i am generally wonder about /usr/local as you said you installed with yum - typically distributions packages are using /usr/bin, /usr/sbin/ and not /usr/local Am 15.10.2012 15:37, schrieb John Reddy: Never mind. The command /etc/init.d/dovecot start would work; however, something else is using the port. Tracking it down. John From: linuxpen...@hotmail.com To: dovecot@dovecot.org Date: Mon, 15 Oct 2012 09:01:04 -0400 Subject: [Dovecot] Can't Start Dovecot Hi; I just installed dovecot from yum on CentOS5. ps wax grep dovecot only brings up the grep The command dovecot is not recognized. # ls /usr/local/bin/dove* doveadm doveconf No dovecot. What up? signature.asc Description: OpenPGP digital signature
Re: [Dovecot] lmtp proxy logging
On 10/12/12 2:40 AM, Timo Sirainen wrote: On 10.10.2012, at 17.37, Jack Bates wrote: The logging on lmtp and lmtp proxy is pretty limited from what I can see. It seems to handle errors, Connect, Disconnect, and in the case of lmtp delivery, it logs where an email is saved to. The lmtp may be enough, connect, saved user, saved user..., disconnect, but I was curious if it is worth while to add more info logging for the proxy, primarily which recipients are sent to which proxy. I was thinking of local patching it, but I'll generate up something more inline with official code if it is desired. My thought is to show 1 entry for each recipient, and the destination server chosen. If I recall correctly, the proxy code doesn't actually listen in on the conversation, so logging results would probably complicate the code. I don't think this would be difficult to implement. Probably just a few lines of code. Yeah, could be useful. +1 for adding this detail to logging for LMTP.
[Dovecot] fts = squat solr
I don't know if this was supposed to have changed with dovecot2, but http://wiki.dovecot.org/Plugins/FTS shows fts = squat solr so, since I have the lucene plugin—fts = lucene works by itself—I tried fts = squat lucene but: $ doveadm index '*' doveadm(dave): Error: fts: Failed to initialize backend 'squat lucene': Unknown backend So, is that syntax obsolete, is the wiki wrong, or am I doing something wrong? -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
Re: [Dovecot] Search for substring in header?
on Mon Oct 15 2012, Dave Abrahams dave-AT-boostpro.com wrote: on Sun Oct 14 2012, Michael M Slusarz slusarz-AT-curecanti.org wrote: Quoting Dave Abrahams d...@boostpro.com: Hi, According to the IMAP spec (http://tools.ietf.org/html/rfc2060#page-37), if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. What am I doing wrong? First, you referenced the wrong RFC - RFC 2060 has been obsoleted by RFC 3501. Thanks for pointing me to the right one. Second, your assumption is correct - TO should do a substring search. But this works fine for me (using version 2.1.10). Using 2.1.6 and 2.1.9 built --with-clucene --with-libstemmer, I get the same empty result with either of these two commands: UID SEARCH TO isocpp.org UID SEARCH TO isocpp.org Am I formatting the command wrongly? Incidentally, if I turn of fts_lucene and turn on fts_squat, I get the same result. baffled-ly y'rs, -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
[Dovecot] CAS Authentication
Hi.I'm very sorry for the repost but I forgot the subject. So, I'm using dovecot 2.0.18 and I'm trying to authenticate through a CAS server (until now authentication was through MS Active Directory). I could not find anywhere some examples, so here is what i have done so far. -install phpcas and pam_cas -edit /etc/pam.d/dovecot auth sufficient /lib/security/pam_cas.so -simap://webmail.mydomain.com -f /etc/pam_cas.conf -edit /etc.pam_cas.conf host mycas.mydomain.com port 443 uriValidate /cas/proxyValidate ssl on proxy ??? trusted_ca /etc/cert/certificate.pem debug on - and finally dovecot.conf which I'm sure is complety wrong userdb { args = /etc/dovecot/dovecot-ldap.conf driver = ldap } passdb { driver = pam args = cache_key=%u dovecot } What I get in log is Oct 15 15:39:58 auth-worker: Debug: Loading modules from directory: /usr/lib64/dovecot/auth Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_mysql.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_pgsql.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so Oct 15 15:39:58 auth-worker: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so Oct 15 15:39:58 auth-worker: Debug: pam(user,127.0.0.1): lookup service=dovecot Oct 15 15:39:58 auth-worker: Debug: pam(user,127.0.0.1): #1/1 style=1 msg=Password: Oct 15 15:39:58 auth-worker: Info: pam(user,127.0.0.1): pam_authenticate() failed: Permission denied Oct 15 15:40:00 auth: Debug: client out: FAIL 1 user=user Oct 15 15:40:00 imap-login: Info: Aborted login (auth failed, 1 attempts): user=user, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured Oct 15 15:40:00 auth: Debug: auth client connected (pid=9019) Any ideas? Thanks.
Re: [Dovecot] Segmentation fault in doveadm with lib01_acl_plugin.so
On 10/14/2012 05:58 PM Alessio Cecchi wrote: Thanks, my dovecot installation is build from source. Dovecot start fine with core dumps enabled but doveadm don't return Core dumped when crash. In your terminal emulator enter the following commands: ulimit -c unlimited doveadm … Regards, Pascal -- The trapper recommends today: decade.1228...@localdomain.org
[Dovecot] Where'd the Mail Go?
Hi; I ran this: echo Hello me | mail -s Dovecot test $USER then created a bash script: for mbox in /var/mail/$USER /var/spool/mail/$USER ~/mbox ~/mail/* ~/*; do grep -q Dovecot test $mbox echo mbox: $mbox done grep -q Dovecot test ~/Maildir/new/* 2/dev/null echo Maildir: ~/Maildir and ran it but couldn't find where the mail went. I checked /var/mail/my_user_name and it wasn't there, either. How do I find it? TIA, John
Re: [Dovecot] Search for substring in header?
Quoting Dave Abrahams d...@boostpro.com: on Mon Oct 15 2012, Dave Abrahams dave-AT-boostpro.com wrote: on Sun Oct 14 2012, Michael M Slusarz slusarz-AT-curecanti.org wrote: Quoting Dave Abrahams d...@boostpro.com: Hi, According to the IMAP spec (http://tools.ietf.org/html/rfc2060#page-37), if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. What am I doing wrong? First, you referenced the wrong RFC - RFC 2060 has been obsoleted by RFC 3501. Thanks for pointing me to the right one. Second, your assumption is correct - TO should do a substring search. But this works fine for me (using version 2.1.10). Using 2.1.6 and 2.1.9 built --with-clucene --with-libstemmer, I get the same empty result with either of these two commands: UID SEARCH TO isocpp.org UID SEARCH TO isocpp.org Am I formatting the command wrongly? Incidentally, if I turn of fts_lucene and turn on fts_squat, I get the same result. Lucene for sure does not support subtext searching. Squat used to... but IIRC things may have changed for v2.1. Try the wiki. michael
Re: [Dovecot] lmtp proxy logging
On 10/12/2012 2:40 AM, Timo Sirainen wrote: would probably complicate the code. I don't think this would be difficult to implement. Probably just a few lines of code. Yeah, could be useful. Commented logs below. I did 3 different types of connections. Let me know what you think. Because I'm logging the proxy host itself, it can be IP or name depending on the configuration. If you like it, want minor changes, additional logging, let me know and I'll adjust the code. As is, this is a one liner. Jack Oct 12 19:03:45 compiler dovecot: lmtp(18568): Connect from ::1 Connection succeeds using static proxy to lmtp.example.com (default in this config). Oct 12 19:04:14 compiler dovecot: lmtp(18568): Reply from lmtp.example.com(test): 250 2.5.0 command succeeded Connection succeeds but user invalid using director mapping Oct 12 19:04:14 compiler dovecot: lmtp(18568): Reply from 192.168.1.3(test2): 550 5.1.1 test2 User doesn't exist: test2 Current error reporting Oct 12 19:04:14 compiler dovecot: lmtp(18568): Error: lmtp client: connect(192.168.1.4, 7025) failed: No route to host Connection failed and what we returned to client Oct 12 19:04:14 compiler dovecot: lmtp(18568): Reply from 192.168.1.4(test42): 451 4.4.0 Remote server not answering (connect) Oct 12 19:04:16 compiler dovecot: lmtp(18568): Disconnect from ::1: Client quit (in reset)
Re: [Dovecot] Dovecot Authentication Problem Can't Make it Work
On 15/10/12 17:43, Howell Repaja wrote: Hi All, I am struggling for 2 weeks solving authentication problem in dovecot. logs from /etc/mail/maillog Oct 15 18:00:37 localhost dovecot: auth: pam(how...@mydomain.infohow...@tourforyou.info,88.22.197.66): unknown user # 2.0.9: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-279.el6.x86_64 x86_64 CentOS release 6.3 (Final) ext4 passdb { args = setcred=yes failure_show_msg=yes cache_key=%u dovecot driver = pam } userdb { driver = passwd } Pam says that you have no such user 'how...@tourforyou.info'. Pam most probably talks to /etc/passwd (and friends), which means that you either need to login with a valid valid system username listed in /etc/passwd, or you need to setup some other userdb/passdb that supports full email addresses as usernames. -- Tom
Re: [Dovecot] lmtp proxy logging
On 10/15/2012 2:07 PM, Jack Bates wrote: On 10/12/2012 2:40 AM, Timo Sirainen wrote: would probably complicate the code. I don't think this would be difficult to implement. Probably just a few lines of code. Yeah, could be useful. If there's no argument over the last email, confirm and check this patch. It's not the overall logging I would like, but the lmtp code isn't as mature as pop3/imap and the proxy is a quick and dirty on the lmtp code. Both need a good revamp, preferably with x-session support and perhaps logging rip/lip similar to how we do pop3/imap logins. I think we should also work on adjusting all logging for services using x-session to also log the proxy ip. rip,lip,pip. As I get time I'll look at it. This patch is just to keep us from having no useful logging in lmtp proxy. Based on lmtp pid, one can at least follow the connect, the proxy replies, and the disconnect of a session. --- dovecot-2.1.10/src/lmtp/lmtp-proxy.c2012-10-12 19:46:49.688952484 + +++ dovecot-2.1.10/src/lmtp/lmtp-proxy.c-new2012-10-12 19:48:51.751932325 + @@ -160,6 +160,8 @@ static bool lmtp_proxy_send_data_replies break; o_stream_send_str(proxy-client_output, t_strconcat(rcpt[i]-reply, \r\n, NULL)); + i_info(proxy(%s): proxy host=%s: status=%s,rcpt[i]-address, + rcpt[i]-conn-set.host,rcpt[i]-reply); } o_stream_uncork(proxy-client_output); proxy-next_data_reply_idx = i;
Re: [Dovecot] Where'd the Mail Go?
Hi John, John Reddy wrote: I ran this: echo Hello me | mail -s Dovecot test $USER and ran it but couldn't find where the mail went. I checked /var/mail/my_user_name and it wasn't there, either. How do I find it? I'm sorry to tell you this is rather off-topic on the dovecot list, since the mail is routed and delivered by your MTA. In the logfiles of your MTA (mail transport agent) you should find hints where the mail went. /var/log/postfix/... /var/log/exim/... Regards Daniel -- https://plus.google.com/103021802792276734820
Re: [Dovecot] Search for substring in header?
on Mon Oct 15 2012, Michael M Slusarz slusarz-AT-curecanti.org wrote: Quoting Dave Abrahams d...@boostpro.com: on Mon Oct 15 2012, Dave Abrahams dave-AT-boostpro.com wrote: on Sun Oct 14 2012, Michael M Slusarz slusarz-AT-curecanti.org wrote: Using 2.1.6 and 2.1.9 built --with-clucene --with-libstemmer, I get the same empty result with either of these two commands: UID SEARCH TO isocpp.org UID SEARCH TO isocpp.org Am I formatting the command wrongly? Incidentally, if I turn of fts_lucene and turn on fts_squat, I get the same result. Lucene for sure does not support subtext searching. Squat used to... but IIRC things may have changed for v2.1. Try the wiki. Sorry, but what does try the wiki mean? Which indexer are you using, that successfully finds the substring match? -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
[Dovecot] [BUG] Lucene plugin breaks header substring search
According to the IMAP spec if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. This behavior is present if I *even load* the lucene fts plugin. Note that lucene isn't in use (fts = squat); it's merely loaded. This behavior goes away if I don't load fts_lucene. Dovecot configuration with dovecot -n: --8---cut here---start-8--- # 2.1.6: /usr/local/stow/dovecot-2.1.6/etc/dovecot/dovecot.conf # OS: Darwin 11.4.2 x86_64 hfs default_internal_user = _dovecot default_login_user = _dovenull mail_gid = 20 mail_location = mdbox:/Users/dave/Library/Data/LocalIMAP/mdbox mail_plugin_dir = /usr/local/lib/dovecot mail_plugins = fts fts_squat fts_lucene zlib mail_uid = 501 maildir_very_dirty_syncs = yes namespace { inbox = yes location = prefix = separator = . subscriptions = yes type = private } passdb { args = uid=501 gid=20 home=/Users/dave nopassword=y driver = static } plugin { fts = squat zlib_save = gz zlib_save_level = 6 } protocols = imap ssl = no protocol imap { mail_plugins = fts fts_squat fts_lucene zlib } --8---cut here---end---8--- Dovecot version: 2.1.6 Operating system or Linux distribution name: MacOS X 10.7, 10.8 CPU architecture (x86 or something else?): x86_64 Filesystem you used (especially if you use NFS or not): Mac Some kind of description of what you were doing and with what IMAP client.: Searching -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
Re: [Dovecot] Advanced dovecot tricks - spam review/release
On 5.10.2012, at 22.48, Daniel Parthey wrote: Timo Sirainen wrote: -i name changes to dovecot.conf used by the given instance name This does not seem to work, at least not with version 2.1.10: Fixed: http://hg.dovecot.org/dovecot-2.1/rev/0262ede193e5
Re: [Dovecot] Maildir hardlinks
On 4.10.2012, at 16.00, Benedetto Vassallo wrote: All works fine, but with the new version it seems that dovecot don't do hardlinks when deliver a message to multiple users. The hard linking is done only when the directory permissions match. mail_location = maildir:~/MailDir:LAYOUT=fs I tryed using lmtp directly issuing 'telnet localhost 24' and sending a test message to 3 recipients. Then issuing a 'ls -il' in the new directory of that users, I saw the inode was not the same. What are the permissions of the MailDir directory for user1/user2? ls -ld /home/user1/MailDir ls -ld /home/user2/MailDir
Re: [Dovecot] Dovecot Hangs while mutile users download mail for same account using pop3
On 8.10.2012, at 18.12, Robert JR wrote: I have a weird problem in dovecot, Dovecot Hangs while multiple users download mail for same account using pop3 Three persons use 1 same email , and three of them use outlook express to check That specific mail .. Also some times one of the three users check the mail for this Account using imap (squirrel mail) Make sure you have pop3_lock_session=no and.. to=sa...@domain.com, orig_to=sales@domain.,com, relay=local, delay=357, delays=338/0.01/0/19, dsn=4.2.0, status=deferred (cannot update mailbox /var/mail/sales for user sales. unable to lock for exclusive access: Resource temporarily unavailable) The problem may simply be that you're using mbox format. POP3 protocol itself wasn't meant for simultaneous access (it's actually disallowed by the RFC) and with mbox format Dovecot optimizes it in a way that probably locks the mailbox exclusively for the whole duration of the session.
Re: [Dovecot] Where'd the Mail Go?
In the logfiles of your MTA (mail transport agent) you should find hints where the mail went. Hmm. I guess I'll work on postfix then, and come back later ;) John
Re: [Dovecot] Dovecot deliver Segmentation fault when arrive the first message
On 13.10.2012, at 15.38, Alessio Cecchi wrote: Il 2012-10-02 21:28 Timo Sirainen ha scritto: On 19.9.2012, at 16.07, Alessio Cecchi wrote: #1 0x7f2fc9fc41b4 in acl_backend_vfile_acllist_try_rebuild ( backend=0x1944240) at acl-backend-vfile-acllist.c:297 This should fix it: http://hg.dovecot.org/dovecot-2.1/rev/41aac09497ee
Re: [Dovecot] POP UIDL
On 14.10.2012, at 5.07, simon.buongio...@gmail.com wrote: I run a small mail server with Dovecot and postfix. Several of the accounts are popped by an external email provide I use, mostly out habit and also for a bit of redundancy. I have no details on that external server except that it uses exim. Lately, it's been repopping mail from accounts (mail is left on the server so I can use IMAP) at fairly frequent, but undetermined, intervals. Before I take it to them, I want to be sure it's not an error on my side. How can I be sure Dovecot does not have a problem with the UIDL list causing this external server to repop the mail? For the record, I'm not inclined to think it's a Dovecot issue, but since that's the bit I can fix, I'd like to be sure. dovecot -n output would have helped. Anyway, some POP3 clients become confused if there are duplicate UIDLs. Recent v2.1 versions have a pop3_uidl_duplicates setting to avoid those.
Re: [Dovecot] Plugin hooks in login process
On 15.10.2012, at 16.13, Simone Lazzaris wrote: Problem is, if I execute the update on the backend, I miss the information regarding the original IP, as I only see the IP of the proxies. This is easy to solve: Set login_trusted_networks setting to point to your proxies, and you'll see the original IP. Looking in the dovecot source code, I noticed that there aren't any hooks in the execution path used by the proxies; I am missing something ? I am the only one missing the presence of this hooks in the auth/proxy process ? The login processes aren't really meant to have any plugins.
Re: [Dovecot] fts = squat solr
On 15.10.2012, at 18.08, Dave Abrahams wrote: I don't know if this was supposed to have changed with dovecot2, but http://wiki.dovecot.org/Plugins/FTS shows Read wiki2 for Dovecot v2. fts = squat solr so, since I have the lucene plugin—fts = lucene works by itself—I tried fts = squat lucene but: $ doveadm index '*' doveadm(dave): Error: fts: Failed to initialize backend 'squat lucene': Unknown backend So, is that syntax obsolete, is the wiki wrong, or am I doing something wrong? The syntax is obsolete.
Re: [Dovecot] [BUG] Lucene plugin breaks header substring search
On 16.10.2012, at 1.35, Dave Abrahams wrote: According to the IMAP spec if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. This specific problem can be solved by: plugin { fts_lucene = whitespace_chars=@. } This behavior is present if I *even load* the lucene fts plugin. Note that lucene isn't in use (fts = squat); it's merely loaded. This behavior goes away if I don't load fts_lucene. I don't really see how that's possible. Although a quick test shows me that fts_squat seems to be completely broken with me for some reason.
Re: [Dovecot] [BUG] Lucene plugin breaks header substring search
on Mon Oct 15 2012, Timo Sirainen tss-AT-iki.fi wrote: On 16.10.2012, at 1.35, Dave Abrahams wrote: According to the IMAP spec if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. This specific problem can be solved by: plugin { fts_lucene = whitespace_chars=@. } Wow; OK, Google tells me that's documented at http://wiki2.dovecot.org/Plugins/FTS/Lucene but I only found it now because I knew what to look for. This might be good enough for me, but still doesn't make it conforming to the IMAP spec, right? IIUC the spec says you can search for arbitrary strings without regard to word boundaries. This behavior is present if I *even load* the lucene fts plugin. Note that lucene isn't in use (fts = squat); it's merely loaded. This behavior goes away if I don't load fts_lucene. I don't really see how that's possible. Although a quick test shows me that fts_squat seems to be completely broken with me for some reason. I don't know what to tell ya. Tests confirm it for me. -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
Re: [Dovecot] [BUG] Lucene plugin breaks header substring search
on Mon Oct 15 2012, Timo Sirainen tss-AT-iki.fi wrote: On 16.10.2012, at 1.35, Dave Abrahams wrote: According to the IMAP spec if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. This specific problem can be solved by: plugin { fts_lucene = whitespace_chars=@. } OK, Google tells me that's documented at http://wiki2.dovecot.org/Plugins/FTS/Lucene but I only found it now because I knew what to look for. I suggest doing something to make that more discoverable. This might be good enough for me, but still doesn't make it conforming to the IMAP spec, right? IIUC the spec says you can search for arbitrary strings without regard to word boundaries. This behavior is present if I *even load* the lucene fts plugin. Note that lucene isn't in use (fts = squat); it's merely loaded. This behavior goes away if I don't load fts_lucene. I don't really see how that's possible. Although a quick test shows me that fts_squat seems to be completely broken with me for some reason. I don't know what to tell ya. Tests confirm it for me. -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
Re: [Dovecot] [BUG] Lucene plugin breaks header substring search
on Mon Oct 15 2012, Timo Sirainen tss-AT-iki.fi wrote: On 16.10.2012, at 1.35, Dave Abrahams wrote: According to the IMAP spec if I do a search for TO isocpp.org it should find all the messages whose To: field contains the string isocpp.org, but dovecot is returning me an empty list. However, a search for TO t...@isocpp.org produces a long list of messages. This specific problem can be solved by: plugin { fts_lucene = whitespace_chars=@. } Do I also need plugin { fts = lucene } or are these mutually exclusive, or...? It's not clear from http://wiki2.dovecot.org/Plugins/FTS/Lucene -- Dave Abrahams BoostPro Computing Software DevelopmentTraining http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost