Re: [Dovecot] Clarifications on Pigeonhole and MySQL lookups

2012-10-15 Thread Sandro Tosi

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)

2012-10-15 Thread b m
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

2012-10-15 Thread John Reddy


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

2012-10-15 Thread Simone Lazzaris
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?

2012-10-15 Thread Dave Abrahams

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

2012-10-15 Thread 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?
 TIA,
 John
 
  

Re: [Dovecot] Can't Start Dovecot

2012-10-15 Thread Reindl Harald
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

2012-10-15 Thread l...@airstreamcomm.net

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

2012-10-15 Thread Dave Abrahams

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?

2012-10-15 Thread Dave Abrahams

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

2012-10-15 Thread b m
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

2012-10-15 Thread Pascal Volk
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?

2012-10-15 Thread John Reddy

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?

2012-10-15 Thread Michael M Slusarz

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

2012-10-15 Thread Jack Bates

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

2012-10-15 Thread Tom Hendrikx
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

2012-10-15 Thread Jack Bates

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?

2012-10-15 Thread Daniel Parthey
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?

2012-10-15 Thread Dave Abrahams

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

2012-10-15 Thread Dave Abrahams

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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Timo Sirainen
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?

2012-10-15 Thread John Reddy

 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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Timo Sirainen
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

2012-10-15 Thread Dave Abrahams

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

2012-10-15 Thread Dave Abrahams

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

2012-10-15 Thread Dave Abrahams

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