A Craft CMS plugin that adds a Twig filter to obfuscate emails.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A Craft CMS plugin that adds a Twig filter to obfuscate emails or any other content using Hivelogic Enkoder.

This plugin uses Standalone PHPEnkoder.


This plugin requires Craft CMS 3.0.0 or later. The Craft 2 version is availabe in the v0 branch.


You can install this plugin from the Plugin Store or with Composer.

From the Plugin Store

Go to the Plugin Store in your project’s Control Panel and search for “Obfuscator”. Then click on the “Install” button in its modal window.

Using Composer

Open your terminal and run the following commands:

# go to the project directory
cd /path/to/project

# tell composer to use the plugin
composer require miranj/craft-obfuscator

# tell Craft to install the plugin
./craft install/plugin obfuscator


The following Twig snippet —

{% filter enkode_emails %}
    Reach us on me@example.com or
    <a href="mailto:anotherme@example.com">here</a>.
{% endfilter %}

will result in HTML where both the plain text email, and the mailto: anchor tag are recognised as emails and obfuscated. It will result in something like this (re-formatted for readability):

Reach us on

<span id="enkoder_1_2033799978">email hidden; JavaScript is required</span>
<script id="script_enkoder_1_2033799978" type="text/javascript"> /* <!-- */
function hivelogic_enkoder_1_2033799978() { … } hivelogic_enkoder_1_2033799978();
/* --> */ </script>


<span id="enkoder_0_1540754146">email hidden; JavaScript is required</span>
<script id="script_enkoder_0_1540754146" type="text/javascript"> /* <!-- */
function hivelogic_enkoder_0_1540754146() { … } hivelogic_enkoder_0_1540754146();
/* --> */ </script>.

In addition to the enkode_emails filter, Obfuscator comes with a bunch of additional filters for more fine grained targeting of what to obfuscate.

{{ 'Reach us on me@example.com or <a href="mailto:anotherme@example.com">here</a>.'|enkode_emails }}

{{ '<a href="mailto:me@example.com">Contact Us</a>'|enkode_mailtos }}

{{ 'Contact us at me@example.com.'|enkode_plaintext_emails }}

{{ 'I don’t want spam bots to read this.'|enkode }}

{{ 'If you don’t have JavaScript, you’ll see a helpful message.'|enkode('JavaScript is required to view this message.') }}

Brought to you by Miranj