On Fri, Jan 21, 2011 at 01:08:09AM +0200, Timo Sirainen wrote:
On Thu, 2011-01-20 at 23:50 +0100, Jan-Frode Myklebust wrote:
But this woun´t work if the maildir has been modified outside of dovecot (i.e. webmail usage). Are there any simple interface I can use in this short snippet for noticing that the index is out of sync, and update it ?
With v2.0 you could use doveadm easily (you can also just use doveadm binary from v2.0 and keep using v1.2 elsewhere):
doveadm mailbox status unseen inbox
This sounds great, but I'm struggeling to get it working... It complains about:
$ doveadm -v mailbox status -u user@example.com unseen inbox doveadm(user@example.com): Error: userdb lookup: connect(/usr/local/dovecot-2.0.9/var/run/dovecot/auth-userdb) failed: No such file or directory doveadm(user@example.com): Fatal: User lookup failed: Internal error occurred. Refer to server log for more information.
Will I need to have the dovecot-2 daemon running for this to work ?
My config was quickly converted from v1.2 by "dovecot -n > new.conf" and very little modifications..
################ dovecot -n ############################# # 2.0.9: /usr/local/dovecot-2.0.9/etc/dovecot/dovecot.conf # OS: Linux 2.6.9-89.0.9.ELsmp x86_64 Red Hat Enterprise Linux ES # release 4 (Nahant Update 8) auth_verbose = yes disable_plaintext_auth = no mail_gid = 3000 mail_uid = 3000 mmap_disable = yes namespace { inbox = yes location = prefix = INBOX. type = private } passdb { args = /usr/local/dovecot2/etc/dovecot/dovecot-ldap.conf driver = ldap } plugin { quota = maildir } protocols = imap pop3 service auth { unix_listener /var/run/dovecot/auth-master { group = atmail mode = 0660 user = root } user = dovecot-auth } service imap-login { inet_listener imap { address = * port = 143 } user = dovecot } service imap { executable = /usr/local/dovecot2/sbin/imap-wrapper.sh process_limit = 300 } service pop3-login { inet_listener pop3 { address = * port = 110 } user = dovecot } service pop3 { executable = /usr/local/dovecot2/sbin/pop-wrapper.sh process_limit = 300 } ssl = no userdb { args = /usr/local/dovecot2/etc/dovecot/dovecot-ldap.conf driver = ldap } protocol imap { imap_client_workarounds = delay-newmail mail_plugins = quota imap_quota } protocol pop3 { mail_plugins = quota pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = UID%u-%v } protocol lda { auth_socket_path = /var/run/dovecot/auth-master mail_plugins = quota postmaster_address = MAILER-DAEMON@example.com sendmail_path = /usr/sbin/sendmail } ################ /dovecot -n ############################
$ grep -v ^# /usr/local/dovecot2/etc/dovecot/dovecot-ldap.conf|grep -v ^$ hosts = ldapm1.example.com:389 ldapm2.example.com:389 auth_bind = yes auth_bind_userdn = uid=%n,ou=people,o=%d,o=ISP,o=example,c=com base = ou=people,o=%d,o=ISP,o=example,c=com deref = never scope = onelevel user_filter = (&(objectClass=mailPerson)(uid=%n)) user_attrs = mailMessageStore=mail=maildir:%$:INDEX=/indexes/%1u/%1.1u/%u,mailQuota=quota_rule=*:storage=%$
Also tried a minimal dovecot.conf:
$ ../../sbin/dovecot -n # 2.0.9: /usr/local/dovecot-2.0.9/etc/dovecot/dovecot.conf # OS: Linux 2.6.9-89.0.9.ELsmp x86_64 Red Hat Enterprise Linux ES # release 4 (Nahant Update 8) mail_gid = 3000 mail_uid = 3000 mmap_disable = yes ssl = no userdb { args = /usr/local/dovecot2/etc/dovecot/dovecot-ldap.conf driver = ldap }
But get the exact same errors..
-jf