{"id":537,"date":"2011-11-21T13:42:01","date_gmt":"2011-11-21T13:42:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/email-address-encoder\/"},"modified":"2026-04-12T15:36:40","modified_gmt":"2026-04-12T15:36:40","slug":"email-address-encoder","status":"publish","type":"plugin","link":"https:\/\/azb.wordpress.org\/plugins\/email-address-encoder\/","author":5787231,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.25","stable_tag":"1.0.25","tested":"7.0","requires":"2.0","requires_php":"5.3","requires_plugins":null,"header_name":"Email Address Encoder","header_author":"Till Kr\u00fcss","header_description":"","assets_banners_color":"c0c9d5","last_updated":"2026-04-12 15:36:40","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/sponsors\/tillkruss","header_plugin_uri":"https:\/\/encoder.till.im\/","header_author_uri":"https:\/\/till.im\/","rating":4.1,"author_block_rating":0,"active_installs":100000,"downloads":1604511,"num_ratings":161,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.19.0":{"tag":"0.19.0","author":"tillkruess","date":"2019-04-10 19:29:33"},"1.0":{"tag":"1.0","author":"tillkruess","date":"2011-11-21 14:33:43"},"1.0.1":{"tag":"1.0.1","author":"tillkruess","date":"2011-11-23 02:52:25"},"1.0.10":{"tag":"1.0.10","author":"tillkruess","date":"2018-11-28 05:25:58"},"1.0.11":{"tag":"1.0.11","author":"tillkruess","date":"2018-12-01 17:06:05"},"1.0.12":{"tag":"1.0.12","author":"tillkruess","date":"2018-12-01 22:32:49"},"1.0.13":{"tag":"1.0.13","author":"tillkruess","date":"2019-01-21 20:27:59"},"1.0.14":{"tag":"1.0.14","author":"tillkruess","date":"2019-01-21 20:31:42"},"1.0.15":{"tag":"1.0.15","author":"tillkruess","date":"2019-02-24 21:02:39"},"1.0.16":{"tag":"1.0.16","author":"tillkruess","date":"2019-02-25 18:15:14"},"1.0.17":{"tag":"1.0.17","author":"tillkruess","date":"2019-03-01 22:03:46"},"1.0.18":{"tag":"1.0.18","author":"tillkruess","date":"2019-03-04 01:38:16"},"1.0.19":{"tag":"1.0.19","author":"tillkruess","date":"2020-05-28 17:03:59"},"1.0.2":{"tag":"1.0.2","author":"tillkruess","date":"2011-12-18 02:29:40"},"1.0.21":{"tag":"1.0.21","author":"tillkruess","date":"2020-11-21 20:59:22"},"1.0.22":{"tag":"1.0.22","author":"tillkruess","date":"2023-08-11 20:12:40"},"1.0.23":{"tag":"1.0.23","author":"tillkruess","date":"2023-11-27 18:22:39"},"1.0.24":{"tag":"1.0.24","author":"tillkruess","date":"2025-01-20 21:35:19"},"1.0.25":{"tag":"1.0.25","author":"tillkruess","date":"2026-04-12 15:36:40"},"1.0.3":{"tag":"1.0.3","author":"tillkruess","date":"2012-09-15 12:15:35"},"1.0.4":{"tag":"1.0.4","author":"tillkruess","date":"2016-03-31 00:17:01"},"1.0.5":{"tag":"1.0.5","author":"tillkruess","date":"2017-11-09 19:08:47"},"1.0.6":{"tag":"1.0.6","author":"tillkruess","date":"2018-03-13 16:28:58"},"1.0.7":{"tag":"1.0.7","author":"tillkruess","date":"2018-04-15 19:34:27"},"1.0.8":{"tag":"1.0.8","author":"tillkruess","date":"2018-11-01 18:40:13"},"1.0.9":{"tag":"1.0.9","author":"tillkruess","date":"2018-11-28 03:10:22"}},"upgrade_notice":{"1.0.11":"<p>This release adds the ability to get notified when your site contains unprotected email addresses.<\/p>","1.0.10":"<p>This release includes several improvements and new features.<\/p>","1.0.9":"<p>This release includes several improvements related to admin notices.<\/p>","1.0.8":"<p>This release adds a minimal user interface and page scanner.<\/p>","1.0.7":"<p>This release prevents potential compatibility issues.<\/p>","1.0.6":"<p>This release adds PHP 7.2 compatibility and a new shortcode.<\/p>","1.0.5":"<p>This update includes a minor bug fix.<\/p>","1.0.4":"<p>Added constant to adjust default filter priority.<\/p>","1.0.3":"<p>Speed and &quot;randomness&quot; improvements.<\/p>","1.0.2":"<p>Added filter to override the regular expression.<\/p>","1.0.1":"<p>Effects now also page, post and comment excerpts.<\/p>"},"ratings":{"1":27,"2":6,"3":3,"4":6,"5":119},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":970206,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":970206,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":970206,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":970206,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.19.0","1.0","1.0.1","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","1.0.15","1.0.16","1.0.17","1.0.18","1.0.19","1.0.2","1.0.21","1.0.22","1.0.23","1.0.24","1.0.25","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2066777,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1981695,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1981695,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2066777,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Settings: Configure the plugin to your needs.","2":"Protection: This is how email addresses will look like under the hood.","3":"[Premium] Hardened protection: A preview of JavaScript and CSS based techniques","4":"[Premium] Phone number protection using polymorphous ROT47\/CSS"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1220,9837,12167,1178,599],"plugin_category":[41,54,55],"plugin_contributors":[78186],"plugin_business_model":[216238],"class_list":["post-537","plugin","type-plugin","status-publish","hentry","plugin_tags-block","plugin_tags-crawler","plugin_tags-encryption","plugin_tags-protection","plugin_tags-spam","plugin_category-communication","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-tillkruess","plugin_business_model-commercial","plugin_committers-tillkruess","plugin_support_reps-julieadrienne"],"banners":{"banner":"https:\/\/ps.w.org\/email-address-encoder\/assets\/banner-772x250.jpg?rev=970206","banner_2x":"https:\/\/ps.w.org\/email-address-encoder\/assets\/banner-1544x500.jpg?rev=970206","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/email-address-encoder\/assets\/icon-128x128.jpg?rev=970206","icon_2x":"https:\/\/ps.w.org\/email-address-encoder\/assets\/icon-256x256.jpg?rev=970206","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/email-address-encoder\/assets\/screenshot-1.png?rev=2066777","caption":"Settings: Configure the plugin to your needs."},{"src":"https:\/\/ps.w.org\/email-address-encoder\/assets\/screenshot-2.png?rev=1981695","caption":"Protection: This is how email addresses will look like under the hood."},{"src":"https:\/\/ps.w.org\/email-address-encoder\/assets\/screenshot-3.png?rev=1981695","caption":"[Premium] Hardened protection: A preview of JavaScript and CSS based techniques"},{"src":"https:\/\/ps.w.org\/email-address-encoder\/assets\/screenshot-4.png?rev=2066777","caption":"[Premium] Phone number protection using polymorphous ROT47\/CSS"}],"raw_content":"<!--section=description-->\n<p>A lightweight plugin that protects plain email addresses and mailto links from email-harvesting robots, by encoding them into decimal and hexadecimal entities. Has an effect on the posts, pages, comments, excerpts, text widgets and other filtered content. Works without JavaScript \u2014 just simple spam protection.<\/p>\n\n<p>To see whether all your email addresses are properly protected, use the free <a href=\"https:\/\/encoder.till.im\/scanner?utm_source=wp-plugin&amp;utm_medium=readme\">page scanner<\/a> tool.<\/p>\n\n<p>Other content (like phone numbers) can be protected using <code>[encode]<\/code> shortcode:<\/p>\n\n<pre><code>[encode]+1 (555) 123-4567[\/encode]\n[encode link=\"tel:+15551234567\"]+1 (555) 123-4567[\/encode]\n<\/code><\/pre>\n\n<h4>Premium Features<\/h4>\n\n<ul>\n<li><strong>Full-page protection<\/strong> that catches all email addresses<\/li>\n<li><strong>Hardened protection<\/strong> using JavaScript and CSS techniques<\/li>\n<li>Improved <strong>phone number<\/strong> protection<\/li>\n<li>Built-in plugin support for <strong>ACF<\/strong>, <strong>Jetpack<\/strong>, <strong>WooCommerce<\/strong> and many others<\/li>\n<\/ul>\n\n<p>Check out the <a href=\"https:\/\/encoder.till.im\/download?utm_source=wp-plugin&amp;utm_medium=readme\">Premium<\/a> version of Email Address Encoder.<\/p>\n\n<p><a href=\"http:\/\/coderisk.com\/wp\/plugin\/email-address-encoder\/RIPS-r0bJqKvBws\"><\/a><\/p>\n\n<!--section=installation-->\n<p>For detailed installation instructions, please read the <a href=\"http:\/\/codex.wordpress.org\/Managing_Plugins#Installing_Plugins\">standard installation procedure for WordPress plugins<\/a>.<\/p>\n\n<ol>\n<li>Upload the <code>\/email-address-encoder\/<\/code> directory and its contents to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Login to your WordPress installation and activate the plugin through the <em>Plugins<\/em> menu.<\/li>\n<li>Use the \"Page Scanner\" under <em>Settings -&gt; Email Encoder<\/em> to test if your email addresses are protected.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20does%20this%20plugin%20do%3F\"><h3>What does this plugin do?<\/h3><\/dt>\n<dd><p>This plugin searches for email addresses using WordPress filters like <code>the_content<\/code>, <code>widget_text<\/code> and others. Found email addresses are encoded using decimal and hexadecimal HTML entities, which obfuscates the email addresses to protect it from being read by most email-harvesting robots.<\/p>\n\n<p>Alternatively, you can use the <code>[encode]<\/code> shortcode: <code>[encode]+1 (555) 123-4567[\/encode]<\/code><\/p><\/dd>\n<dt id=\"how%20can%20i%20make%20sure%20the%20plugin%20works%3F\"><h3>How can I make sure the plugin works?<\/h3><\/dt>\n<dd><p>You can use the \"Page Scanner\" found under <em>Settings -&gt; Email Encoder<\/em> to see whether all your email addresses are protected. Alternatively, you can manually look at the \"page source\" of your site.<\/p>\n\n<p><strong>Please note:<\/strong> Chrome\u2019s Developer Tools, Safari\u2019s Web Inspector and others automatically decode decimal and hexadecimal entities. You need to look at the \"plain HTML source code\".<\/p><\/dd>\n<dt id=\"how%20can%20i%20filter%20other%20parts%20of%20my%20site%3F\"><h3>How can I filter other parts of my site?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/encoder.till.im\/guide?utm_source=wp-plugin&amp;utm_medium=readme\">This guide<\/a> will help you encode all email addresses that aren\u2019t caught.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.25<\/h4>\n\n<ul>\n<li>Fixed potential XSS vulnerability in <code>EAE_REGEXP<\/code><\/li>\n<\/ul>\n\n<h4>1.0.24<\/h4>\n\n<ul>\n<li>Added <code>class<\/code> attribute to <code>[encode]<\/code> shortcode<\/li>\n<li>Prevent CSRF to flush page caches<\/li>\n<\/ul>\n\n<h4>1.0.23<\/h4>\n\n<ul>\n<li>Fixed potential XSS vulnerability when using <code>link<\/code> shortcode attribute<\/li>\n<\/ul>\n\n<h4>1.0.22<\/h4>\n\n<ul>\n<li>Added <code>link<\/code> attribute to <code>[encode]<\/code> shortcode<\/li>\n<\/ul>\n\n<h4>1.0.21<\/h4>\n\n<ul>\n<li>Changed page slug to avoid issues with the <code>encode<\/code> keyword<\/li>\n<li>Only search for unprotected emails on public pages<\/li>\n<li>Show warning when page couldn't be fetched<\/li>\n<\/ul>\n\n<h4>1.0.20<\/h4>\n\n<ul>\n<li>Encode emails in navigation menus<\/li>\n<\/ul>\n\n<h4>1.0.19<\/h4>\n\n<ul>\n<li>Defer loading of email detector script<\/li>\n<li>Use plugin version as cache buster<\/li>\n<li>Add \"Polymorphous ROT47\/CSS\" to techniques<\/li>\n<\/ul>\n\n<h4>1.0.18<\/h4>\n\n<ul>\n<li>Show warning when incompatible plugins are installed<\/li>\n<li>Fixed saving of dismissed notices<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Offload email detection to web worker<\/li>\n<li>Flush WP Super Cache and Cachify when saving settings<\/li>\n<li>Ignore emails in admin bar, debug bar and query monitor<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Avoid fatal error when using PHP 5.5 or lesser<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>Added <code>EAE_REGEXP<\/code> constant<\/li>\n<li>Added <code>eae_email_callback<\/code> filter<\/li>\n<li>Added unprotected email detector to admin bar<\/li>\n<li>Respect <code>eae_method<\/code> filter in shortcode<\/li>\n<li>Fixed issue with notices not hiding in some cases<\/li>\n<li>Flush page cache when saving settings (W3 Total Cache; WP Rocket; LiteSpeed Cache; JCH Optimize)<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Fixed Dashboard JavaScript issue<\/li>\n<li>Blocked signup for more non-production domains<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Resolved issue with WordPress 4.7 and older<\/li>\n<li>Blocked signup for local domains and IP addresses<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Avoid fatal error when using PHP 5.3 or lesser<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Added the ability to get notified when your site contains unprotected email addresses<\/li>\n<li>Made <code>EAE_DISABLE_NOTICES<\/code> check stricter<\/li>\n<li>Removed cross-promotion<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added option to disable notices and promotions<\/li>\n<li>Added activation and uninstall callbacks<\/li>\n<li>Added <code>$hex<\/code> parameter to <code>eae_encode_str()<\/code> method<\/li>\n<li>Added ability to turn off email encoding<\/li>\n<li>Various code and UI improvements<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Made page scanner notice dismissable<\/li>\n<li>Only show page scanner notice on Dashboard<\/li>\n<li>Added setting for filter priority<\/li>\n<li>Added <code>EAE_DISABLE_NOTICES<\/code> constant to disable all notices and promotions<\/li>\n<li>Pass site URL along to page scanner<\/li>\n<li>Moved cross-promotion to plugin screen<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Added user interface<\/li>\n<li>Added links to page scanner<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Prevent potential compatibility issue with other plugins or themes<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added <code>[encode]<\/code> shortcode<\/li>\n<li>Require PHP 5.3 to fix deprecation warning<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Prevented error when <code>eae_encode_emails()<\/code> doesn\u2019t receive a <code>string<\/code><\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added <code>EAE_FILTER_PRIORITY<\/code> constant to adjust default filter priority<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added filter to override the encoding function<\/li>\n<li>Improved randomness of encode-function<\/li>\n<li>Improved speed by doing fast @-sign existence check<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added filter to override the regular expression.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Effects now also page, post and comment excerpts<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"A lightweight plugin that protects email addresses from email-harvesting robots, by encoding them into decimal and hexadecimal entities.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=537"}],"author":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tillkruess"}],"wp:attachment":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=537"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=537"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=537"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=537"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=537"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}