Hi, I'm using dovecot 2.1.7 on debian Squeeze with ldap integration. Almost everything is working fine and I would link to thank all developers for this amazing piece of software. But after changing my qmail-ldap to do LDA integration get all the benefits from LDA and sieve, some emails return with failure like this: <sar at mondialline.com.br>: lda(sar): Fatal: Unknown argument: sar Usage: dovecot-lda [-c <config file>] [-a <address>] [-d <username>] [-p <path>] [-f <envelope sender>] [-m <mailbox>] [-e] [-k] It happens on messanges that could not be delivered and need to be returned to the sender. I'm using the configuration described on wiki to do qmail-ldap integration: http://wiki.dovecot.org/HowTo/qmailldap The relevant delivery command is: | /usr/lib/dovecot/dovecot-lda -a $RECIPIENT -f $SENDER -d $USER I also tried to use this way, as documented here: http://wiki2.dovecot.org/LDA/Qmail | /var/qmail/bin/preline -f /usr/lib/dovecot/dovecot-lda But in that case, some sieve plugins can't detect the mail recipient, like vacation plugin. Finally, the vacation plugin also is not doing email forwarding when I use the first delivery option above. Follow my settings: # LDAP scope = subtree user_attrs = uidNumber=11184,gidNumber=2110 user_filter = (&(objectClass=qmailUser)(uid=%u)(accountStatus=active)) pass_attrs=uid=user,userPassword=password,mailHost=host,=proxy_maybe=y pass_filter = (&(objectClass=qmailUser)(uid=%u)(accountStatus=active)) iterate_attrs = uid=user iterate_filter = (&(objectClass=qmailUser)(accountStatus=active)) # dovecot -n output: # 2.1.7: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-5-xen-amd64 x86_64 Debian 6.0.7 ext4 default_client_limit = 8000 default_process_limit = 2048 disable_plaintext_auth = no hostname = mail.mondialline.com.br lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To mail_gid = vmail mail_location = maildir:/dados/vmail/%u/Maildir mail_plugins = zlib mail_privileged_group = vmail mail_uid = vmail 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 vacation-seconds namespace inbox { inbox = yes location mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = INBOX. separator = . type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes pass = yes } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { sieve = /dados/vmail/%u/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +vacation +vacation-seconds sieve_global_dir = /var/lib/dovecot/sieve/global/ sieve_vacation_default_period = 1h sieve_vacation_max_period = 30d sieve_vacation_min_period = 0 } postmaster_address = ti at mondialline.com.br protocols = " imap lmtp sieve" service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 10 } service imap { process_limit = 2048 } service managesieve-login { inet_listener sieve { port = 4190 } } shutdown_clients = no ssl_cert = </var/qmail/control/cert.pem ssl_key = </var/qmail/control/cert.pem submission_host = mail.mondialline.com.br:25 userdb { args = /etc/dovecot/dovecot-ldap.conf.ext default_fields = uid=vmail gid=vmail home=/dados/vmail/%u driver = ldap } protocol lmtp { auth_socket_path = director-userdb } protocol lda { mail_plugins = zlib sieve } protocol imap { mail_max_userip_connections = 500 mail_plugins = zlib imap_zlib } protocol sieve { mail_max_userip_connections = 100 managesieve_max_line_length = 65536 } Best regards, -- Rud? Porto Filgueiras http://python-blog.blogspot.com http://twitter.com/rudaporto
Hi,> > <sar at mondialline.com.br>: > lda(sar): Fatal: Unknown argument: sar > Usage: dovecot-lda [-c <config file>] [-a <address>] [-d <username>] [-p <path>] > [-f <envelope sender>] [-m <mailbox>] [-e] [-k] > > It happens on messanges that could not be delivered and need to be > returned to the sender.I would think this indicates that lda is trying to deliver the message to sar when it should be delivering to sar at mondialline.com.br. Probably you need to adjust your ldap user_attrs and user_filters so it returns what lda needs, but that is just a guess after a short look at your mail...> I also tried to use this way, as documented here: > http://wiki2.dovecot.org/LDA/Qmail > | /var/qmail/bin/preline -f /usr/lib/dovecot/dovecot-ldaThis is the way I did it, but I had to add the HOME variable like so: |HOME=/home/mail/$USER /var/qmail/bin/preline -f /usr/local/libexec/dovecot/dovecot-lda I dont' see anything obviously wrong with your settings, but I am connecting to an active directory instead of an openldap server, so your setup is different than mine:> Follow my settings: > > # LDAP > scope = subtree > user_attrs = uidNumber=11184,gidNumber=2110 > user_filter = (&(objectClass=qmailUser)(uid=%u)(accountStatus=active)) > pass_attrs=uid=user,userPassword=password,mailHost=host,=proxy_maybe=y > pass_filter = (&(objectClass=qmailUser)(uid=%u)(accountStatus=active)) > iterate_attrs = uid=user > iterate_filter = (&(objectClass=qmailUser)(accountStatus=active)) > > # dovecot -n output: > # 2.1.7: /etc/dovecot/dovecot.conf > # OS: Linux 2.6.32-5-xen-amd64 x86_64 Debian 6.0.7 ext4 > default_client_limit = 8000 > default_process_limit = 2048 > disable_plaintext_auth = no > hostname = mail.mondialline.com.br > lda_mailbox_autocreate = yes > lda_mailbox_autosubscribe = yes > lda_original_recipient_header = X-Original-To > mail_gid = vmail > mail_location = maildir:/dados/vmail/%u/Maildir > mail_plugins = zlib > mail_privileged_group = vmail > mail_uid = vmail > 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 vacation-seconds > namespace inbox { > inbox = yes > location > mailbox Drafts { > special_use = \Drafts > } > mailbox Junk { > special_use = \Junk > } > mailbox Sent { > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > special_use = \Trash > } > prefix = INBOX. > separator = . > type = private > } > passdb { > args = /etc/dovecot/master-users > driver = passwd-file > master = yes > pass = yes > } > passdb { > args = /etc/dovecot/dovecot-ldap.conf.ext > driver = ldap > } > plugin { > sieve = /dados/vmail/%u/.dovecot.sieve > sieve_dir = ~/sieve > sieve_extensions = +vacation +vacation-seconds > sieve_global_dir = /var/lib/dovecot/sieve/global/ > sieve_vacation_default_period = 1h > sieve_vacation_max_period = 30d > sieve_vacation_min_period = 0 > } > postmaster_address = ti at mondialline.com.br > protocols = " imap lmtp sieve" > service dict { > unix_listener dict { > group = vmail > mode = 0600 > user = vmail > } > } > service imap-login { > inet_listener imap { > port = 143 > } > inet_listener imaps { > port = 993 > ssl = yes > } > process_min_avail = 10 > } > service imap { > process_limit = 2048 > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > } > shutdown_clients = no > ssl_cert = </var/qmail/control/cert.pem > ssl_key = </var/qmail/control/cert.pem > submission_host = mail.mondialline.com.br:25 > userdb { > args = /etc/dovecot/dovecot-ldap.conf.ext > default_fields = uid=vmail gid=vmail home=/dados/vmail/%u > driver = ldap > } > protocol lmtp { > auth_socket_path = director-userdb > } > protocol lda { > mail_plugins = zlib sieve > } > protocol imap { > mail_max_userip_connections = 500 > mail_plugins = zlib imap_zlib > } > protocol sieve { > mail_max_userip_connections = 100 > managesieve_max_line_length = 65536 > } > > Best regards, > > -- > Rud? Porto Filgueiras > http://python-blog.blogspot.com > http://twitter.com/rudaporto
Hi I used the below filter in my dovecot-ldap-userdb.conf file, user_attrs = homeDirectory=home, uidNumber=uid, gidNumber=gid user_filter = (&(objectClass=posixAccount)(|(mail=%u)(mailAlternateAddress=%u) (uid=%u))) This above filter was working fine for me, and it's delivering fine for all the domains. seive is also working fine. The "-d" in dovecot-lda will do userdb lookup with ldap.