Address munging is the practice of disguising, or munging (sometimes referred to as "mashing until no good" ), an e-mail address to prevent it being automatically collected and used as a target for people and organizations who send unsolicited bulk e-mail. Address munging is intended to disguise an e-mail address in a way that prevents computer software seeing the real address, or even any address at all, but still allows a human reader to reconstruct the original and contact the author: an email address such as, "email@example.com", becomes "no-one at example dot com", for instance. Any e-mail address posted in public is likely to be automatically collected by computer software used by bulk emailers — a process known as e-mail address harvesting — and addresses posted on webpages, Usenet or chat rooms are particularly vulnerable to this. Private e-mail sent between individuals is highly unlikely to be collected, but e-mail sent to a mailing list that is archived and made available via the web or passed onto a Usenet news server and made public, may eventually be scanned and collected.
Disguising addresses makes it more difficult for people to send e-mail to each other. Many see it as an attempt to fix a symptom rather than solving the real problem of e-mail spam, at the expense of causing problems for innocent users. and there are email address harvesters out there who have found ways to read the munged email addresses.
The use of address munging on Usenet is contrary to the recommendations of RFC 1036 governing the format of Usenet posts, which requires a valid e-mail address be supplied in the From: field of the post. In practice, few people follow this so strictly.
Disguising e-mail addresses in a systematic manner (for example, user[at]domain[dot]com), offers little protection. For example, such addresses can be revealed through a simple Google Search.
Any impediment reduces the user's willingness to take the extra trouble to email the user. In contrast, well maintained email filtering on the user's end does not drive away potential correspondents. Then again, no spam filter is 100% immune to false positives, and the same potential correspondent that would have been deterred by address munging may instead end up wasting time on long letters that will merely disappear in junk mail folders.
For commercial entities, maintaining contact forms on web pages rather than publicizing Email addresses may be one way to ensure that incoming messages are relatively spam-free yet do not get lost. In conjunction with CAPTCHA fields, spam on such comment fields can be reduced to effectively zero, except that non-accessibility of CAPTCHAs bring exactly the same deterrent problems as address munging itself.
As an alternative to address munging, there are several "transparent" techniques that allow people to post a valid e-mail address, but still make it difficult for automated recognition and collection of the address:
- "Transparent name mangling" involves replacing characters in the address with equivalent HTML references from the list of XML and HTML character entity references.
- Posting all or part of the e-mail address as an image.
- Using a client-side form with the e-mail address as a CSS3 animated text logo captcha and shrinking it to normal size using inline CSS.
- Posting an e-mail address with the order of characters jumbled and restoring the order using CSS.
- Building the link by client-side scripting.
- Using server-side scripting to run a contact form.
An example of munging "firstname.lastname@example.org" via client-side scripting would be:
The use of images and scripts for address obfuscation can cause problems for people using screen readers and users with disabilities, and ignores users of text browsers like lynx and w3m, although being transparent means they don't disadvantage non-English speakers that cannot understand the plain text bound to a single language that is part of non-transparent munged addresses or instructions that accompany them.
Common methods of disguising addresses include:
|Disguised address||Recovering the original address|
|no-one at example (dot) com||Replace " at " with "@", and " (dot) " with "."|
|email@example.com||Reverse domain name: elpmaxe to example
|moc.elpmaxe@eno-on||Reverse the entire address|
|no-one@exampleREMOVEME.com||Instructions in the address itself; remove REMOVEME.|
|no-one@exampleNOSPAM.com.invalid||Remove NOSPAM and .invalid from the address.|
|n o - o n e @ e x a m p l e . c o m||This is still readable, but the spaces between letters stop automatic spambots.|
|no-one<i>@</i>example<i>.</i>com (as HTML)||This is still readable and can be copied directly from webpages,
but stops many email harvesters.
|по-опе@ехатрlе.сот||Cannot be copied directly from Webpages, must be manually copied. All letters except l are Cyrillic homoglyphs that are identical to Latin equivalents to the human eye but incomprehensibly different to most computers. (See also IDN homograph attack for more malicious use of this strategy.)|
The reserved top-level domain .invalid is appended to ensure that a real e-mail address is not inadvertently generated. One problem is that some spammers will now remove obvious munges and send spam to the cleaned up address. For this reason many people recommend using a totally invalid address[vague] (especially in the From line) and perhaps a disposable email address in the Reply To.
See also 
- Email Address Harvesting: How Spammers Reap What You Sow, Federal Trade Commission. URL accessed on 24 April 2006.
- Address Munging Considered Harmful, Matt Curtin
- See Usenet.
- Address munging tool (the generator requires the Java virtual machine installed and its browser plugin enabled.)
- E-mail as an image
- PHP jumbler tool
- PHP contact form generator
- "Why Am I Getting All This Spam? Unsolicited Commercial E-mail Research Six Month Report" March 2003.
- Address Munging Frequently Asked Questions
- Newsgroup address munging
- A useful and free Contact Form Widget With Multi-Language and CAPTCHA support for web pages
- Free email address encrypter using client side java script.