This HowTo is from adapted from an e-mail exchange on the Sork mailing list. It is a discussion of setting up Sork's vacation module for use with an ldap based system, using gnarwl as the server-side vacation program. The software used is:The server setup is:MTA: postfixMTA: postfix vacation program: gnarwlHorde: 3.1.3 Vacation: 3.0 openldap:LDAP: openldap 2.2.13-4 Horde version: 3.1.3 vacation version: 3.0 First, define a postfix transport map for your specific internal autoreply domain.For example /etc/postfix/transport:If your domain is "example.com" and your autoreply domain is to be "autoreply.example.com", then you would add the following to /etc/postfix/transport: <code> autoreply.example.com gnarwl:</code> create the database: <code> postmap hash:transport # this</code> Next, create the database files from the above file. The following command should create the appropriate transport.dbfilefile: <code> postmap hash:transport </code>Add theNext add the transport to the postfixmain.cf:main.cf file in the "TRANSPORT MAPS" section: <code> <snip> # TRANSPORT MAPS # transport_maps = hash:/etc/postfix/transport </snip> </code>AddNow add a new service to/etc/postfix/master.cf: <code>the /etc/postfix/master.cf file: <code> </snip> # gnarwl autoresponder gnarwl unix - n n - - pipe flags=F user=gnarwl argv=/usr/bin/gnarwl -a $user </snip> </code>Add aCreate an LDAP vacation alias map(ldap-virtual_alias_maps-vacation.cf): <code>called ldap-virtual_alias_maps-vacation.cf: <code> <snip> server_host = ldap://ldap.example.com version = 3 server_port = 389 search_base = ou=mail,... query_filter =(&(objectClass=MailAccount)(objectClass=Vacation)(mail=%s)(accountActive=TRUE)(vacationActive=TRUE))(&(objectClass=MailAccount)(objectClass=Vacation)(mail=%s)(accountActive=TRUE)(vacationActive=TRUE)) result_attribute = mail result_filter = %s,%s@autoreply.example.com bind = no </snip> </code> Of course, the above needs to reflect your ldap environment... Append the alias map to LDAP's main.cf file (make sure it's the firstmap):map listed): <code> <snip> virtual_alias_maps = ldap:/etc/postfix/ldap-virtual_alias_maps-vacation.cf, ldap:/etc/postfix/ldap-virtual_alias_maps.cf </snip></code> after those changes, reload postfix: <code> postfix reload</code>Extendafter those changes, reload postfix: <code> postfix reload </code> Extend yourldapLDAP with the vacation schema and setup a testaccount, example ldif:account. An example ldif follows: <code> <snip> dn:mail=vacationtest@example.com,... objectClass: top objectClass: Vacation mail: vacationtest@example.com accountActive: TRUE [... other mail specific attributes ...] vacationActive: TRUE vacationInfo:: [vacation message has to be utf-8 encoded and also base64ifif necessary] </snip> </code> <code> postmap -v -q vacationtest@example.com ldap:/etc/postfix/ldap-virtual_alias_maps-vacation.cf </code> This should return the following if the vacation has been enabled, otherwise nothing. <code> <snip> vacationtest@example.com,vacationtest@example.com@autoreply.example.com </snip> </code> If this works so far, configure gnawrl to suit your needs (only the ldap part and the header config is included):editEdit gnarwl.cfg and change the following lines:<code><code> <snip> server ldap.example.com protocol 3 base ou=mail... queryfilter (&(objectClass=MailAccount)(objectClass=Vacation)(mail=$recepient)(accountActive=TRUE)(vacationActive=TRUE)) mta /usr/sbin/sendmail $sender charset forceheader /var/lib/gnarwl/header-utf8.txt loglevel 3 </snip> </code> Create the file /var/lib/gnarwl/header-utf8.txt and add the content shown below: <code> <snip> From: $fullname <$recepient> To: $sender X-mailer: GNARWL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: $subject </snip> <code> Finally you will have to configure the sork vacation app with the ldap driver. This should be an easy task now ;) Remember, that you have to configure/specify the vacation related attributes.