Pixeline's Email Protector


This plugin provides an unobtrusive yet efficient protection against email harvesters / spambots. Here is a demo.

Post/page authors may write email addresses in their article in the usual format (“john@doe.com”) without exposing them to spam email harvesters. The plugin takes care of the obfuscation, implementing a graceful degradation technique focusing on usability so as to protect your email addresses from harvesters while keeping them usable to your human visitors.

The plugin replaces any email address found in posts, pages, comments and excerpts, and replace them by a bit of html markup that should deceive most email harvesters: <span class="email">john(replace the parenthesis by @)doe.com</span>.
If javascript is available, it will display a clickable link and display the original email to the human user. Maximum usability, maximum protection.

Please rate the plugin if you like it.


Write your email addresses inside your posts and pages as usual. When the plugin is activated, it will replace them by a human-readable html string that explains how to deduce the email address, and if javascript is available (99.9% of the time), the original email address will be displayed as a clickable mailto: link. For example:
Hello john@doe.com. How are you today?
will become
John( replace these parenthesis by @ )doe.com.

Additionally, you can specify what the mailto: link should look like by sticking a parenthesis inside of which you put the visible link text, like this:

Hello john@doe.com(John Doe). How are you today?  

will become
John( replace these parenthesis by @ )doe.com.

inside a theme

If you need to protect emails inside your Theme’s files (like the footer.php for example), you can use the function safe_email() like this:

 echo safe_email('you@domain.com'); <h3>Contribute</h3>

Github repo: https://github.com/pixeline/pixeline-email-protector


Great plugin, initial problem w/ using email as text link, but resolved now...

Sound View

This plugin ended up working great for me. Initially I had already coded the mailto links. I had used the email address as the text to link to, so that was a problem. I was able to resolve that my removing the mailto link and keeping only the email address and that worked perfectly. Now all email addresses added to the site will be protected. thank you!

Read all 6 reviews



Enhancement: now filters the Text Widget content.


mild fixes.


  • fixed admin ui


  • Support for WP 4.7


  • improved readme with a Demo + transition to Github + French translation.


  • Extensive rewrite.
  • Plugin does not run in the Admin anymore.
  • The plugin does not need jQuery anymore. Plain vanilla javascript.


  • Fix bug occurring when there are similar addresses, one being a substring of the other. Thank you, @mkranz ( https://wordpress.org/support/profile/mkranz )


  • Stupid error fixed. My bad.


  • Fixed all notices showing up when WP_DEBUG is true.


  • Fixed a possible cause of javascript errors on some setups.


  • Fixed Warnings appearing before comments.


  • Added filters for get_the_content, get_the_title and get_the_excerpt


  • Full code rewrite in OOP to avoid polluting the namespace.
  • added filters to protect emails in title, widgets, and comments.
  • Provided a function safe_email($email) to protect emails outside the loop in a theme for example.
  • Clarified the Settings screen and provided thorough documentation.


  • Now detects “mailto:” links and protects them too.


  • Added the option to specify what should be the visible part of the clickable email by adding a title attribute to the generated Anchor.
  • Changed the span class from “email” to “pep-email” to (kind of) use the “pep” namespace.


  • Corrected the plugin’s “Stable version” variable.
  • fixed folderpath issue because of the wrong foldername the wordpress repository generates for the plugin :-/


  • Initial release

Contributors & Developers

This is open source software. The following people have contributed to this plugin.


Browse the code