What this tool does
This email obfuscator does two jobs. The first turns an address into HTML you can paste into a page: a mailto link encoded as HTML entities, a mailto link with a percent-encoded address, and a CSS trick that stores the address backwards and flips it for display. All three look normal to a visitor.
The second job runs in the other direction. Paste the source of a page and it finds plain text
emails in the HTML — visible addresses, mailto: links, and addresses that were encoded but decode
in one step — each with the line it sits on. That is usually the more useful half: most people who
want to hide an email from spam bots have already published it in three places they forgot about.
How to use it
- Type the address, and optionally the link text and a subject line.
- Copy the variant you want. The two link versions stay clickable; the CSS version does not.
- To audit a page, open its source, paste it in the lower box and work through the list. Anything marked plain is readable by the simplest harvester there is.
Everything runs in this tab. The address you type and the markup you paste are never sent anywhere.
How much this actually protects
Be realistic about it. Harvesting bots range from a regex run over raw HTML to a full headless
browser. The regex kind is still the most common, and it misses anything without a literal @ and
dot in the source — which is exactly what entity and percent encoding remove. That is why encoded
addresses measurably receive less spam than plain ones.
A headless browser renders the page, decodes every entity and applies every CSS rule, so it sees what a visitor sees. Against that, no mailto link encoder helps, and any technique good enough to defeat it — assembling the address with JavaScript on click, or an image of the text — also costs real visitors something. If the address matters, keep it off the page: use a form, or publish a role address you can filter aggressively and retire when it gets burned.
The three methods compared
HTML entities replace every character with a numeric reference like @. It is the oldest
trick, it keeps the link fully working, and nearly every modern harvester decodes it.
Percent encoding writes the address inside href as %68%69%40…. Mail clients decode it as
RFC 6068 requires, and a scraper looking for a literal @ walks past it.
CSS direction stores moc.elpmaxe@olleh and sets direction: rtl with a bidi override so it
displays the right way round. It is not a link, it copies backwards, and some screen readers read
it in source order.
When you audit a page for addresses, check how its outbound links are marked up too with the link attributes checker, and use the meta tag analyzer on the same pasted source for the rest of the head.