+++

title = "Mes deux centimes : créer des adresses « génériques » avec Postfix"
date = 2012-01-13
aliases = [ "post/2012/01/13/Mes-deux-centimes-:-créer-des-adresses-«-génériques-»-avec-Postfix"]
[taxonomies]
tags = [ "système", "mail" ]
+++

Parce que les adresses normales, c'est pas assez 2.0

<!-- more -->

Tu le sais depuis longtemps, l'Interwebz est un repère de pédo-nazis terroristes qui veulent rien qu'à te violer dans les toilettes avec des cuillères en bois. Mais il y a aussi les gens qui sont conscients des vrais problèmes de la vie et qui te propose régulièrement d'agrandir ton pénis ou de venir te marier en Russie ou encore te propose des réductions exceptionnelles sur les pilules de kikitoudur™.

Quand on laisse son adresse mail personnelle traîner sur certains sites Web douteux (ou pas d'ailleurs), on peut parfois avoir la désagréable surprise de se retrouver avec des messages non sollicités dont il est difficile de se débarasser.

Plus difficile encore trouver le fils de p\*\*\* qui a vendu ton adresse à un tiers, se torchant au passage avec la loi Informatique et Liberté de 1978. Et évidemment, je ne parle pas du cas, pas rare non plus, ou la base de données des courriels des utilisateurs/clients de <place your favorite site here> se fait hacker par Anonymous.

Bref, la tentation est grande d'utiliser une adresse mail différente pour chaque service/société sur Internet, ne serait-ce que pour avoir une traçabilité de qui a vendu quoi à qui (toujours utile pour taper sur les doigts des fautifs ou au moins les envoyer chier dans les règles).

La solution que j'utilisais à titre personnel jusqu'à présent consistait en un petit script générant une adresse mail imbitable et l'ajoutant dans /etc/aliases. Petit extrait :

```
#!/bin/bash

mailto="$1" # le courriel de destination (le vrai)
comment="$2" # un commentaire
# Formation d'une chaîne au hasard
# à partir du numéro de process qui lance le script
str0="$$"
str1=$(echo "$str0" | md5sum | md5sum)
firstletter=$(($RANDOM/2048))
str2=${str1:$firstletter:16}

# Affichage de l'adresse et màj de /etc/aliases
echo "Mail jetable : $str2@mescouilles.xxx"
echo "$str2: $mailto ($comment)" >> /etc/aliases
/usr/bin/newaliases
/etc/init.d/postfix reload &> /dev/null
```

C'est une bonne solution dans la mesure où cela donne vraiment des adresses uniques et difficilement exploitables par les nuisibles. Malheureusement, cette méthode exige d'avoir son serveur de messagerie sous la main ou de coder une page Web pour générer des adresses, bref cela ralentit considérablement les démarches pour générer une adresse jetable. Il faut donc réserver cette méthode aux plus douteux sites Web (et c'est pas toujours facile à déterminer…).

Ce serait quand même bien plus pratique de demander à Postfix de faire le boulot à ta place histoire que tu puisses encore plus glander devant My Little Pony. Comment ? Et bien, c'est en fait assez simple et cela tient en une seule option :

```
recipient_delimiter = +
```

J'ai mis un + mais on peut mettre n'importe quel caractère de la table ascii (sachant que « a » n'est pas forcément très recommandé…). Que va faire Postfix avec cela ? Mettons que l'on reçoit un `moncul+surlacommonde@mescouilles.xxx`. Postfix va commencer par vérifier que cette entrée n'existe pas dans `/etc/aliases` (ce qui permet d'ailleurs de rediriger les messages devenues indésirables vers `/dev/null`), puis que le compte `moncul+surlacommonde` n'existe pas et enfin, il va supprimer tout ce qui suit le + et vérifier que le compte `moncul` existe. Si ce n'est pas le cas, le message est refusé.

Une fois le paramètre mis en place, tu disposes donc d'autant d'adresses que tu le souhaites pour tous les services qui t'en demandent une : gibbon+youporn@buttse.cx, gibbon+xhamster@buttse.cx, gibbon+xvideos@buttse.cx, etc…
