Trucs libres

CV
en

lundi 24 mai 2010

Un courriel "fourre-tout" avec Exim (catch-all)

L’idée est d’avoir à disposition un ensemble d’adresses nimportequoi@pub.mondomaine.com qui redirigent toutes vers une seule boîte. Ainsi, je peux utiliser n’importe quelle adresse @pub.mondomaine.com comme alias vers ma boîte principale. De cette manière, je donne l’adresse ebay@pub.mondomaine.com chez Ebay, amazon@pub.mondomaine.com chez Amazon, et ainsi de suite.

L’avantage de cette solution est que je peux désactiver un alias si la désinscription sur le site ne suffit pas. Elle permet aussi de détecter les sites qui revendent votre adresse à d’autres sites.

En premier lieu, il faut qu’Exim écoute sur le réseau, et qu’il accepte les courriels à destination du domaine pub.mondomaine.com. Sous Debian, on place les directives suivantes dans /etc/exim4/update-exim4.conf.conf :

dc_local_interfaces='0.0.0.0'
dc_relay_domains='pub.mondomaine.com'

Note : sous Debian, à chaque démarrage d’Exim le fichier /etc/exim4/exim4.conf.template est rempli avec les variables définies dans /etc/exim4/update-exim4.conf.conf, pour produire le fichier /var/lib/exim4/config.autogenerated. Ceci afin de simplifier la configuration d’Exim dans les cas "standards".

Éditer ensuite le fichier /etc/exim4/exim4.conf.template pour ajouter un nouveau router, en tant que premier router juste en dessous de begin routers :

catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  data = utilisateur@mondomaine.com

Le router sera appelé pour tout mail @pub.mondomaine.com. Il confie tous les mails au transport redirect qui les enverra vers l’adresse spécifiée dans data.

Enfin, on pourra ensuite utiliser un fichier /home/utilisateur/.forward pour désactiver les alias à l’aide d’un filtre Sieve ou Exim.

Références :

lundi 19 octobre 2009

Ajout du sujet dans la log Exim

Pour ajouter les sujets de courriels dans la log Exim4 (/var/log/exim4/mainlog), il suffit simplement de modifier le fichier /etc/exim4/exim4.conf.template comme suit en ajoutant +subject au log_selector :

.ifdef MAIN_LOG_SELECTOR
log_selector = MAIN_LOG_SELECTOR +subject
.endif

Puis relancer Exim :

/etc/init.d/exim4 restart

mardi 7 juillet 2009

[Exim] Filtre système

Voici comment créer un filtre système dans Exim4, pour envoyer certains mails dans un script Bash.

Sous Debian, on ajoute les lignes suivantes dans /etc/exim4/exim4.conf.template :

system_filter = /etc/exim4/exim.filter
system_filter_pipe_transport = address_pipe
system_filter_user = Debian-exim

Et le filtre /etc/exim4/exim.filter contient par exemple :

if $h_subject: begins "[MyTest]" and
  $h_to: contains mytest@example.com
then
       unseen pipe /usr/local/bin/myscript.sh
endif 

Dans le script .sh, on pourra récupérer le mail complet par l’instruction :

MAIL=`cat`

Notes :

  • Le transport "address_pipe" est décrit un peu plus bas dans le fichier de configuration d’Exim.
  • Si on ne place pas la directive "system_filter_user", le script serait lancé en root, et Exim le refuse.

Lien : http://www.exim.org/exim-html-curre...