[cvs] [Wiki] created: SorkVacationWithGnarwl

Wiki Guest wikiguest at horde.org
Tue Sep 5 11:19:50 PDT 2006


guest [128.83.155.230]  Tue, 05 Sep 2006 11:19:50 -0700

Created page: http://wiki.horde.org/SorkVacationWithGnarwl

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>
# TRANSPORT MAPS
#
transport_maps = hash:/etc/postfix/transport
</snip>

Add a new service to /etc/postfix/master.cf:
</snip>
# 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 at 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 at example.com,...
objectClass: top
objectClass: Vacation
mail: vacationtest at 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 at 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 at example.com,vacationtest at 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.




More information about the cvs mailing list