Hi tewald,
don't you think the developer of the bots are smart enough to know that trick and can find #064 as well as the "@" symbol?
Main Topics
Browse All TopicsHaving set up a website some four years ago, I'm now on the list of almost every spammer on the net. Looking at my server logs I see almost every day an unidentified bot come through the site (i.e. not one I recognise as being from a search engine) as they harvest the information they find in the "mailto:" tags.
Spam in my inbox is an annoyance, but it costs me nothing but time (I have a flat rate internet account). Now, however, I want to include in our site a form which allows the visitor to send a message instantly to my pager, which can be done via an email address.
What I *don't* want is for that address to be harvested and to pay 20 cents a message for my mobile screen to be filled with ads urging me to buy CDs crammed with other harvested address, hot stock tips, and exhortations to increase the length of parts of my anatomy.
I remember reading once that it is *is* possible to sabotage address-harvesting bots (they still get the information but it's unusable and bounces back to the spammer unless they manually edit it?) but still have the form work. Any idea how?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Hi Polemic,
the best way to do that it to avoid to show the mail address in the HTML code at all. As a PHP expert I would suggest using PHP :-)
If you are not familiar with PHP: I have set up a little tool where you can compose your own Form Mailer online and have it sent to you by e-mail. All you need it a webspace that supports PHP and where you can send e-mails from the webserver (that is the default setting for most ISPs).
You can give it a try:
http://www.rent-a-tutor.co
Marian
heddesheimer, yes I do believe SOME spambots can identify, translate, and utilize #064 that's why I said it was a "good" html solution - not the best solution. A server-side script (ASP, PHP...) would work too; however, using the JavaScript solution would equally prevent spambots from gleaning the email address since they are NOT intelligent enough to parse javascript, nor are they ever likely to.
tewald
Another way to approach this is to use late binding. I'll explain
Let's say you have a form like this:
<FORM ACTION="/cgi-bin/form.cgi"
<INPUT TYPE="HIDDEN" NAME="MAILTO" VALUE="joe@dot.com">
<INPUT TYPE="HIDDEN" NAME="REPLYOK" VALUE="ok.html">
...
</FORM>
This is considered early-binding because all the variables are already initialised when the page is send to the parser.
To use late-binding you can go like this:
<FORM NAME="pagerform" ACTION="cgi-bin/form.cgi">
<INPUT TYPE="HIDDEN" NAME="MAILTO" ID="xmail" VALUE="">
...
<BUTTON ONCLICK="doit()">Submit</B
</FORM>
this comes in your <HEAD> section
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
function doit()
{var z='joe';
var y='dot.com';
var x=z+'@'+y;
document.all.xmail.value=x
document.all.pagerform.sub
}
//-->
</SCRIPT>
I'll doubt that a robot will actually extract the email adress from this. You can also put the script above in a separate file and link it to your document. That way if you look at the source of the document with the form on it, you can't see any email adress.
To do this: place the script in a separate file with a .js extension, upload it to your server and place the following line in the head section of your form page:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" SRC="xscript.js"></SCRIPT>
make sure you change xscript.js with the filename you've givven the script and include the relative path
BTW: I know it sounds silly to think those bots will abay it, but have you tried setting the robots name in your robots.txt file? If their robots do not obay the robots standards, you can sue them. Especially if they use the gathered email adresses for unsolicited comercial mail campaignes
Should you require more info on robots.txt just let me know
Ramses says Roooar
<a href="mailto:cdevos" onClick="this.href+='@h2d2
or
<a href="mailto:cdevos@nowher
or just tell your users to replace a certain character with the @ like:
Change the - with the @: <a href="mailto:cdevos-h2d2.n
regards,
CJ
I like the Javascript based solutions (tewald and ramses) because they appear as though they'd be too much trouble for a spambot to parse et I can still understand them, alter them to suit, and incorporate them easily in the design of the page. I like Ramses's solution slightly better because it keeps all mention of the address off the source of the page.
I accept that php is probably bullet-proof in this regard, and I wish I knew how to configure it! Thanks heddesheimer, I tried your cool little tool and got a script from it, but it will be a steep learning curve for me to make that script into a page that mimics the remainder of the ste and also carries the various other contact methods (form-to-mail, ICQ panel, and so on) I ant on the same page. I'll try it though, and let you know if I can adapt it.
I would imagine the smater spammers have figured the @ trick now, and the thing is, I can't risk too weak a protection... the only real way to test the solution I choose will be to "go live" and if it fails and I end up in the spammers' databases it's too late to go back and try plan B.
The "forwarding email through a filter" theory won't work for two reasons - I don't have an "always on" internet account so emails come into the system spasmodically (albeit several times a day) whereas the essence of a pager is speed; and because filtering the mail sent from the form and forwarding would still forward spam... I'd have to filter on dubious words and manually check the dumped mail... too fiddly and time consuming.
CJ's solutions are intriguing in their simplicity... I'll play round with them and see if I can get them to work. Im still suspicious of anything that has the compoents of my address anywhere near an "@" though... spammers are getting trickier all the time.
Now, just to add to my headaches my ISP has told me the server on which my site is hosted is closing down, so I hve to make urgent plans to shift my site. So far from worrying about one form I'll be caught up with shifting files, logs, emails, and so on changing DNS data; and generally making sure things run smoothly that I won't be able to implement these suggestions for a few days... perhaps a week.
By all means keep thinking, and I welcome any new suggestions. But wrapping this up might take awhile. Thanks to all who've contributed so far:-)
PHP isn't the only solution, you can use ASP, Perl or whatever you like. If you have PHP available on your server please say and I'll write you a quick script.
I would really avoid client side JavaScript if possible as (last time I checked) 12% of users have JavaScript unavailable or disabled - and they wouldn't be able to email you at all. Add to that the problems of people who use webmail account - the mailto: link is useless to them.
Business Accounts
Answer for Membership
by: tewaldPosted on 2001-08-23 at 22:24:25ID: 6420802
There are a couple ways you can avoid spambots from harvesting you email address:
parent.loc ation=Mail me\"> ");
1) Best solution using JavaScript:
<SCRIPT LANGUAGE="javascript">
<!--
var Domain = "yourISP.com"
var Mailme = "mail" + "to:" + "you@" + Domain
document.write("<FORM>");
document.write("<INPUT TYPE=\"submit\" VALUE=\"Send me some email\" ");
document.write("onClick=\"
document.write("</FORM>");
// -->
</SCRIPT>
2) Good solution using html:
Instead of using the "@" symbol replace it with the html character reference "@ (eg. you@yourisp.com instead of you@yourisp.com).