Spam prevention should be done on the email’s servers side, by that I mean you should not disrupt your usability because of spam, instead you should use a proper spam block or filtering service on your email side. For example I have been using Postini for years and have pretty much no spam to contend with.
Another option to prevent really badly written bots is a simple encoded email using ascii or JavaScript, that way the bot reads the source and it is useless but the user is still presented with a valid clickable link,
for example:
**[email protected]**
//becomes in ASCII
<a href="mailto:test@exam
ple.comtest@e
xample.com"></a>
//
//or a javascript example:
<SCRIPT LANGUAGE="javascript">
var first="ma";
var second = 'il';
var third = 'to:';
var address="test";
var domain = 'example';
var ext="com";
document.write('<a href="');
document.write(first+second+third);
document.write(address);
document.write('@');
document.write(domain);
document.write('.');
document.write(ext);
document.write('">');
document.write('Click Here to Email Me!</a>');
</script>
You can find a generator here , http://www.ohlone.edu/org/webcenter/emailencoder.html
or here http://www.wbwip.com/wbw/emailencoder.html and there are some javascript ones out there as well like this jQuery one http://plugins.jquery.com/plugin-tags/email-encode