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-460909393.dpndi@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!

Dieser Eintrag wurde veröffentlicht in Alle Artikel, Uberspace und getaggt als , , , , , , , , . Fügen Sie den permalink zu Ihren Favoriten hinzu.

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

  1. MrChick sagt:

    Riesen Dank erstmal für das Script und die Ausführung!

    Spontane Idee (ich habs noch nicht recherchiert, nur ne Idee!): wäre es auch möglich, Mails, die an eine abgelaufene Adresse gehen, in einen extra Ordner zu werfen anstatt sie zu verwerfen?

    So nach dem Motto “Ist wahrscheinlich Spam, aber alle 2 Wochen kann man das schonmal überfliegen”.
    Ich hab da immer etwas Bauchweh beim Gedanken dass etwas, was ernsthaft an mich adressiert ist, im Nirvana landet…

    • Ben sagt:

      Gute Idee – spontan konnte ich auch nichts dazu finden.

      Da qdated-check bei einem negativen Prüfergebnis direkt “exit 100” zurückgibt, ist das auch der Ausstieg aus der .qmail Datei. Idee: Du bastelst dir ein Script, an das du die Email gibst. Darin führst dann qdated-check aus und wertest das Ergebnis aus.

      Der Sender bekommst übrigens eine “failure notice”-E-Mail zurück, wenn die Adresse abgelaufen war – er weiß also, dass du den Inhalt nicht erhalten hast.

      Würdest du die Mails in einem Spam-Postfach annehmen, wäre das nicht der Fall. Hinzu kommt, dass du dann jede Woche eine neue, “halb-gültige” Adresse erstellst, damit bist du dann über weitere Kanäle für Spam erreichbar!

      Trotzdem interessiert es mich, ob es eine Lösung zu deiner Frage gibt!

    • Ben sagt:

      Du könntest aber versuchen, dir diese Funktion mit “maildrop” zu basteln: https://uberspace.de/dokuwiki/mail:maildrop

  2. Marian sagt:

    Nette Idee.

    Zwei Punkte:

    Ich würde den Cronjob jeden Tag ausführen. Wenn du ihn nur wöchentlich ausführst, ist die Adresse, die Sonntag Abends auf der Seite steht, noch weniger als 24h gültig.

    Zweitens finde ich so ein Script eine ziemlich schlechte Idee. Abgesehen davon, dass es nicht gerade sicher ist, so ein Script von einer wildfremden Seite (auch noch ohne HTTPS) runterzuladen und einfach auszuführen, auch das Script an sich hat einige Probleme, weil es unflexibel ist.
    So ist z.B. die Versionsnummer von qdated fest eincodiert. Und was ist, wenn es ~/bin nicht gibt?
    Außerdem ist es nicht gerade kompliziert, was man hier einrichtet, und es wäre doch wünschenswert und auch leicht möglich, dass die Leute verstehen, was sie da tun.
    Es hätte IMHO gereicht, das new_mail-Script mit Beispiel-Konfigurationsvariablen hier einzustellen, und die Leute installieren sich qdated selber, und fertig.

    Das aber nur als Kritik am Rande fürs nächste Mal – danke für die Anleitung!

    • Ben sagt:

      Hi, danke für deine Anmerkungen: Nachvollziehbar!

      Dass die Adresse Sonntags nur noch kurz gültig ist sehe ich nicht als Problem, da ich diese Adresse nicht zum Senden, sondern nur zum Empfangen benutze. Wenn ich jemandem, der an diese Adresse gesendet hat, antworte, dann mit einer normalen, dauerhaft gültigen!

      Https kann ich reinmachen, das sehe ich aber nicht so eng, da keine kritischen Informationen übertragen werden.

      qdated wurde vor knapp 10 Jahren das letzte Mal aktualisiert, deshalb die feste Versionsnummer – generell bin ich bei solchen Anleitungen auch eher ein Freund von “latest.zip” ;-)

      Liegt ~/bin nicht in jedem Uberspace? Das muss ich nochmal schauen..

      Ich erwarte von den Anwendern, dass sie sich bewusst machen, was bei der Installation passiert und warum. Trotzdem hat auch derjenige, der das nicht verstehen kann oder will die Chance, das in wenigen Minuten fertig einzurichten. Ich selbst werde das auch noch auf 2-3 Uberspaces einrichten und möchte all diese Einzelschritte nicht jedes Mal neu ausführen.

      Die Skripte sind hier abgedruckt um sie vor dem Download lesen zu können. Was dann tatsächlich in der .zip Datei ist, weiß der Leser natürlich nicht, kann aber auch einfach die Skripte von hier kopieren und ausführen. Oder “abschreiben” und die Schritte per Hand ausführen. So würde ich es selbst wahrscheinlich machen – und nicht von einer fremden Quelle herunterladen. Da verstehe ich, was du meinst!

      Gruß,
      B

    • Ben sagt:

      Tatsächlich habe ich nun die .zip Datei in dieser Anleitung entfernt, da ich das Installationsskript angepasst habe und nicht jedes Mal die Datei neu hochladen möchte! ;-)

  3. Patrick sagt:

    Danke für das nette Tut.
    Ich glaube ich hab einen Fehler im “install_qdated.sh” Script gefunden:
    In Zeile 52 steht: echo “TIMESTAMP=~/bin/qdated/qdated-now” >> ~/bin/qdated/get_new_mail.sh

    Diese schreibt nicht wie gewünscht ~/bin/qdated/qdated-now in TIMESTAMP, sondern direkt den Timestamp, welcher von qdated-now zum Zeitpunkt des Aufrufens von “install_qdated.sh” erzeugt wurde.

    Bin aber auch nur darauf gekommen, weil bei mir das Ausführen von “get_new_mail.sh” immer die gleiche Mail-Adresse erzeugt hat.
    MfG

    • Ben sagt:

      Vielen Dank für den Hinweis – ein grober Fehler der mir nicht aufgefallen ist!

      Ich werde das Tutorial anpassen, denke es reicht, wenn man die Hochkommas escaped!

      Gruß
      B

    • Ben sagt:

      Sehr eigenartig.. tatsächlich habe ich beim Schreiben des Artikels / Posten des Scripts nicht vergessen, die Hochkommas zu escapen, sie werden sogar noch im WordPress Artikel (im Backend) gespeichert – hier auf der fertigen Homepage jedoch nicht angezeigt.. das muss ich genauer untersuchen!

    • Ben sagt:

      Also gut, WordPress möchte das also nochmal escaped haben.. ich muss es also falsch (mit 2 Backslashes) abspeichern, damit es hier korrekt angezeigt wird (mit einem Backslash).

      Danke nochmal! ;-)

  4. Als kleine Ergänzung würde ich gerne noch anmerken:
    Es ist kein Problem, mehrere temporäre Adressen gleichzeitig zu haben, z.B. um, wie in meinem Fall, jedem Familienmitglied eine eigene zu verpassen.
    Dazu muss man im get_new_mail.sh nur den Generieren-Teil multiplizieren:

    PREFIXA=DEIN GEWAEHLTEs PREFIX
    SUFFIX=@DEINE DOMAIN
    TIMESTAMP=~/bin/qdated/qdated-now
    TOPATH=~/html/current_mail_a

    echo -n $PREFIX$TIMESTAMP$SUFFIX > $TOPATH

    PREFIXB=DEIN GEWAEHLTEs PREFIX
    TIMESTAMP=~/bin/qdated/qdated-now
    TOPATH=~/html/current_mail_b

    echo -n $PREFIX$TIMESTAMP$SUFFIX > $TOPATH

    Das Suffix muss natürlich nicht verdoppelt werden, sofern man nicht gänzlich unterschiedliche Adressen haben will.
    Meine Empfehlung zu mehr Sicherheit:
    Zwischen den beiden Abschnitten ein “sleep 2” ohne “” eintragen. Das verzögert das Skript kaum, sorgt aber durch ein deutlich geändertes Suffix zwischen . und @. Ohne Sleep ist die Adresse abgesehen vom Prefix identisch für alle Nutzer.

    In der PHP-Datei kann man dann entsprechend current_mail_a und current_mail_b einbinden.

  5. Danke für die Erklärung, habe schon lange danach gesucht.

    Allerdings scheint es, als währe der Link tot, von das Shell-Script die .tar.gz-File laden soll. Währe super wenn der Link ausgetauscht werden könnte. Schonmal danke im Vorraus und weiter so! ;-)

    Gruß, Leo

  6. Jonas sagt:

    Hallo,

    leider ist die Download-Site von qdated offenbar schon einige Zeit offline. Einer unserer User hat das .tar.gz noch irgendwo ausgegraben und stellt es unter leonardl.de noch bereit. Vielleicht magst du es auch direkt bei dir als Mirror anbieten, damit die Leute, die deiner Doku folgen wollen, das Tool auch nutzen können.

    Viele Grüße,
    Jonas

  7. RainerM sagt:

    Hallo

    Vielen Dank für die Scripte und die ausführliche Anleitung. Sie ist gut verständlich.
    Auch mich würde es interessieren Mails die an abgelaufene Adresse gehen, in einen extra Ordner zu verschieben bzw. einen Eintrag im Header zu geben.

    In deinem Artikel zu den Trashmails führst Du ja qdated-check in einem Script aus und hast die Rückgabe in einer Variablen. Wie kann ich diese nun aber per |maildrop zur Auswertung mit einer Filterdatei weitergeben? Da wäre es dann möglich per xfilter einen Eintrag im Header zu machen, welcher dann weiter genutzt werden kann.

    Gruß Rainer

    • Ben sagt:

      Hi,

      mit den Filtermöglichkeiten im Uberspace habe ich mich noch nicht genauer auseinander gesetzt, kann also dazu aktuell nichts sagen.

      Meine persönliche Meinung dazu: Ich möchte lieber, dass die Mails gebouced werden – dann weiß der Sender nämlich, dass seine Mail nicht ankam. Wenn es ein Spambot ist, hat er Pech gehabt, wenn es aber ein echter Mensch ist, kann der sich fragen “was habe ich falsch gemacht?” und den korrekten Weg gehen: Sich über eine gültige Adresse bei dir melden!

      Aber wie gesagt: Ich denke trotzdem mal über andere Möglichkeiten nach! Vielleicht kann man ja dem Sender ja auch eine Fehlermeldung produzieren und trotzdem die Mail annehmen?

      Gruß
      B

      • RainerM sagt:

        Hallo

        Hier habe ich mal eine Lösung. Ich habe dazu den parse_trashmail script genommen.
        So bekommt der Absender die Fehlermeldung und man selber die Mail noch zugestellt.

        export DEFAULT=$1

        # T1 hier kommt die Adresse hin wohin die verfallenen Mails gesendet werden sollen
        # ich nehme hier eine locale Adresse –> uberspaceuser-adresse

        T1=”uberspaceuser-adresse”

        ~/bin/qdated/qdated-check $2 < /dev/stdin

        EXITCODE=$?

        # wenn der EXITCODE=100 ist wird die Mail zu der Adresse für verfallene Mails geleitet
        # und der Script mit dem EXITCODE=100 verlassen und der Absender bekommt die Fehlermeldung
        # Ist der EXITCODE=0 wird die Mail ganz normal weitergeleitet.

        if [ "$EXITCODE" == "100" ]
        then
        forward $T1
        fi

        exit $EXITCODE

        Gruß Rainer

  8. RainerM sagt:

    Hallo

    Die Lösung passt eigentlich nur beim Artikel zu den Wegwerfadressen.
    Ich hoffe das es mit dem Link klappt. Wegwerfadressen

    • Ben sagt:

      Vielen Dank! Deine Anfrage vorhin hat mir dann doch keine Ruhe gelassen und ich habe ergänzend ein neues Tutorial geschrieben: klick.

      (P.S.: Deinen Link zu den Wegwerfadressen habe ich korrigiert, da ging wohl was schief)

  9. Pingback: Temporär gültige Mailadresse im Impressum | Rettungsdroide

  10. Leonard Lamprecht sagt:

    Moin!

    Ich wollte dich nur informieren, dass die offizielle Seite von qdated wieder online ist. Soll heißen, ich nehm die Datei in wenigen Tagen von meinem Space runter. Währe also super, wenn du die URL der .zip wieder auf folgendes umstellst:

    http://www.palomine.net/qdated/qdated-0.53.tar.gz

    Gruß, Leo

  11. DasSkar sagt:

    qdated ist leider wieder down. Auch Leos Seite existier nicht mehr :(
    Gibt’s eine andere vertrauenswürdige Quelle?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.