Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to spamproof a mailto link?

I want visitors to be able to click on (or copy) an email address directly on my webpage. However, if I could make it (a little bit) harder for bots and other crawlers to get said email address and register it in a spam list, it would be awesome.

I found different ways of doing this (i.e. encoding mailto HTML links), either with JavaScript or in pure HTML, but what do you guys recommend ? The JavaScript techniques seem more complicated, but this may potentially affect users that have it turned off, and legit crawlers like Google.

On the other hand, the HTML one seems a bit basic, the bot writers should have figured it out by now...

Should I bother at all doing this, or will the spammers get my email anyway ? I know that antispam filters are getting better and better, but if I can do something more to slow spammers down, I will.

like image 990
Wookai Avatar asked Sep 02 '10 07:09

Wookai


People also ask

How do you change a mailto link?

Once you've inserted a mailto link, click the linked text to open the toolbar and then click the link icon. Select Edit from the drop-down.

How do I redirect mailto?

Mailto links are used to redirect to an email address instead of a web page URL. When a user clicks on the Mailto link, the default email client on the visitor's computer opens and suggests sending a message to the email address mentioned in the Mailto link.

How do I turn off mailto links?

Right click on anywhere within the selection and choose: Remove Hyperlinks. Press the Clear button in the Editing section on the Ribbon and choose: Remove Hyperlinks.


1 Answers

JavaScript remains one of the best mailto obfuscator. For users with JavaScript disabled you may want to substitute the mailto link with a link to a contact form.

The following is a popular JavaScript anti spam email obfuscator:

  • http://www.jottings.com/obfuscator/

There is also a php version of the above to be able to generate obfuscated emails from the server side.

This is the JavaScript code that the above tool would generate to obfuscate my email address (comments intact):

<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 = "[email protected]"   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> 
like image 107
Daniel Vassallo Avatar answered Sep 25 '22 23:09

Daniel Vassallo