- Ich bin Brian und meine Frau ist auch Brian.
- -- Monty Python, "Das Leben des Brian"
Ich bin ein Mann mit vielen Identitäten, zumindest wenn es um E-Mail Adressen geht. Für jede Mailingliste gibt es eine andere Adresse, so dass ich sie auch mit "Gewalt" abbestellen kann, durch löschen der Mailadresse. Wenn man selbst Administrator seine Maildomain ist, ist dies nicht wirklich ein Problem.
Ein anderes Problem ist aber, dass die meisten Mailinglisten die Absendeadresse überprüfen, so dass nur derjenige dort etwas posten kann, der diese Liste auch liest. Da schlägt diese Idee nun fehl. Also musste ich mich in den wirklich wichtigen Mailinglisten, die über diesen Schutz verfügen, doch mit einer meiner drei Hauptmailadressen eintragen. Dies liegt hauptsächlich daran, dass mein Mailprogramm, "
pine", nur die Angabe einer Maildomain zulässt, aber bei dem Benutzernamen immer den des Unix-Logins nimmt.
Heute war mal wieder ein solcher Tag an dem mir eine solche Mail an eine Mailingliste als "Ätschmann, Du bist blöd und darfst hier nicht posten" zurückgekommen ist. Da hatte ich dann doch ein ganz klein wenig die Schnauze voll, und nahm mir den Sourcecode von "pine" vor. Ich erwartete einen ultraüblen Hack meinerseits, die mindestens ein halbes Dutzend von Sicherheitsmechanismen außer Gefecht setzen muss. Aber egal, ich war gerade angepisst genug, um wenigstens mal nachzuschauen und nach einer Stunde frustriert aufzugeben. Also wühlte ich mich ein wenig via
grep und einem Textviewer durch den Sourcecode.
Die Idee war folgende: "pine" hat einen Modus für einen erweiterten Mailheader, der sich mit der Tastenkombination "Control-R" ein- und ausschalten lässt. Durch diesem erweiterten Modus wird unter anderen auch das "Bcc:" Feld mit aktiviert. Erster Schritt ist als nun das Feld "From:" dort ebenfalls wie "Bcc:" mit reinzubekommen. Nach etwas Suche fand ich die erste Stelle, an der sowohl "From:" als auch "Bcc:" in einer Struktur behandelt werden. Leider waren die Parameter für die beiden Felder die gleichen, so dass dies nicht die gesuchte Stelle sein konnte.
Aber so schnell gebe ich dann doch nicht auf. Die zweite Struktur beinhaltete ein Element, welches im Kommentar mit dem Bezeichnung ":canedit:" versehen war. Ist dies, das gesuchte Feld? Kurz den Wert dieses Feldes für den Eintrag "From:" von "0" auf "1" geändert, und durchkompiliert. Und siehe da, nach dem Drücken von "Control-R" konnte ich auf einmal auch die Absendeadresse eingeben, ganz sauber in den Editor mit eingebettet, inklusive der aktuellen E-Mailadresse als Defaultwert. Das ging ja besser als erwartet.
Als nächstes galt es dann herauszubekommen, wo es dann als nächstes nicht passen will. Dazu schicke ich mir dann eine Testmail, und komme aus dem Staunen nicht mehr raus. Es funktioniert. Einfach so. Ich musste nur ein einziges verdammtes Bit ändern, um die gewünschte Funktionalität freizuschalten.
Und hier meine Erkenntnis zum Selbstnachbauen: in der Datei pine/send.c die Zeilen mit dem Inhalt
static PINEFIELD pf_template[] = {
{"From", Address, 0, 1, 1, 0},
suchen. Bei Pine 4.64 ist sind dies die Zeilen Nummer 2312 und 2313. Dort dann die erste "0" gegen eine "1" austauschen.
Falls jetzt jemand auch die Idee kommen sollte mir vorzuwirfen, dass ich hier Spammer mit diesem Trick unterstütze, möge er doch bitte nochmal nachdenken. Dafür gibt es längst Tools, die diese Funktionalität beinhalteten neben vielen anderen tollen Spamfeatures. Und der DAU, der meint, damit jemanden unter falscher Absendeadresse etwas zuschicken zu können, wird wohl an dem Hürde des Kompilierens von "pine" scheitern, dass ist nämlich doch etwas komplexer als das übliche "./configure && make" und verlangt auch etwas Systemwissen. So sehe ich also keine wirklichen Bedenken ein solches, etwas "heikles" Feature, publik zu machen.
Verdammt, warum bin ich nicht schon viel früher auf die Idee gekommen, mal nachzuschauen ob ich das nicht hinbekomme?
Kommentare
In Setup->Config:
Feature List:
[X] Allow Changing From
Customized Headers = From:
Und das war es dann schon.