Popular Email Masking Methods
There are many methods used for masking email address. I list them here, and also my own method: an accessible email masking method.
Method 1: simple text transformation (Obfuscation/Fragmenting)
email@domain.com becomes email at domain dot com
Advantages: Easy to implement/program. Fairly easy for users to interperate. Accessible.
Disadvantages: Not effective against email-recognition software.
This is one of the most common methods of masking an email address. It masks the email from most small-time spammers who write weak email-recognition software. However, even an intermediate programmer can write a simple regular expression that will see through the most complex simple text transformation.
Method 2: HTML/CSS transformation (more Obfuscation/Fragmenting)
email@domain.com becomes <span style="direction:rtl">moc.niamod@liame</span>
Advantages: Easy for users to interperate. Pretty effective against email recognition software.
Disadvantages: Intermediate skills to implement/program. Some methods not supported by all browsers or browser settings. Only some copy/paste. Some methods not as effective against email-recognition software. Almost never accessible.
This method is less common than others because it involves an intermediate knowledge of manipulating HTML and CSS, and requires a degree of cleverness. Most methods are not accessible, because they require the developer to severely obscure the code used display the email address so that software cannot recognize email in the code. The problem is, blind using screen readers will hear garble.
Other ways of implementing this method include a wide variety of other tags and CSS properties. You can make a table and style it with CSS so that the cells appear to make just one word, or do the same with several divs. The idea is to get creative and mask the email. The code should look NOTHING like an email, even if HTML tags are stripped (programs can do that!).
Method 3: Javascript generation
email@domain.com becomes
<script type="text/javascript">
var part1 = "email";
var part2 = "domain";
var part3 = "com";
document.write(part1+"@"+part2+"."+part3);
<script>
Advantages: Easy for users to interperate. Very good copy/paste. Highly effective against email-recognition software.
Disadvantages: Intermediate skills to implement/program. Not supported by some browsers or browser settings. Almost never accessible.
This method can be made better by using more complicated or clever scripts. A good coder can make it next to impossible for even the most powerful email-recogntion programs to find the email address. A good coder can even use AJAX to get the email in a secure way from a server-side script, thus avoiding putting the email in the code in any form. However, it is pretty much impossible to make this script accessible. Also, the email address will be invisible to users that don't support JavaScript.
Method 4: Email redirection
Update: Modified email redirection is now described more clearly at http://www.andrewpeace.com/modified-email-redirection.html.
email@domain.com becomes
<img src="x.gif"
alt="random-address@sneakemail.com (this anti-spam email address changes weekly)" />
Advantages: Highly effective against email-recognition software. Can be implimented by users with either low- or high-level coding skills. Can be implimented to require either no maintenence or weekly maintenence, depending on level of coding skill. 100% accessible. Supported by all browsers.
Disadvantages: No copy/paste.
Before I give a more in-depth discussion of this method, let me repeat this: the email redirection method is highly effective, easy to impliment with maintenance or advanced implimentation with no maintenance, supported by all browsers, and completely accessible. The only sacrifice: copy/paste support - which users don't mind as much as you think (use a mailto link instead).
Here's how this method works: you create a temporary email address, random-address@sneakemail.com in the example. This temporary address is set up to forward to your real email address. Then, you make an image containing your real email address in text. The image file in the example is x.gif. The image can have different colors, lines, or random sequences to mask it from image-reading software. Since the temporary email address is in the alt tag (could even be in a mailto link), it is readable by screen-readers for the blind. Also, seeing people using normal browsers can see your real email address.
Now the only problem left is that your temporary email address will get spammed. Not a problem. Just change the email address periodically. This is not hard to do by hand. Also, server-side scripts can be set up that do it all seamlessly and automatically, changing the email address every week or even every day - before spamming software gets to them.
You can create the random email address on your own server, or you can create one at SneakEmail.com, a free service. If you choose this option, you need only create a new SneakEmail address every week and then modify your site accordingly.
Note: There are technologies that can read images. However, it is pretty unlikely that your email address will be found through an image, especially if you distort the image even a bit. Most image-reading technology is used for breaking through CAPTCHA's and creating accounts etc. Not many measly spammers use that kind of technology!!
I strongly suggest that you use this method. It is strong, it is easy, and (most importantly!) it is accessible!
Conclusion
For further reference, check out the following link. This page shows the results of a study on fifty different email masking methods, comparing their effectiveness and accessibility (amoungst other things):