Wie zeige ich E-Mail-Adressen auf der Website an, um Spam zu vermeiden?

Lesezeit: 11 Minuten

Benutzer-Avatar
Jack

Ich zeige E-Mail auf meiner Website wie folgt an

 <a href="https://stackoverflow.com/questions/23002711/mailto:[email protected]">Email</a>

Aber ich habe das Folgende gelesen, während ich meine Website mit analysiert habe woorank.comwas soll ich tun, um das zu vermeiden?

Bösartige Bots durchsuchen das Internet nach E-Mail-Adressen, und reine Text-E-Mail-Adressen werden mit größerer Wahrscheinlichkeit als Spam versendet.

  • Um Woorank einzuhalten, können Sie alles tun, von der Erstellung eines Bildes bis hin zu document.write mit Javascript und brechen Sie die E-Mail-Adresse auf. Spam tatsächlich zu verhindern… das ist eine andere Geschichte.

    Benutzer1932079

    11. April 2014 um 3:02 Uhr

  • Sie sehen eine Vielzahl von Lösungen für dieses Problem. Eine besteht darin, keinen Link daraus zu machen und info -AT-example.com zu drucken, wodurch der Benutzer die E-Mail-Adresse manuell eingeben muss, wenn er eine Nachricht verfasst. Dies ist im Grunde dasselbe wie das Einfügen der E-Mail in ein Bild – in beiden Fällen würden Sie den Link entfernen. Eine andere Lösung besteht darin, ein Formular mit einem Captcha hinzuzufügen, das an den Server gesendet wird, der das Captcha validiert und dann die E-Mail versendet, wenn alles in Ordnung ist.

    – Chris Baker

    11. April 2014 um 3:02 Uhr

  • Duplikat von: stackoverflow.com/questions/19359202/…

    – John

    11. April 2014 um 14:20 Uhr


  • @John die Frage ist mit php getaggt, aber diese Frage ist mit jsp getaggt, es könnte eine bessere Lösung für jsp-Codierer geben

    – Jack

    13. April 2014 um 23:09 Uhr

  • Dies ist wahrscheinlich die maßgeblichste und umfassendste Ressource auf Stackexchange für diese Informationen und sollte alle Ihre Fragen beantworten: superuser.com/questions/235937/…

    – Fabianfetik

    17. April 2014 um 8:34 Uhr

Benutzer-Avatar
JazzyP

In der Vergangenheit habe ich gesehen, dass dies mit Javascript gemacht wurde. Grundsätzlich weisen Sie der E-Mail-Adresse Javascript-Variablen zu und ändern mit diesen den Inhalt eines Elements. Sie können Benutzern mit deaktiviertem Javascript auch einen Fallback bereitstellen, der sie bei Bedarf auf ein Formular hinweist. Hier ist ein Beispiel

var user="foo",
    domain = 'bar.com',
    element = document.getElementById('email');

    element.innerHTML = user + '@' + domain;
    //OR
    //'<a href="https://stackoverflow.com/questions/23002711/mailto:" + user + '@' + domain + '">Email</a>'  

Auf diese Weise sehen Bots niemals die E-Mail-Adresse, da sie kein Javascript laden.

  • Aber wenn Leute JS deaktiviert haben, können sie den Link auch nicht sehen. Muss für diesen Zweck ein Fallback sein. Es kann mit erreicht werden <a href="mailto<!--comment-->me@… oder <a href=""><span class="hidden">text</span>

    – Eoin

    6. September 2019 um 11:41 Uhr

Benutzer-Avatar
Jani Hyytiäinen

Nun, Sie können jeden Tag einen anderen Weg finden. Hier ist eine mit jQuery.

<a class="mail" href="https://stackoverflow.com/questions/23002711/mailto:[email protected]">e-mail</a>

Dann behandeln Sie den Klick mit jQuery.

$('a.mail').on('click', function(){
    var href = $(this).attr('href');
    $(this).attr('href', href.replace('badmail.', ''));
});

Der Grund, warum ich das mag, ist, dass ich die Spammer die Dummy-Mail-Domain spammen lassen kann, weil sie glauben, sie hätten noch eine weitere E-Mail geerntet. Wenn ich meinen eigenen Spam-Filter betreuen würde, könnte ich Proben für meinen schlechten Eimer sammeln.

Dieser Ansatz ermöglicht es Ihnen auch, die Seite mit dynamischen Daten ziemlich sauber zu rendern und das Javascript-Snippet einfach nur einmal auf der gesamten Website zu haben, um die tatsächlichen Benutzerklicks zu verarbeiten.

Funktioniert auch auf Handys.

  • Ich finde diesen Ansatz hervorragend. Wenn Sie jedoch die E-Mail-Adresse anstelle von „E-Mail“ anzeigen, verwenden Sie unbedingt einen Bildkonverter.

    – SigmaSteve

    25. November 2016 um 3:19 Uhr

  • Ich mag diese Art von Lösungen, bei denen Sie dem Spammer falsche positive Ergebnisse liefern. Immer besser, als ihnen eine Herausforderung zu stellen, die sie höchstwahrscheinlich annehmen werden: p

    – Davy Baert

    17. Mai 2021 um 14:20 Uhr

Benutzer-Avatar
Singular1ty

Es gibt mehrere verschiedene Möglichkeiten, E-Mails auf Websites zu verstecken, wobei normalerweise entweder die HTML-Entity-Version der E-Mail-Adresse verwendet wird (wie Aziz-Saleh vorgeschlagen hat), aber aus einem tatsächlichen Web Entwurf Aus dieser Sicht ist es nicht die benutzerfreundlichste Methode, die E-Mail-Adresse einfach so auf einer Website zu platzieren.

Zum Beispiel die mailto: Der Link löst automatisch aus, dass der Browser die E-Mail-Anwendung der Wahl des Benutzers öffnet – aber bedenken Sie dies. Nicht jeder hat eine spezielle E-Mail-Anwendung. Zum Beispiel verwende ich kein Outlook (ich bin ein Windows-Benutzer), und wenn ich Windows Live Mail nicht installiert habe, kann mein Computer diesen Link nicht öffnen. ich denken Chrome kann die Links in Google Mail öffnen, wenn Sie angemeldet sind, aber ich müsste das überprüfen.

Letztlich durch den Einsatz mailto:entfremden Sie möglicherweise einen Teil Ihrer Benutzerbasis, die diesen Link überhaupt nicht verwenden können.

Ich würde die Verwendung vorschlagen E-Mail-Formulareund es gibt viele leicht verständliche Tutorials, die sowohl für PHP als auch für Ihre Sprache verfügbar sind JSPwie dieser Link hier: Senden von E-Mails in JSP und sogar auf StackOverflow

Indem Sie Ihren Server zum Senden der E-Mail verwenden, erhalten Sie eine genauere Kontrolle darüber, wie die E-Mail generiert wird, welche Daten der Benutzer eingeben darf, und Sie könnten ihm sogar eine (vom Server generierte) Antwort-E-Mail senden, um dies zu bestätigen ihre Nachricht erhalten. Dies ist eine erprobte und in der Praxis erprobte Methode, mit der Kunden und Besucher Sie kontaktieren können, während Sie gleichzeitig Schutz und Kontrolle über den gesamten Prozess erhalten.

TL;DR: Roh mailto: Links können Personen ohne dedizierte E-Mail-Programme entfremden, während Sie bei Verwendung von JSP-Formularen steuern können, wie sie Sie kontaktieren, mit welchen Informationen (Sie können Felder und das HTML5 required Attribut, um bestimmte Eingabefelder vorzuschreiben) und Sie können sogar mit a antworten do-not-reply E-Mail, damit sie wissen, dass ihre Nachricht gehört wurde (vergiss nur nicht, nach ihrer E-Mail-Adresse zu fragen)

  • Sie haben Recht, aber das einzige Problem bei der Verwendung einer “Kontaktseite” besteht darin, dass Benutzer meine E-Mail-Adresse nicht zu ihrer Kontaktliste hinzufügen können. Daher müssen sie jedes Mal, wenn sie eine E-Mail senden möchten, die Website besuchen.

    – Jack

    23. April 2014 um 0:13 Uhr

  • Ich empfehle dringend nicht Kontaktseiten nutzen. Das Eintippen in viel zu kleine Formularfelder ist mühsam, man kann auch nichts anhängen, und ich denke, der Prozentsatz der Leute, die gesendete E-Mails in ihrem Ordner “Gesendet” haben möchten, ist viel höher als der Prozentsatz der Leute, die kein Mailprogramm verwenden .

    – Guntram Blohm

    23. April 2014 um 16:24 Uhr

  • @Socowi Wie das?

    – Menüs

    27. Mai 2018 um 22:29 Uhr

  • @lmenus Da der Benutzer seine E-Mail-Adresse in das Formular eingeben muss, muss der Website-Besitzer sicherstellen, dass seine E-Mail-Adresse gemäß der DSGVO behandelt wird. Die E-Mail-Adresse des Benutzers muss verschlüsselt werden, bevor sie an den Server gesendet wird (sollte kein Problem sein, Ihre Website sollte sowieso https verwenden). Der Nutzer muss darüber informiert werden, wie seine E-Mail-Adresse verwendet wird, wie lange sie gespeichert wird und so weiter.

    – Socowi

    28. Mai 2018 um 7:05 Uhr


  • @Eoin Nein. Ihr Server sieht seine E-Mail nicht, wenn Sie einen mailto-Link verwenden, daher unterliegt er nicht der DSGVO.

    – JustinLovinger

    12. Februar 2020 um 16:16 Uhr

Das Problem bei den JavaScript-Lösungen ist, dass Personen mit deaktiviertem JS die E-Mail-Adresse ebenfalls nicht sehen. Obwohl es sich um eine Minderheit handelt, benötigen Sie eine Kombination von Techniken, um die besten Ergebnisse zu erzielen.

Viele dieser Techniken werden hier detailliert beschrieben, aber ich habe nur die Lösungen bereitgestellt: https://www.ionos.co.uk/digitalguide/e-mail/e-mail-security/protecting-your-e-mail-address-how-to-do-it/

Kommentare

<p>If you have any questions or suggestions, please write an e-mail to:
us<!-- abc@def -->er@domai<!-- @abc.com -->n.com. 
</p>

Versteckte Spannen

<style type="text/css">
span.spamprotection {display:none;}
</style>

<p>If you have any questions or suggestions, please write an e-mail to:
user<span class="spamprotection">CHARACTER SEQUENCE</span>@domain.com. 
</p>

Umgekehrte Saiten
Dies ist möglicherweise nicht für mehrsprachige Websites geeignet.

<style type="text/css">
span.ltrText {unicode-bidi: bidi-override; direction: rtl}
</style>
<p>If you have any questions or suggestions, please write an e-mail to:
<span class="ltrText"> moc.niamod@resu</span>.
</p>

JavaScript wie in vielen anderen Antworten

<script type="text/javascript">
var part1 = "user";
var part2 = Math.pow(2,6);
var part3 = String.fromCharCode(part2);
var part4 = "domain.com"
var part5 = part1 + String.fromCharCode(part2) + part4;
document.write("If you have any questions or suggestions, please write an e-mail to:
   <href="https://stackoverflow.com/questions/23002711/+"mai"https://stackoverflow.com/questions/23002711/+"lto"https://stackoverflow.com/questions/23002711/+":" + part5 + ">" + part1 + part3 + part4 + "</a>.");
</script>

ROT13-Verschlüsselung
JavaScript-abhängig, hilft aber auch bei der DSGVO, da es verschlüsselt ist.

<script type="text/javascript">
function decode(a) {
  return a.replace(/[a-zA-Z]/g, function(c){
    return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) 
                               ? c : c - 26);
  })
}; 
function openMailer(element) {
var y = decode("znvygb:[email protected]");
element.setAttribute("href", y);
element.setAttribute("onclick", "");
element.firstChild.nodeValue = "Open e-mail software";
};
</script>
<a id="email" href="https://stackoverflow.com/questions/23002711/" onclick='openMailer(this);'>E-mail: please click</a>

Nur CSS
Von hier ausgeliehen: E-Mail-Adresse nur mit CSS schützen

<!doctype html>
<html>
<head>
    <title>Protect e-mail with only css</title>
    <style type="text/css">
        .e-mail:before {
            content: attr(data-website) "\0040" attr(data-user);
            unicode-bidi: bidi-override;
            direction: rtl;
        }
    </style>
</head>
<body>

<span class="e-mail" data-user="nohj" data-website="moc.liamg"></span>

</body>
</html>

Lösung 1:

Sie können viele öffentlich verfügbare E-Mail-Adressen-Encoder verwenden, wie (erstes Ergebnis bei Google):

http://www.wbwip.com/wbw/emailencoder.html

Dadurch werden die E-Mails in ihren Zeichenentitätswert codiert. Dies erfordert mehr logische Formular-Scraper, um sie zu decodieren.

Also eine E-Mail wie: [email protected] wird &#116;&#101;&#115;&#116;&#064;&#103;&#109;&#097;&#105;&#108;&#046;&#099;&#111;&#109; die auch in einem mailto verwendet werden kann.

Lösung 2:

Verwenden Sie einen Online-E-Mail-zu-Bild-Konverter (wieder das erste Ergebnis bei Google):

http://www.email2image.com/Convert-Email-to-Image.aspx

Um es als Bild zu machen. Andere Dienste ermöglichen Ihnen dies automatisch über eine API wie:

https://www.mashape.com/seikan/img4me-text-to-image-service#!endpoint-Main

  • Jeder Bot, der sein Geld wert ist, wird in der Lage sein, verschlüsselte E-Mails zu knacken. Es ist überraschend, dass dies nicht alle tun, aber im Allgemeinen ist dies keine sichere Option. Wenn Sie sich trotzdem dafür entscheiden, wählen Sie eine weniger beliebte Variante wird wahrscheinlich länger dauern.

    – Dreier

    11. April 2014 um 3:27 Uhr

Persönlich bin ich auf diese ziemlich einfache und irgendwie lustige Lösung gekommen. Ich gebe diesen Code ein, wo meine E-Mail-Adresse erscheinen soll:

<script>(function whatever(){var s="@",n='nabil',k='kadimi.com',e=n+s+k,l="<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>".replace(/{{.+?(}})/g,e);document.write(l)})()</script>

Erläuterung

Bots, die Websites crawlen und mithilfe regulärer Ausdrücke nach E-Mails suchen, greifen auf die E-Mail-Adresse der FTC (Federal Trade Commission) ([email protected]) zu. Legitime Besucher sehen Ihre E-Mail-Adresse, nachdem sie mit diesem Code erstellt wurde.

##Erweitert

<script>
    (function whatever() {
        var s="@"
            , n = 'nabil'
            , k = 'kadimi.com'
            , e = n + s + k
            , l="<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>".replace(/{{.+?(}})/g, e)
        ;
        document.write(l);
    })();
</script>

##Demo

<script>(function whatever(){var s="@",n='nabil',k='kadimi.com',e=n+s+k,l="<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>".replace(/{{.+?(}})/g,e);document.write(l)})()</script>

  • Jeder Bot, der sein Geld wert ist, wird in der Lage sein, verschlüsselte E-Mails zu knacken. Es ist überraschend, dass dies nicht alle tun, aber im Allgemeinen ist dies keine sichere Option. Wenn Sie sich trotzdem dafür entscheiden, wählen Sie eine weniger beliebte Variante wird wahrscheinlich länger dauern.

    – Dreier

    11. April 2014 um 3:27 Uhr

Benutzer-Avatar
Ryan

Ich habe verwendet Die kostenlose Funktion zur Verschleierung von E-Mail-Adressen von CloudFlare: https://support.cloudflare.com/hc/en-us/articles/200170016-What-is-Email-Address-Obfuscation-

E-Mail-Harvester und andere Bots durchstreifen das Internet auf der Suche nach E-Mail-Adressen, die sie Listen hinzufügen können, die auf Spam-Empfänger abzielen. Dieser Trend führt zu einer zunehmenden Menge unerwünschter E-Mails.

Webadministratoren haben sich clevere Möglichkeiten ausgedacht, sich dagegen zu schützen, indem sie E-Mail-Adressen ausschreiben (z. B. help [at] Wolkenflare [dot]
com) oder durch die Verwendung eingebetteter Bilder der E-Mail-Adresse. Sie verlieren jedoch den Komfort, auf die E-Mail-Adresse zu klicken, um automatisch eine E-Mail zu senden.

Durch Aktivieren der Cloudflare-E-Mail-Adressverschleierung werden E-Mail-Adressen auf Ihrer Webseite vor Bots verschleiert (versteckt), während sie für Menschen sichtbar bleiben. Tatsächlich gibt es für Besucher keine sichtbaren Änderungen an Ihrer Website.

Um ein unerwartetes Website-Verhalten zu verhindern, werden E-Mail-Adressen nicht verschleiert, wenn sie erscheinen in:

  • Jedes HTML-Tag-Attribut, außer dem href Attribut der a Schild.
  • Andere HTML-Tags
  • Jede Seite, die keinen MIME-Typ „text/html“ oder „application/xhtml+xml“ hat

Ich bin nicht mit CloudFlare verbunden. Ich schätze einfach alles, was sie kostenlos anbieten.

1314340cookie-checkWie zeige ich E-Mail-Adressen auf der Website an, um Spam zu vermeiden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy