Retour au blog
mai 2018·4 min de lectureTraduit par IA
Langue:DeutschEnglishFrançaisÖsterreichischKlingonian Version originale: Deutsch

Éviter le SPAM avec qmail

#e-mail#newsletter#protection#qmail#schutz#spam#vermeidung#werbung

Le SPAM. Tout le monde le déteste, personne ne peut (sérieusement) l'éviter. Pour garder la boîte de réception à peu près en ordre, il existe pourtant une solution plutôt confortable : les adresses e-mail temporaires ! temp-mail.org, tempmail.com, tempmailaddress.com, bytom.de… la liste est longue. Malheureusement, ce qui m'a toujours gêné dans cette solution, c'est qu'il faut d'abord aller sur le site du fournisseur, générer l'adresse, attendre que l'e-mail arrive (ce qui peut parfois prendre un certain temps) et, surtout, le fournisseur a accès à tous les e-mails, ce qui est assez inquiétant pour des raisons de sécurité. S'inscrire temporairement sur Facebook, Twitter ou autre n'est donc sûrement pas une bonne recommandation. Et qui veut s'inscrire sur divers forums juste pour poser une question ou consulter une réponse peut vite être agacé de devoir générer sans cesse de nouvelles adresses temporaires ou, pire, d'attendre l'e-mail de confirmation qui n'arrive pas, parce que le fournisseur d'adresses temporaires est bloqué par l'exploitant du forum. Que faire alors ? La solution : une combinaison d'un fichier .qmail, d'un script BASH et d'une tâche cron. Le résultat doit être que, chaque jour à 24 h 00, nous créons une nouvelle adresse e-mail au format jj.mm.AAAA@domain.com qui transfère les e-mails entrants vers notre adresse principale, et que nous faisons supprimer l'ancienne adresse.

Le fichier qMail

Commençons par la première étape : Qmail. Qmail est un serveur de messagerie pour systèmes Unix. Il a été développé en 2007, parce que sendmail présentait relativement beaucoup de bugs critiques pour la sécurité et qu'aucune autre alternative sérieuse n'était disponible. L'avantage de qmail dans notre cas est que nous pouvons définir confortablement des redirections d'e-mails via des fichiers qmail. Si vous n'hébergez pas chez uberspace.de, comme moi, il faut d'abord installer et configurer qmail comme serveur de messagerie, comme décrit sur le site de qmail. Malheureusement, je ne peux pas en dire grand-chose, car je n'ai pas eu à faire cette étape. Nous pouvons maintenant créer dans notre répertoire utilisateur (généralement sous le chemin « ~ ») des fichiers .qmail, qui sont lus automatiquement par le serveur de messagerie. Pour tester, vous pouvez créer un fichier .qmail (appelons-le simplement .qmail-hallo) dans votre répertoire personnel et y mettre votre (vraie) adresse e-mail. Notez que, pour que vos e-mails soient transférés, vous devez placer un « & » devant votre adresse, par exemple &adresse@example.com

Si vous envoyez maintenant un e-mail à hallo@deinedomain.com, il sera, si vous avez tout fait correctement, transféré automatiquement à adresse@example.com. Nous voulons évidemment automatiser le tout, pour ne pas devoir recréer le fichier chaque jour. J'ai pour cela écrit un petit script Bash qui ressemble à ceci :

#!/bin/sh
DATE=`date +%d.%m.%Y`
YESTERDAY=`TZ=GMT+24 date +%d.%m.%Y`
rm ~/.qmail-$YESTERDAY
cat <<EOF > ~/.qmail-$DATE
&meineechtemailadresse@devdave.de
EOF

Que fait-il ?

#!/bin/sh

Cela devrait être clair : le shebang indique à la console que nous lançons maintenant un script Bash.

DATE=`date +%d.%m.%Y`

Enregistre dans la variable « DATE » la date actuelle au format jour.mois.année. Nous en avons besoin pour nommer correctement le fichier plus tard.

YESTERDAY=`TZ=GMT+24 date +%d.%m.%Y`

La variable « YESTERDAY » contient la date d'hier, également au format jour.mois.année

rm ~/.qmail-$YESTERDAY

La commande rm supprime un fichier, dans notre cas le fichier .qmail d'hier, depuis notre répertoire personnel. Il se peut que votre tâche cron n'accepte pas les chemins relatifs ou ne puisse pas résoudre correctement le tilde ; il faudrait alors simplement indiquer le chemin absolu, par exemple /home/username/.

cat <<EOF > ~/.qmail-$DATE
&mail@example.com
EOF

CAT écrit le contenu dans un fichier, à savoir le fichier .qmail d'aujourd'hui. Ici, vous devez bien sûr remplacer mail@example.com par votre adresse principale. Au final, chaque exécution du script crée donc un nouveau fichier .qmail au format jour.mois.année et supprime l'ancien fichier .qmail d'hier. Exécutez le script une fois (au besoin, donnez les droits d'exécution avec chmod +x) et un fichier .qmail devrait être créé. Vous pouvez ignorer le message d'erreur, il nous dit simplement qu'aucun fichier d'hier n'a pu être supprimé.

Tâche cron

Comme dernière étape, nous automatisons le tout via notre crontab.

crontab -e

saisissez cette commande et ajoutez la ligne suivante :

@daily PFAD_ZUM_SHELL_SKRIPT

(PFAD_ZUM_SHELL_SKRIPT doit bien sûr être remplacé par votre chemin vers le script shell). Enregistrez la tâche cron, ce qui est idéalement confirmé par un

crontab: installing new crontab

Que se passe-t-il maintenant ? Chaque jour à 24 h 00, la tâche cron lancera votre script shell, qui supprime votre ancien fichier .qmail (avec la date d'hier) et en crée un nouveau. Les e-mails envoyés à l'adresse portant la date d'hier ne sont plus transférés, et les e-mails que vous faites envoyer à l'adresse portant la date du jour arrivent tranquillement dans votre boîte principale. Avant que quelqu'un ait l'idée de vendre votre adresse, elle est donc déjà supprimée :-)

TL;DR

  1. Installer Qmail, s'il ne l'est pas déjà
  2. Créer le script Bash ci-dessus, l'adapter et, au besoin, le rendre exécutable avec chmod +x
  3. crontab -e
  4. @daily PFAD_ZUM_SKRIPT

PS : comme je n'ai pas eu à installer qmail moi-même, je ne peux malheureusement rien en dire. J'aimerais toutefois savoir si l'installation vous a paru facile ou s'il y a encore quelque chose à noter ? N'hésitez pas à laisser votre avis dans les commentaires.

Plus récentPromises JavaScriptPlus ancienSnippets PHP