Ceci est une ancienne révision du document !
Gnarwl
Installation
apt-get install gnarwl adduser --system --home /var/lib/gnarwl --no-create-home --gid 8 gnarwl chown gnarwl: -R /var/lib/gnarwl /etc/gnarwl.cfg
Configuration
Fichier /etc/postfix/master.cf :
# Gnarwl gnarwl unix - n n - 1 pipe flags=F user=gnarwl argv=/usr/bin/gnarwl -c /etc/gnarwl.cfg -a ${nexthop}
Fichier /etc/gnarwl.cfg :
map_sender $sender map_receiver $recepient map_subject $subject map_field $begin vacationStart map_field $end vacationEnd map_field $fullname cn map_field $deputy vacationForward server ldap.example.com port 389 scope sub login uid=gnarwl,ou=sysaccounts,o=example password mdpldap protocol 0 base o=example queryfilter (&(|(mail=$recepient)(mailAlternateAddress=$recepient))(vacationActive=TRUE)) result vacationInfo blockfiles /var/lib/gnarwl/block/ umask 0644 blockexpire 48 mta /usr/sbin/sendmail -F $recepient -t $sender maxreceivers 64 maxheader 512 charset UTF-8 badheaders /var/lib/gnarwl/badheaders.db blacklist /var/lib/gnarwl/blacklist.db forceheader /var/lib/gnarwl/header.txt forcefooter /var/lib/gnarwl/footer.txt recvheader To Cc loglevel 2
Fichier /var/lib/gnarwl/header.txt :
From: $fullname <$recepient> To: $sender X-mailer: GNARWL MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: $subject
Il suffira ensuite d'envoyer le mail automatiquement sur le transport gnarwl:. Différente solutions existent pour cela :
Via recipient_bcc_maps
Le principe : Utiliser un mapping LDAP pour ajouter automatiquement une adresse mail destinatrice en BCC via la directive recipient_bcc_maps. L'adresse mail ajouté sera dans un domaine spécial dont les mails seront destinés au transport gnarwl:
Fichier /etc/postfix/main.cf :
transport_maps = proxy:ldap:gnarwl_transport ldap_mailbox_vacation_bcc_server_host = ldap0.example.com,ldap1.example.com ldap_mailbox_vacation_bcc_server_port = 389 ldap_mailbox_vacation_bcc_search_base = o=example ldap_mailbox_vacation_bcc_timeout = 30 ldap_mailbox_vacation_bcc_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(vacationActive=TRUE)) ldap_mailbox_vacation_bcc_result_attribute = uid ldap_mailbox_vacation_bcc_result_format = %s@autoreponse.example.com ldap_mailbox_vacation_bcc_expansion_limit = 1 ldap_mailbox_vacation_bcc_scope = sub ldap_mailbox_vacation_bcc_bind = yes ldap_mailbox_vacation_bcc_version = 3 ldap_mailbox_vacation_bcc_bind_dn = uid=postfix,ou=sysaccounts,o=example ldap_mailbox_vacation_bcc_bind_pw = mdpldap recipient_bcc_maps = ldap:ldap_mailbox_vacation_bcc gnarwl_transport_server_host = ldap0.example.com,ldap1.example.com gnarwl_transport_server_port = 389 gnarwl_transport_search_base = o=example gnarwl_transport_domain = autoreponse.example.com gnarwl_transport_query_filter = (&(vacationActive=TRUE)(uid=%u)) gnarwl_transport_result_attribute = mail gnarwl_transport_result_format = gnarwl:%s gnarwl_transport_expansion_limit = 1 gnarwl_transport_scope = sub gnarwl_transport_bind = yes gnarwl_transport_version = 3 gnarwl_transport_cache = no gnarwl_transport_bind_dn = uid=postfix,ou=sysaccounts,o=example gnarwl_transport_bind_pw = mdpldap