E Mail Handler
Wozu einen E Mail Handler?
Das SPAM Problem
Ein gewöhnlicher Link wie <a href="mailto:meinemailadressede"> meine Mailadresse</a> auf einer Webseite hat mehrere Nachteile und es gibt allerlei Lösungsansätze um das Problem zu lösen:
- E-Mail Adresse mit <a href="mailto:meinemailadressede">meine Mailadresse</a> können von Bots* ( aus dem Quelltext gelesen und gesammelt werde, was SPAM zur folge haben kann.
- Tracking: Ein solcher Link ermöglicht es nicht, den Erfolg oder das Engagement eines E-Mail-Links zu verfolgen, was in Marketing-Szenarien problematisch sein kann, da keine Analysetools verwendet werden können, um herauszufinden, wie oft und von wem die E-Mail angeklickt wurde.
- E-Mail Adresse mit einer Websoftware / einen PHP oder Script verschlüsseln.
Aus meinemailadressede wird mene@mailadres&
Diese Methode erschwert es grundlegenden Bots, die einfach nach "mailto:" oder nach typischen E-Mail-Mustern suchen, die Adresse zu extrahieren. Sie bietet also eine gewisse Schutzschicht, ist aber kein absoluter Schutz vor allen Arten von Spambots.
Leider ist das aber auch keine perfekte Lösung, denn es gibt Bot-Programme, die in der Lage sind, HTML-Entities zu entschlüsseln und die E-Mail-Adresse dennoch auszulesen. Viele Bots sind darauf programmiert, HTML-Entities zu decodieren, da sie auch für die Anzeige in verschiedenen Sprachen verwendet werden.
- Anstatt Einer E-Mail Adresse ein Bild mit der Mailadresse als Text:
Vorteile:
Schutz vor Bots: Ein Bild, das eine E-Mail-Adresse zeigt, schützt tatsächlich vor den meisten Bots, die Texte auslesen, da diese Bots in der Regel keine Bilder analysieren können (es sei denn, sie verwenden fortschrittliche Bild-Erkennungssoftware oder optische Zeichenerkennung (OCR)). Bots, die nur HTML und Text durchsuchen, erkennen das Bild nicht als eine E-Mail-Adresse.
Nachteile und Einschränkungen:
Benutzerfreundlichkeit: Menschen müssen die E-Mail-Adresse manuell abtippen, um sie zu verwenden. Dies ist umständlich und unbequem im Vergleich zu einem funktionalen Mailto-Link, bei dem die Adresse mit einem Klick in ihrem Mail-Programm geöffnet wird.
OCR-Technologie: Es gibt immer ausgefeiltere Tools und Bots, die optische Zeichenerkennung (OCR) nutzen, um Text in Bildern zu erkennen. Auch wenn diese Technologie noch nicht perfekt ist, ist sie in der Lage, viele einfache E-Mail-Adressen aus Bildern herauszulesen.
- Variante mit dem E-Mail Handler / Script:
Das heißt, man nimmt den Text "Email an mich" und setzt einen Link auf das PHP- Script. Diese wiederum macht dann beim klicken das E-Mail Programm auf und setzt die Mailadresse, die im Script hinterlegt ist ein. Simpel, und hat bei mir bis jetzt mehr Erfolg gebracht als alles andere :-)
In diesem Fall kann ein Bot das PHP-Skript nicht direkt lesen, da der Bot nur den HTML-Link <a href="mailto.php" title="E-Mail an uns">E-Mail an uns</a> sieht. Wenn der Bot auf diesen Link zugreift, wird er nicht den PHP-Code der Datei mailto.php sehen, sondern den HTML-Code, der vom PHP-Skript erzeugt wurde, nachdem es auf dem Server ausgeführt wurde.
Ein Bot ist ein automatisiertes Programm, das bestimmte Aufgaben auf Webseiten oder in Netzwerken selbstständig ausführt. Bots können dazu verwendet werden, Daten zu sammeln, Inhalte zu durchsuchen, Nachrichten zu senden oder andere wiederkehrende Aufgaben zu erledigen. Es gibt verschiedene Arten von Bots, wie etwa Web-Crawler, die das Internet durchsuchen, oder Spam-Bots, die unerwünschte Nachrichten versenden. Bots arbeiten in der Regel viel schneller als Menschen und können ohne menschliches Eingreifen agieren.
Das Script zum öffnen des E-Mail-Programms:
<?php
// Feste E-Mail-Adresse, die als Empfänger verwendet wird
$recipient = "infomustermannde"; // Ersetze dies mit deiner festen E-Mail-Adresse
// Optionaler Betreff (kann über die URL übergeben werden)
$subject = isset($_GET['subject']) ? $_GET['subject'] : '';
// Mailto-Link erstellen
$mailto_link = 'mailto:' . urlencode($recipient);
if ($subject) {
$mailto_link .= '?subject=' . urlencode($subject); // Betreff anhängen, falls vorhanden
}
// Weiterleitung zum Mailto-Link
header("Location: $mailto_link");
exit;
?>
Script zum Zufügen eines Labels um es barrierefrei zu gestalten:
<script>
// Füge das aria-label zu allen Links mit der Klasse "email-link" hinzu
document.addEventListener("DOMContentLoaded", function() {
var emailLinks = document.querySelectorAll("a[href='mailto.php']");
emailLinks.forEach(function(link) {
link.setAttribute("aria-label", "E-Mail an uns senden, wenn Sie eine Anfrage haben");
});
});
</script>