Re: about Horde vacation with LDAP

Christian Affolter <[email protected]>
Newsgroups gmane.comp.horde.sork
Message-ID <[email protected]>
Hi Bruce,

I'm going to reply to the sork mailing list for this one, I hope you
don't mind... Please keep replying via the list, as it could be useful 
to other people as well (as it was to you ;))

> I am Bruce. I am working the vaction function with LDAP in Horde, but
> it still can't work.
> I am looking for the solution, and read some message from lists.
Actually, "the solution" doesn't exists, it really depends on your MTA,
LDAP DIT/schema setup.

> I would like to know how you did it sucessfully, would you please
> teach me how to do ?
> Thank you in advance.
> 
> MTA: postfix
> vacation program: gnarwl
> Horde: 3.1.3
> Vacation: 3.0
> openldap: 2.2.13-4
As I don't know what exactly your problem is, here are some general
advices/steps which are hopefully useful to you:

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,%[email protected]
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:[email protected],...
objectClass: top
objectClass: Vacation
mail: [email protected]
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 [email protected]
ldap:/etc/postfix/ldap-virtual_alias_maps-vacation.cf

This should return the following if the vacation has been enabled,
otherwise nothing.
<snip>
[email protected],[email protected]@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.


regards,
Chris

-- 
Sork mailing list - Join the hunt: http://horde.org/bounties/#sork
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.