Funkenstrahlen Podcasting, Netzpolitik, App-Entwicklung

Meltmail Spam Adresse in die Webseite einbinden

Viele Spam Mails erhalte ich, weil meine Mailadresse frei im Netz sichtbar ist. Im Impressum bin ich gezwungen eine gültige Mailadresse anzugeben.

Wie ich meine Meltmail Spam Adresse erstelle, habe ich hier erklärt.

Es gibt zwei Möglichkeiten diese Adresse auf einer Webseite einzubinden. Entweder erledigt das der Server beim Ausliefern der Seite (zum Beispiel in PHP) oder der Client lädt sich die Daten per JavaScript nach und bindet sie dann in die Seite ein.

PHP Include

Diese Möglichkeit könnt ihr nutzen, wenn eure Seite ohnehin PHP basiert ist. Einfach das hier an die richtige Stelle packen:

<?php include '../html/meltmail';?>

Der Pfad muss bei euch wahrscheinlich angepasst werden. Ich betreibe funkenstrahlen.de als eigenen Ordner neben meinem Uberspace html Ordner, in dem meine Meltmail Datei liegt. Daher ist für mich ../html/meltmail der richtige Pfad.

Wenn ihr Wordpress einsetzt, dann ist das ein wenig aufwendiger. Hier müsst ihr zunächst ein Plugin erstellen. Wie das geht ist hier ganz toll beschrieben.

Client Side Embed mit JavaScript

Da ich Jekyll einsetze und damit eine statische Seite, kann ich die PHP Methode nicht nutzen. Stattdessen verlagere ich das Einbinden der aktuellen Adresse mit JavaScript in den Client.

Ich binde dieses <div> in die Seite ein:

<div id="meltmail"></div>

Außerdem dieses kleine JavaScript, das meine aktuelle Adresse von /meltmail abruft und dann in das div einbindet.

<script type="text/javascript">
//<![CDATA[
	var xhttp = new XMLHttpRequest();
	xhttp.onreadystatechange = function() {
	  if (xhttp.readyState == 4 && xhttp.status == 200) {
	    document.getElementById("meltmail").innerHTML = "<a href=\"mailto:" + xhttp.responseText + "\">" + xhttp.responseText + "</a>";
	  }
	};
	xhttp.open("GET", "/meltmail", true);
	xhttp.send();
//]]>
</script>

Wichtig hierbei ist, dass die meltmail Datei unter der selben Domain liegen muss (Same Origin Policy).

Daher habe ich in meinem Uberspace einfach einen Softlink auf meltmail erstellt. Zusätzlich musste ich in der _config.yml von Jekyll noch keep_files: [meltmail] hinzufügen, damit Jekyll beim Bauen den Softlink nicht wieder entfernt.