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.