Ich dachte eigentlich, daß dieses Thema zur Genüge im Netz dokumentiert
sei. Deshalb haben mich die eMails, die mich ziemlich zahlreich erreicht
haben, auch überrascht. Es geht darum die eMail-Adresse vor "Robots" zu verbergen, die nur dazu geschaffen wurden derlei Informationen auszuspähen und der werbenden Industrie zur Verfügung zu stellen. Das kann zu einer Flut von "Spam" führen.
Die Suchengines werden immer schlauer und selbst nur als Grafik hinterlegte Adressen werden gefunden. Das beste ist es also die Adresse überhaupt nicht preis zugeben. Das hat natürlich den Nachteil, daß der Besucher meiner Site seinen bevorzugten eMail-Client nicht verwenden kann und auf unser Formular angewiesen ist. Ich kenne genug Kunden, die dies ablehnen und lieber auf die Kontaktaufnahme verzichten.
Als Entwickler muß ich jedoch auch einen Ausweg aus dem Dilemma finden. Ich habe daher einen Dreiwegeplan eingeschlagen:
- Es gibt das Formular,
- abgesichert durch ein "Google"-reCaptcha, das mir auch Hilft meine eMail-Adressen abzusichern.
- Und verborgene eMail-Adressen (durch Unicodes).
Nun, zum Formular muß ich glaube ich nichts sagen, daß sollten Sie im Baukasten haben (falls nicht senden Sie mir eine eMail, ich sende Ihnen gerne den Quellcode).
Ob Sie dies verwenden oder eine eigene Lösung bevorzugen, bleibt Ihnen überlassen, ich wollte "das Rad nicht neu erfinden" (obwohl ich eine eigene Lösung in der Schublade habe). Auf alle Fälle müssen Sie herausfinden, ob das reCaptcha ausgelöst wurde, dafür hat Komail Haider unter http://www.codeproject.com/Tips/884193/Google-ReCaptcha-ASP-net-Control eine Lösung bereit (wer nicht selbst schreiben will). Das kleine Stück Software müssen Sie auf der Seite registrieren:
<%@ Register Assembly="GoogleReCaptcha" Namespace="GoogleReCaptcha" TagPrefix="wjk" %>
Wo das reCaptcha erscheinen soll binden Sie den folgenden Code ein:
<wjk:GoogleReCaptcha ID="ctrlGoogleReCaptcha" runat="server" PublicKey="BEKOMMEN SIE VON GOOGLE" PrivateKey="BEKOMMEN SIE VON GOOGLE" />
Jetzt müssen wir nur noch auswerten:
protected void btnSend_Click(object sender, EventArgs e) { try { if (!ctrlGoogleReCaptcha.Validate()) { Exception reCaptchaException = new Exception("reCaptcha wurde nicht bestätigt!"); throw reCaptchaException; }(...)
Wie Sie sehen, wird einfach ein Fehler ausgelöst, sollte das reCaptcha nicht bestätigt sein.
Soviel zum Versenden der eMail per Formular und mit dem reCaptcha. Wie bereits erwähnt soll das reCaptcha auch dazu dienen, meine eMail-Adressen zu schützen. Auf meiner Site werden keine Adressen angezeigt, sollte ein Besucher die Adressen jedoch unbedingt haben wollen, muß er das reCaptcha bestätigen und bekommt sie angezeigt: Zuvor ist der Seitenabschnitt "hidden":
<div id="hidden" runat="server" visible="false">
<script type="text/javascript"> email("info", "walter-kohl", "ch", "Meine Homepage-Account");
</script> </div>
Im Quellcode wird aus "visible=false" einfach "visible=true" gemacht:
protected void btnEmail_Click(object sender, EventArgs e) { try { if (!ctrlGoogleReCaptcha.Validate()) { Exception reCaptchaException = new Exception("reCaptcha wurde nicht bestätigt!"); throw reCaptchaException; } hidden.Visible = true; visible.Visible = false; } catch (Exception ex) { lblEmails.Text = "Bei der Anzeige der eMail-Adressen ist ein Fehler aufgetreten:<br />"; lblEmails.Text += ex.Message; } }
Was Sie im ohrigen Codeausschnitt jedoch auch sehen, sind die eMail-Adressen per Unicode verschlüsselt und werden erst durch ein wenig "JavaScript" sichtbar. Zudem werden die eMail-Adressen erst durch das JavaScript zusammen gebaut, so sind sie schwerer als eMail-Adresse zu erkennen.
<script type="text/javascript">
function email(name, domain, tld, link) {
var link = "<img src='images/mailto.gif' alt='Briefcuvert' /> <a href='mailto:" + name + "@" + domain + "." + tld + "'>" + link + "</a><br />";
document.write(link);
}
</script>
Damit Sie Ihre eMail-Adresse nicht händig umwandeln müssen, gibt es hier ein Tool. das Ihnen die Arbeit abnimmt: http://www.sql-und-xml.de/unicode-database/online-tools/
Sie können sich das ganze natürlich live ansehen: http://www.walter-kohl.ch/contact.aspx