I’ve been playing around with a neat little tip today that I thought I would share. I certainly can’t take credit for the idea but I like it enough that I’ll repeat what can be found elsewhere in the name of spreading the word.
The problem?
In a word: spammers. Grown in Petri dishes, their hideous forms climb directly from their incubation chambers directly to their computer room. Nobody who has looked upon their form has returned without their soul in tatters. Their sustenance doesn’t come from the vitamins and proteins that good, honest creatures take in. They thrive on the suffering of their victims and the hate that they generate. Through the wires of man they pull to them ancient energies long forgotten. Always in search of victims they constantly search for E-Mail addresses.
The solution?
Spammers, so hungry for their daily meal, want to find E-Mail addresses as quickly as possible with the least amount of effort. Therefore they don’t always look very hard. For example take this HTML link markup you might find on a webpage:
<a href=”mailto:jshmow@gullible.net”>Your name</a>
Did you see it? So did the spammer! Another victim’s productivity absorbed into a blob of advertising.
Moving on, the spammer tries another website:
<a href=”mailto:mcsmartpants@cool.com”>Your name</a>
The spammer squints, grunts, and moves on. When your browser looks at it however it says, “Oh my, I see we have a bit of a mess here. Let me just clean this up… there!” and when you click on the link it opens up a new message.
What’s going on?
If you look carefully at the second example you’ll notice a pattern. There is an ampersand (&), a pound (#), a number, and a semicolon (;). Together, they form what is called an HTML entity. In the encoded E-Mail, each character is replaced with an HTML entity. These are nice because they allow you to say you want a certain character just as it is without it being interpreted as something else. For example, the greater-than character (>) can be written in an HTML document as > or, like in the example above, >. These are both HTML entities that will display a greater-than sign without thinking it’s part of the HTML markup.
In the second example, we’re taking advantage of the fact that every character can be represented as an HTML entity because when spammers are looking for E-Mail addresses, they’re looking for at signs (@) and dots (.) and not ampersands, pounds, and semicolons.
Unfortunately this isn’t foolproof. Spammers get smarter all the time and there are almost certainly a number of them out there who know about this and have made the extra effort to interpret these E-Mail addresses properly. The nice thing about this technique, though, is that browsers have understood HTML entities for years so they won’t even flinch. This slows down spammers without slowing down people that want to E-Mail you as opposed to people who just want to E-Mail everybody.
How do I do this?
It’s easy. For each character of your E-Mail address, type &#number; where number is from the “Dec” column of this table.
Or if you’re lazy like me, you can use this script that I wrote. I understand if you don’t want to put your E-Mail address into that form. If you’re like me you don’t make a habit of putting your E-Mail address into strange web forms. If I were you I wouldn’t put my E-Mail address into my form either.