Temporär gültige E-Mail Adressen im Uberspace erstellen (qdated)

Vorwort

Wer einen Blick ins Impressum von Jonas Pasche und seinem Team wirft, wird schnell die kryptisch aussehende Kontakt-E-Mail-Adresse bemerken. Zum Glück steht auch dabei, was es damit auf sich hat: Die E-Mail-Adresse ist nur für die Dauer einer Woche gültig – das soll vor Spam schützen. Ob das auch im Uberspace geht, habe ich kurz per Twitter angefragt, die knackige Antwort lautet: „Das macht qmail-qdated: http://www.palomine.net/qdated/„.


Anmerkung: Die Seite des qdated-Entwicklers ist vom Netz gegangen. Einen Mirror zu den benötigten Dateien hat der Kommentator Salocin im web.archive.org gefunden!

Homepagebetreiber müssen spätestens im Impressum ihre Kontaktangaben – auch die E-Mail-Adresse – hinterlegen. Man muss sogar mit Hilfe dieser Angaben erreichbar sein. Gerade die E-Mail-Adresse geriet dann schnell ins Visier von Robotern, die das Internet nach neuen Adressaten für Spam durchsuchen. Der Vorteil einer temporär gültigen E-Mail-Adresse liegt also auf der Hand: Landet eine solche E-Mail-Adresse in einen Spam Verteiler, kann das nur innerhalb der festgelegten Gültigkeitsdauer nerven.

Anmerkung: Wer keine Domain auf seinen Uberspace geschaltet hat, denkt sich statt „@domain.de“ einfach „@username.server.uberspace.de“!

Anmerkung: Wer nur die Wegwerf-Adressen nutzen möchte, benötigt natürlich einige Teile dieser Anleitung (und des Shell-Skriptes) nicht. In diesem Fall sind nur die 3 qdated-Programme in ~/bin/qdated und der Key (~/.qdated-key) wichtig. Wer trotzdem dieser Anleitung folgt, aber keinen Cronjob einrichtet, hat auch nichts falsch gemacht..

Anmerkung: Die aus dem Browser kopierten Skripte können Probleme bereiten, in diesem Fall bitte folgenden Kommentar beachten: Kommentar von Gabriel L.

Theorie

Ich reiße nun kurz an, wie qdated in Verbindung mit .qmail Dateien funktioniert (Details dazu gibts hier und hier). qdated besteht aus drei Unterprogrammen: Eines erstellt einen Key zum Erzeugen und späteren Überprüfen eines gültigen Zeitstempels („qdated-makekey“), eines erzeugt neue, gültige Zeitstempel (als teil der E-Mail Adresse, „qdated-now“) und das dritte prüft die Zeitstempel im Empfänger-Feld eintreffender E-Mails auf ihre Gültigkeit („qdated-check“). Benötigt werden zwei E-Mail Adressen: Eine, die mit Zeitstempeln versehen (im Beispiel: „dated-ZEITSTEMPEL@domain.de“) werden kann und eine, an die gültige E-Mails weitergeleitet werden (im Beispiel: „info@domain.de“, die Weiterleitung kann auch an eine Adresse außerhalb des Uberspaces erfolgen!). Die E-Mail-Adresse mit den Zeitstempeln muss bzw. darf nicht extra angelegt werden, sondern wird über eine .qmail-Datei abgebildet. Damit sie erst einmal alle E-Mails an „dated-IRGENDWAS@domain.de“ empfängt, muss die .qmail-Datei „.qmail-dated-default“ heißen. In dieser Datei wird die Prüfung mittels qdated-check ggf. die anschließende Weiterleitung veranlasst. Grundsätzlich ist der Ablauf also folgendermaßen:

  1. Installation des qdated Pakets
  2. Erstellung eines qdated-Keys (einmalig)
  3. Anlegen einer .qmail-XYZ-default Datei mit Filter- und Weiterleitungsanweisungen
  4. Erzeugung aktueller Zeitstempel (als Teil der E-Mail Adresse)

qdated-now gibt nur einen Zeitstempel (bestehend aus der eigentlichen Zeit und einem Prüfwort) aus – die gesamte E-Mail Adresse muss man selbst bilden (im Beispiel: „dated-ZEIT.PRUEFWORT@domain.de“). Das maximal erlaubte Alter  einer E-Mail-Adresse wird in der .qmail Datei durch einen Paramter für qmail-check angegeben (Werte unter 1000: Gültigkeit in Tagen, Werte über 1000: Gültigkeit in Sekunden). Ein gängiger (der Default-)Wert wäre „7 Tage“. Zur Sicherheit gebe ich „7 Tage und 12 Stunden“ (in Sekunden) an, damit Downtimes, in denen ggf. gar keine E-Mail-Adresse gültig wäre, ausgeschlossen sind. Neue E-Mail Adressen erzeuge ich mit einem Cronjob.

Umsetzung

Genug der Theorie: Ich habe gleich versucht, das Ganze möglichst einfach im Uberspace einzurichten. Dabei entstand ein Shell-Script, das dem Anwender die gröbste Arbeit abnimmt. Es sollte im Benutzerverzeichnis ausgeführt werden. Dann lädt es qdated herunter, compiliert es, legt das Programm in ~/bin/qdated ab, erzeugt den benötigten qdated-Key und erstellt auch gleich eine konfigurierte .qmail Datei. Dazu wird zunächst gefragt, an welche Adresse gültige E-Mails weitergeleitet werden sollen. An dieser Stelle kann eine vollständige E-Mail Adresse stehen, oder in Uberspace Syntax: „UberspaceBenutzername-Adresse“ (Beispiel: im Uberspace „heidemarie“, mit der Domain „ichmagwiesen.de“ habe ich die E-Mail Adresse „info@ichmagwiesen.de“ eingerichtet, also gebe ich „heidemarie-info“ ein!). Anschließend brauchen wir noch das Präfix für die Zeitstempel-Adressen (Im Beispiel: E-Mails sollen an „dated-ZEIT.PRUEFWORT@domain.de“ gehen, also hier nur „dated“ eintragen). Im nächsten Schritt noch die Domain eingeben, also das, was hinter dem @-Zeichen deiner temporär gültigen E-Mails steht (z.B. „domain.de“, ohne @!). Zum Schluss wird gleich noch ein Script erstellt, das von einem Cronjob aufgerufen werden kann, vollständige E-Mail Adressen mit Zeitstempel erzeugt und in eine Datei ins ~/html-Verzeichnis schreibt – zum Einbinden in die Homepage.

Zur Einrichtung von qdated in deinem Uberspace führe das folgende Script in deinem Uberspace aus (kurze Anleitung zum Ausführen von Scripten):

(Inzwischen auf Github, zur einfacheren Verwaltung und Korrektur des Scripts)

Das Script das eine neue, temporär gültige E-Mail Adresse ausgibt bzw. in „~/html/current_mail“ schreibt wurde durch das Installationsscript in „~/bin/qdated/get_new_mail.sh“ bereits erstellt und sieht folgendermaßen aus:

Cronjob

Das soll in meinem Fall einmal wöchentlich geschehen. Dazu legen wir mit crontab -e  einen Cronjob an, der das Montag morgens um 4:00 Uhr macht. Die Zeile muss lauten:

Anschließend speichern und schließen (mit nano: STRG+o, STRG+x), damit ist der Cronjob eingerichtet. Zum Testen am besten einmal selbst ~/bin/qdated/get_new_mail.sh  ausführen und in die erzeugte Datei schauen:  cat ~/html/current_mail

Automatisches Einbinden

Hat auch geklappt? Gut! Jetzt soll das ja noch automatisch auf die Homepage. Das kann man z.B. mit einem PHP Include (ggf. Pfad anpassen!) ganz einfach machen:

Klappt auch mit „mailto:“-Link:

Viele Uberspace-User haben WordPress Blogs! Dort kann man standardmäßig innerhalb eines Beitrages keine PHP-Include Anweisungen platzieren, das ist auch gut so. Wie ihr die Adressen trotzdem automatisch reinbekommt, erfahrt ihr in diesem Artikel: Eine Datei mit PHP include() in WordPress Artikel einbinden

Verworfene E-Mails trotzdem empfangen

Aufgrund einiger Nachfragen wurde ein weiteres Tutorial hinzugefügt. Damit ist es möglich, Mails, die an eine abgelaufene Adresse geschickt wurden, zu empfangen, und trotzdem dem Sender eine Fehler-Mail zukommen zu lassen.

Löschen

Zum Löschen des Ganzen beginnen wir am besten mit dem Cronjob, der neue E-Mail Adressen erzeugt. Dazu wieder  crontab -e aufrufen und die entsprechende Zeile entfernen oder mit ‚#‘ auskommentieren.

Anschließend im Homeverzeichnis die .qmail-Datei löschen, die auf die Zeitstempel-Mails hört. Zusätzlich noch den .qdated-key und ggf. die erzeugte „current_mail“ Datei (ggf. Pfad und Name anpassen!) mitnehmen:

Fehlt nur noch der Ordner im ~/bin Verzeichnis:

Wegwerfadressen

Die hier beschriebene Idee, aus diesem Prinzip echte Wegwerfadressen zu erzeugen, habe ich nun in neuen Skripten umgesetzt! Hier ist der Artikel.

Verbesserungsvorschläge? In die Kommentare oder per Mail an dated-640437801.imdbf@8300111.de ;-) !

Anmerkung: Dieser Artikel und Blog ist zum aktuellen Zeitpunkt (Oktober 2013) ca. ein halbes Jahr alt, hat zwar schon über 1000 erkannte Spam-Kommentare gefiltert, zur mir ist jedoch noch keine einzige Spam-Mail gelangt!