Frage

Ich möchte die Besucher der Lage sein, auf klicken (oder kopieren) eine E-Mail-Adresse direkt auf meiner Webseite. Allerdings, wenn ich es (etwas) härter für Bots und andere Crawler machen könnte die E-Mail-Adresse zu bekommen und es in einer Spam-Liste registrieren, es wäre genial.

Ich fand verschiedene Wege, dies zu tun (das heißt Codierung mailto HTML-Links), entweder mit JavaScript oder in reinem HTML, aber was tut euch empfehlen? Die JavaScript-Techniken scheinen kompliziert, aber dies kann möglicherweise Benutzer auswirken, die es ausgeschaltet haben, und legit Crawlern wie Google.

Auf der anderen Seite, die HTML scheint ein bisschen einfach, sollten die Bot-Autoren es jetzt aus ...

herausgefunden haben

Sollte ich die Mühe überhaupt dies zu tun, oder werden die Spammer meine E-Mail überhaupt? Ich weiß, dass Anti-Spam-Filter besser erhalten und besser, aber wenn ich nach unten etwas zu langsam Spammer tun kann, werde ich.

War es hilfreich?

Lösung

bleibt JavaScript einer der besten mailto obfuscator. Für Benutzer mit JavaScript deaktiviert möglicherweise dem Mailto-Link mit einem Link zu einem Kontaktformular ersetzen will.

Im Folgenden ist eine beliebte JavaScript Anti-Spam-E-Mail obfuscator:

Es gibt auch eine PHP-Version der oben in die Lage verschleierte E-Mails von der Server-Seite zu generieren.

Dies ist der JavaScript-Code, dass das obige Werkzeug erzeugen würde, um meine E-Mail-Adresse (Kommentare intakt) zu verschleiern:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "lMnK@wMunFK8MDDMKKt.ktl"
  key = "1DtzZ8TGBuhRjJMKWI4gkUF2qidfOyPmSN7X30Vpso6xvErLnwQCbalA95HcYe"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else {     
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
  document.write("<a href='mailto:"+link+"'>Email Me</a>")
}
//-->
</script><noscript><a href='contact-form.html'>Email Me</a></noscript>

Andere Tipps

Das sieht wie eine wirklich cool Methode, dass Encodierungen der Charaktere, die ich annehmen würde, grundlegende Spam-Bots besiegen:

http://robspangler.com/blog/encrypt -mailto-links-to-Stop-E-Mail-Spam /

So

<a href="mailto:test@test.com">Email</a>

wird

<a href="&#x6d;&#97;&#105;&#108;&#x74;&#111;&#58;&#116;&#101;&#115;&#116;&#x40;&#x74;&#101;&#115;&#x74;&#x2e;&#x63;&#111;&#109;">Email</a>

Es ist attraktiv, dass es erfordert keine Javascript.

Plunker Beispiel hier .

Sie könnte die reCAPTCHA Mailhide Funktionalität. Dies wird E-Mail-Adressen auf dem Formular use...@domain.tld machen, wo die Ellipsen ein Link die vollständige Adresse anzuzeigen. Es ist ein wenig umständlich für den Besucher aber soll Premium-Schutz. Having said that, diese Technik nicht lassen Sie Ihre Besucher die Adresse direkt von Ihrer Webseite kopieren.

Ich habe nicht den Teil über die „Legit Crawlern“ wie Google. Wenigstens bin ich nicht in der Lage zu sehen, warum sollte Google Index die E-Mail-Adresse trotzdem. (Siehe OPs Kommentar unten).

Aufbauend auf Daniel Vassallo Antwort, eine Art und Weise zu verschlüsseln ein Mailto-Link, dass können vermeiden gescheiter Spambots dass JS document.writes auswertet (Wie von inkarnierten) wäre die Entschlüsselung in einer Javascript-Funktion zu setzen dass nur ausgewertet, wenn der Link angeklickt wird. Zum Beispiel mit base64 als „Verschlüsselung“:

<script>

  function decryptEmail(encoded) {

    var address = atob(encoded);
    window.location.href = "mailto:" + address;

  }

</script>

<a href="javascript:decryptEmail('dGVzdEB0ZXN0LmNvbQ==');">Email</a>

Arbeits Plunker .

Ich behaupte nicht zu wissen, ob dies könnte oder nicht durch einen anspruchsvollere Crawler ausgetrickst werden.

Sie können externe Dienste nutzen wie aemail.com :

  

@email ist ein kostenloser E-Mail-Service Versteck, dass Haut E-Mails kurz mit   URLs von Absendern zur mailto-URL Umleitung nach dem Link klicken.

Nachdem eine E-Mail an aemail.com eingeben, erhalten Sie eine kurze URL erhalten, die verwendet werden können Ihre ‚mailto‘ -Link zu ersetzen. Sobald Link geklickt wird, wird Ihre Benutzer ohne Vorankündigung des aemail.com auf die ‚mailto‘ URL umgeleitet werden. API können ausblenden E-Mails verwendet werden / URLs dynamisch erhalten.

Beispiel:

<a href="mailto:info@itee.com">Contact</a>

ersetzt durch

<a href="https://aemail.com/q2">Contact</a>

halten E-Mail Link Arbeiten.

ich einfach verwenden:

<script language="javascript" type="text/javascript">
var pre = "hideme";
document.write("<a href='mailto:" + pre + "@domain.com'>" + pre
+ "@domain.com</a>");
</script>
<noscript>Enable javascript to see our email!</noscript>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top