[Dovecot] qmail-ldap LDA Delivery and sieve

Ruda Porto Filgueiras rudazz at gmail.com
Wed Apr 17 20:32:00 EEST 2013


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


More information about the dovecot mailing list