|The idea behind this code is interesting, and I think too it is quite innovative.|
But frankly, I think this is too much overhead for such a protection.
First, it is not practical: you have to look at the not very readable string and retype it in the address field of your e-mail client. No clean advantage over a plain image.
Second, it doesn't work on all browsers, as the author explain.
Third, it is not usable by people with disabilities, like the addresses on images.
And last, in its current state, it works only for classical looking e-mail addresses (a problem shared by most e-mail check regular expressions), failing on "John O'Reilly"@Boo.org or GahMoo@[22.214.171.124]...
I don't think e-mail harvesters goes to lengths like using optical character recognition (OCR) to read e-mails. First, they have to know that an image contains an e-mail, second I think the main goal for robots is to collect as much e-mails as fast as possible, so they won't spend seconds on cracking an e-mail. So images are probably safe.
So are schemes like Foo(a)Bar.com or Foo at Bar dot com or Foo-NOSPAM@SPAMMENOT-Bar.com, etc. Indeed, you can instruct robots to crack most of these schemes, but is it worth the trouble? (Only a spammer can answer...)
I even believe that the scheme where you replace some chars by their corresponding entities or encoding can even be used, as I think robots won't go lengths to decode them (speed, you know?). I can be wrong, of course, but this has the advantage of being simple, working with all browsers and being accessible and practical.
<a href="mailto:Philippe%2DLhoste@Random%2EDomain%2Eorg?subject=Your wonderful site" title="E-mail me!">Philippe%2DLhoste@Random%2EDomain%2Eorg</a>
You click on the link, and a new compose window of your prefered e-mail client opens with the address and the suject already set...
Indeed, this is a weak scheme, but I think that the only way to avoid spam is actually to have no e-mail addresses...
Note: I just think of another way of using CSS to protect e-mail: split the address in three parts or more, put them in divs sprinkled in random order in the source code. Use CSS to position these div so that together they display the whole address. Again, the address will be readable but have to be manually typed, alas, and probably not accessible.