Email Encoder Bundle – Protect Email Address


Encode mailto links, email addresses, phone numbers and any text to hide them from (spam)bots.


  • Protect mailto links and plain email addresses
  • Protect phone numbers (or any text or html)
  • Also supports special chars, like é, â, ö, Chinese characters etcetera
  • Also protect your RSS feeds
  • Use shortcodes, template functions, action and filter hooks
  • Use the Encoder Form to manually create encoded scripts

Easy to use

After activating the plugin all mailto links will be protected automatically.
You could use shortcodes or template functions to protect plain email addresses, phone numbers or other text.


  • Documentation – When activated check the “Help”-tab on the plugin options page
  • FAQ
  • Github

Like this plugin?

Send Your Review.



  • Admin Options Page
  • Check encoded email/content when logged in as admin
  • Email Encoder Form on the Site


  1. Go to Plugins in the Admin menu
  2. Click on the button Add new
  3. Search for Email Encode Bundle and click ‘Install Now’ or click on the upload link to upload
  4. Click on Activate plugin


Installation Instructions
  1. Go to Plugins in the Admin menu
  2. Click on the button Add new
  3. Search for Email Encode Bundle and click ‘Install Now’ or click on the upload link to upload
  4. Click on Activate plugin
How can I test if an emailaddrees (or other content) is encoded?

First you can enable the plugin option (in the admin panel) called “Show ‘successfully encoded’ text for all encoded content, only when logged in as admin user.”.
When you are logged in and look on the page there will be a sign on the righ side of the emailaddress confirming it was successfully encoded.

The other way is to check the source code yourself by right-clicking on the page and select Page Source Code (the exact text depends on the browser).
Now your (real) source code will be shown. YOur emailaddress should not be shown in a readable way in the source.

Important: in the element inspector of the browser the emailaddress is always shown, so don’t worry about that. That is because the inspector shows
a real time representation of the page. This means an encoded emailaddress is already decoded and made usable for the visistor of the page.

How do I encode my email address(es)?

In the posts you can use this shortcode:
[eeb_email email=”” display=”My Email”]

But mailto links will be encoded automatically (option is on by default):
My Email

The visitors will see everything as normal, but the source behind it will now be encoded (for spambots), and looks like:
/*< ![CDATA[*/ML="mo@kf/lMt”;MI=”4CB8HC77=D0C5HJ1>H563DB@:AF=D0C5HJ190<6C0A2JA7J;6HDBBJ5JHA=DI<b ?0C5HDEI<B?0C5H4GCE";OT="";for(j=0;j*/protected email

This code is not readable by spambots and protects your email address.

How do I encode phone numbers or other text?

Just use the following shortcode within your posts:

For other parts of your site you can use the template function eeb_content().

Email address in a form field is being encoded in a strange way. What to do?

An email address in a form field will not be encoded correctly.
There are 2 ways to solve this problem:

  1. Turn off the option “Replace plain email addresses to protected mailto links”. Keep in mind that this will be the case for the whole site.
  2. Add the page ID of the form to the option “Do not apply Auto-Protect on posts with ID”. The page content will be skipped by the plugin.
How to use email encodig in Custom Fields?

You will have to use the template function eeb_email() or eeb_content().
For example, if your template contains:
echo get_post_meta($post->ID, ’emailaddress’, true);

Then change it to:
$emailaddress = get_post_meta($post->ID, ’emailaddress’, true);
echo eeb_email($emailaddress, ‘Mail Me’);

How to create mailto links that opens in a new window?

You could add extra params to the mailto link and add target='_blank' for opening them in a new window, like:
[eeb_email email=”” display=”My Mail” extra_attrs=”target=’_blank'”]

In html this will look like:
My Mail

How can I encode content of BBPress, WP e-Commerce or other plugins?

If you use other plugins that needs to be encoded you can add a callback to the action “init_email_encoder_bundle”.
For Example:

add_action('eeb_ready', 'extra_encode_filters');

function extra_encode_filters($filter_callback) {
    // add filters for BBPress
    add_filter('bbp_get_reply_content', $filter_callback);
    add_filter('bbp_get_topic_content', $filter_callback);
Can I use special characters (like Chinese)?

Yes, since version 1.3.0 also specail characters are supported.

How to encode emails in all widgets (and not only text widgets)?

If the option ‘All text widgets’ is activated, only text widgets will be filtered for encoding.
It’s possible to filter all widgets by using the Widget Logic Plugin and activate the ‘widget_content’ filter.

Do you have another question? Please ask me


easy to use

nice and easy to use, not just for email but also for other content like phone numbers.

Very useful tool

I installed this to encode email addresses and found it simple and easy to use. I just ran into a situation where I was unable to insert the short code next to the email address. After a bit of exploration, I found that I could simply use the “content” option to encode the entire block which included the email address. Problem solved. Thank you.

One of the best I’ve used

So simple to use and does a great job obfuscating addresses. I used a different plugin for years but it started to not work well with attached subjects or other random addresses. This one works great though. Nice work & thank you!

Very helpful! Works perfectly!

This is a very useful plugin!
Instead of typing your emails like email[at] or something like that, this plugin creates a clickable (mailto) email link with a normal-looking email address while at the same time protecting the email from spam bots.
Excellent! 5 stars for sure!

BTW, I don’t have the Jetpack plugin installed and it works perfectly for me.
(Not sure why one of the reviewers claimed it wouldn’t work without Jetpack? Maybe it was just a bug that has been fixed a long time ago.)

Works wonderfully well.

Easy to install, set up, and it hides the email. Nothing more, nothing less. Works without Jetpack plugin installed, by the way. I checked the source code and the email is totally hidden. Thanks to the developer for this free service!

Read all 30 reviews

Contributors & Developers

“Email Encoder Bundle – Protect Email Address” is open source software. The following people have contributed to this plugin.


“Email Encoder Bundle – Protect Email Address” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Email Encoder Bundle – Protect Email Address” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fixed bug retina png and gif images


  • Fixed ? params bug


  • Fixed skip responsive images containing @


  • Changed content


  • Fixed potential xss vulnerability



  • Fixed bug prefilled email address in input fields
  • Added option protection text for encoded content (other than email addresses)


  • Also support special chars for the javascript methods, like é, â, ö, Chinese chars etcetera
  • Fixed bug unchecking options “use shortcode” and “use deprecated”


  • Fixed bug index php error


  • Added filter for Encoder Form content (eeb_form_content)


  • Added filters for changing regular expression for mailto links and email addresses
  • Fixed bug don’t encode when loading admin panel


  • Fixed bug wrong “settings” link
  • Fixed bug removing shortcodes RSS feed


  • Fixed PHP support (same as WordPress)


  • Fixed bug deleting setting values when unregister (will now be deleted on uninstall)
  • Fixed bug also possible to set protection text when RSS disabled
  • Fixed bug saving metaboxes settings
  • Added option support shortcodes in widgets
  • Added option removing shortcodes for RSS feed
  • Removed “random” method option
  • Changed names for action and shortcode (prefixed with eeb_), optional the old names will still be supported
  • Added template function for creating the encoder form
  • Changed class en id names of the Encoder Form


  • Added screen settings
  • Registered metaboxes
  • Fixed bug random method
  • Workaround for display with special characters (like Chinese), works only with enc_html


  • Option to make own menu item (in admin panel) for this plugin
  • Option for showing “successfully encoded” check
  • Fixed bug showing errors for calling wrong translate function
  • Fixed bug always showing encoded check on site (for html encode method)
  • Added workaround for saving disabled checkboxes in options table
  • Fixed bug where encoded check was also applied on output of encoding form


  • Fixed bug with extra params
  • Changed texts and added help tabs on admin options page
  • Changed visual check for encoded mails/content by showing icon and success message
  • Solved that all attributes of mailto links remain when encoding


  • Added hook “init_email_encoder_form” to add custom filters (of other plugins)
  • Added JavaScript code encapsulation for ASCII method
  • Solved reinstalling bug for setting right encoding method
  • Fixed bug shortcodes encoded with HTML method


  • Added encode method for all kind of contents (template function and shortcode “encode_content”)
  • Added extra param for additional html attributes (f.e. target=”_blank”)
  • Added option to skip certain posts from being automatically encoded
  • Added option custom protection text
  • Removed “method” folder. Not possible to add own methods anymore.
  • Other small changes and some refactoring


  • Widget Logic options bug


  • Fixed bug by improving regular expression for mailto links
  • Changed script attribute language to type
  • Script only loaded on options page (hopefully this solves the dashboard toggle problem some people are experiencing)
  • Added support for widget_content filter of the Logic Widget plugin


  • Added option for setting CSS classes
  • Improved RSS protection
  • Removed Lim_Email_Encoder class (now all handled by the main class)
  • Enabled setting checkbox for filtering posts
  • Fixed PHP / WP notices
  • Added param for encode methods: $obj


  • Fix IE bug
  • Bug plain emails
  • Optional “method” param for tag and template function, f.e. [encode_email email=”” method=”ascii”]
  • Small adjustments


  • Fixed tiny bug (incorrect var-name $priority on line 100 of email-encoder-bundle.php)


  • Added protection for emails in RSS feeds
  • Improved filtering tags [encode_email … ]
  • Improved ASCII and Escape method and added noscript message
  • Solved an option bug (encode mailto links VS encode plain emails)
  • Made some cosmetical adjustments on the options page
  • Code refactoring


  • First decodes entities before encoding email
  • Added more wp filters for encoding


  • Changed Encoder Form: HTML markup and JavaScript
  • Made some minor adjustments and fixed little bugs


  • Implemented internalization (including translation for nl_NL)
  • Improved user-interface of the Admin Settings Page and the Encoder Form
  • Added template function: encode_email_filter()
  • Kept and added only high-quality encoding methods
  • Refactored the code and changed method- and var-names within the classes
  • Removed 3rd param $encode_display out of the encoding methods, display should always be encoded
  • Added prefix ‘lim_email_’ to the encoding methods


  • Nothing changed, but 0.11 had some errors because /methods directory was missing in the repository.


  • also possible to use encode tag in widgets by activating the “filter widget” option


  • Works with PHP4 and PHP5
  • Methods: default_encode, wp_antispambot, anti_email_spam, email_escape, hide_email
  • Use the tags: [email_encode email=".." display=".."], [email_encoder_form]
  • Template function: email_encode()