⬅ Zurück zur Übersicht

SPAM vermeiden mit qmail

david am Freitag, 11.05.2018 - 13:28:13
⬅ Zurück zur Übersicht

SPAM. Alle hassen ihn, keiner kann ihn (ernsthaft) vermeiden.
Um die Inbox allerdings einigermaßen aufgeräumt zu halten gibt es eine recht komfortable Lösung:
Temporäre E-Mail – Adressen!
temp-mail.org, tempmail.com, tempmailaddress.com, bytom.de… die Liste ist lang.
Leider hat mich an dieser Lösung schon immer gestört, dass ich erst auf die Seite des Anbieters muss, die Adresse generieren, warten bis die Mail ankommt (was u.U. auch mal eine Zeit lang dauern kann) und nicht zuletzt hat der Anbieter Zugriff auf alle E-Mails, was aus Sicherheitsgründen schon etwas gruselig ist. Sich mal temporär bei Facebook, Twitter o.ä. anmelden ist damit sicher keine so gute Empfehlung.
Und wer sich in verschiedenen Foren anmelden will, nur um mal kurz eine Frage zu stellen oder eine Antwort anzusehen, kann ganz schön schnell genervt werden wenn man ständig neue Temp – Mailadressen generieren muss oder – noch schlimmer – man wartet auf die Bestätigungsmail, aber sie kommt nicht, da der Tempmailanbieter vom Forenbetreiber gesperrt wird. Was also tun?

Die Lösung: Eine Kombination aus .qmail – Datei, BASH – Skript und Cronjob.
Das Ergebnis sollte so aussehen, dass wir jeden Tag um 24:00 eine neue E-Mail – Adresse im Format
dd.mm.YYYY@domain.com erstellen, welche eingehende Mails an unsere primäre Mailadresse weiterleitet und die alte Mailadresse löschen lassen.

Die qMail Datei

Fangen wir mit dem ersten Schritt an: Qmail.
Qmail ist ein Mailserver für Unix Systeme. Er wurde 2007 entwickelt, da sendmail relative viele sicherheitskritische bugs aufwies und sonst keine ernstzunehmende Alternative verfügbar war. Der Vorteil von qmail ist in unserem Fall, dass wir E – Mail – Weiterleitungen komfortabel über qmail – Dateien festlegen können.
Solltest du nicht bei https://uberspace.de hosten, so wie ich, ist es zuerst notwendig qmail als Mailserver zu installieren und einzurichten, so wie auf der qmail – Webseite beschrieben. Leider kann ich dazu nicht viel schreiben, da ich diesen Schritt nicht machen musste.
Wir können nun in unserem Benutzerverzeichnis (im Regelfall unter dem Pfad „~“ zu finden) .qmail – Dateien anlegen, welche vom Mailserver automatisch ausgelesen werden. Zum Test kannst du ja mal eine .qmail – Datei (wir nennen sie einfach mal .qmail-hallo) in deinem Home – Verzeichnis anlegen und mit deiner (korrekten) Email – Adresse füttern. Beachte, dass du – damit deine Mails weitergeleitet werden – ein „&“ vor deine Mailadresse setzen musst, also beispielsweise
&adresse@example.com
Wenn du jetzt eine E-Mail an hallo@deinedomain.com schickst, wird diese, sofern du alles richtig gemacht hast, automatisch an adresse@example.com weitergeleitet.
Das ganze wollen wir jetzt natürlich automatisieren, damit wir nicht jeden Tag erneut die Datei erstellen müssen.
Dazu habe ich mir ein kleines Bash – Skript geschrieben, das folgendermaßen aussieht:

1
2
3
4
5
6
7
#!/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

Was machst das nun?

1
#!/bin/sh

Sollte klar sein – der Shebang sagt der Konsole, dass wir jetzt ein Bash – Skript starten.

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

Speichert in der Variable „DATE“ das aktuelle Datum im Format Tag.Monat.Jahr.
Brauchen wir, um die Datei später korrekt zu benennen.

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

Die Variable „YESTERDAY“ enthält das Datum von gestern, ebenfalls im Format Tag.Monat.Jahr

1
2
3
4
5
rm ~/.qmail-$YESTERDAY</code>
Der Befehl rm löscht eine Datei, in unserem Fall die .qmail - Datei von gestern, und zwar aus unserem Home - Verzeichnis. Möglicherweise akzeptiert euer Cronjob keine relativen Pfade bzw. kann die Tilde nicht richtig auflösen - dann müsste ihr einfach den absoluten Pfad, bspw. /home/username/ dazu angeben.
[cc lang="bash"]cat &lt;&lt;EOF &gt; ~/.qmail-$DATE
&amp;mail@example.com
EOF

CAT schreibt den Inhalt in eine Datei, und zwar in die .qmail – Datei von heute. Hier musst du natürlich mail@example.com mit deiner primären Mailadresse ersetzen.
Im Ergebnis erstellen wir also jedes mal, wenn das Skript ausgeführt wird, eine neue .qmail – Datei im Format Tag.Monat.Jahr und löschen die alte .qmail – Datei von gestern.
Skript einmal ausführen (ggfs. mit chmod +x noch Ausführrechte geben) und es sollte eine .qmail – Datei erstellt werden. Die Fehlermeldung kannst du ignorieren, die besagt uns einfach nur dass keine Datei von gestern gelöscht werden konnte.

Cronjob

Als letzten Schritt automatisieren wir das ganze durch unsere crontab.

1
crontab -e

eingeben und folgende Zeile hinzufügen:

1
@daily PFAD_ZUM_SHELL_SKRIPT

(Wobei PFAD_ZUM_SHELL_SKRIPT mit deinem – wer hätte es gedacht – Pfad zum Shellskript ersetzt werden muss).
Cronjob speichern, was im besten Fall mit einem

crontab: installing new crontab

quittiert wird.
Was passiert jetzt?
Immer um 24:00 wird der Cronjob dein Shell – Skript starten, welches deine alte .qmail – Datei löscht (mit dem Datum von gestern) und eine neue .qmail – Datei erstellt. E-Mails, die jetzt an die Adresse mit dem gestrigen Datum gehen, werden nicht weitergeleitet, und E-Mails, welche du an die Adresse mit dem aktuellen Datum senden lässt, werden dir entspannt in dein primäres Mailpostfach weitergeleitet. Bevor also jemand auf die Idee kommt, deine Mailadresse zu verkaufen, ist sie schon wieder gelöscht 🙂

TL;DR

  1. Qmail installieren, wenn nicht schon installiert
  2. Bash Skript von oben erstellen, anpassen und mit chmod +x ggfs. ausführbar machen
  3. crontab -e
  4. @daily PFAD_ZUM_SKRIPT

PS: Da ich qmail nicht selbst installieren musste, kann ich dazu leider nichts sagen. Mich würde aber interessieren, ob euch die Installation einfach gefallen ist oder ob es da noch etwas zu beachten gibt? Ihr könnte eure Meinungen dazu gerne in den Kommentaren hinterlassen.

Kommentar schreiben

Kommentare