6.0.0-git
2021-10-18
Last Modified 2006-09-05 by Guest

This HowTo is from an e-mail exchange on the Sork mailing list.

The setup is:

MTA: postfix

vacation program: gnarwl

Horde: 3.1.3

Vacation: 3.0

openldap: 2.2.13-4

First, define a postfix transport map for your specific internal

autoreply domain.

For example /etc/postfix/transport:

autoreply.example.com gnarwl:

create the database:

postmap hash:transport # this should create the transport.db file

Add the transport to the postfix main.cf:

<snip>

  1. TRANSPORT MAPS

transport_maps = hash:/etc/postfix/transport

</snip>

Add a new service to /etc/postfix/master.cf:

</snip>

  1. gnarwl autoresponder

gnarwl unix - n n - - pipe

flags=F user=gnarwl argv=/usr/bin/gnarwl -a $user

</snip>

Add a vacation alias map (ldap-virtual_alias_maps-vacation.cf):

<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))

result_attribute = mail

result_filter = %s,%s@autoreply.example.com

bind = no

</snip>

Of course, the above needs to reflect your ldap environment...

Append the alias map to main.cf (make sure it's the first map):

<snip>

virtual_alias_maps =

ldap:/etc/postfix/ldap-virtual_alias_maps-vacation.cf,

ldap:/etc/postfix/ldap-virtual_alias_maps.cf

</snip>

after those changes, reload postfix:

postfix reload

Extend your ldap with the vacation schema and setup a test account,

example ldif:

<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 base64

if necessary]

</snip>

After loading the above ldif, test your postfix alias vacation lookup map:

postmap -v -q vacationtest@example.com

ldap:/etc/postfix/ldap-virtual_alias_maps-vacation.cf

This should return the following if the vacation has been enabled,

otherwise nothing.

<snip>

vacationtest@example.com,vacationtest@example.com@autoreply.example.com

</snip>

If this works so far, configure gnawrl to suit your needs (only the ldap

part and the header config is included):

gnarwl.cfg

edit gnarwl.cfg and change the following lines:

<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>

Create the file /var/lib/gnarwl/header-utf8.txt and add the content

shown below:

<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>

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.