kreativsoehne/sulu-email-obfuscator-bundle
A Sulu CMS bundle for obfuscating email addresses in templates and content, helping protect them from spam bots while keeping mailto links usable for visitors. Lightweight integration for Sulu/Twig projects.
mailto: address (contact, press, team, imprint, tender documents) gets a harvesting defence without removing the address — a product/compliance decision, not just a technical one.sulu_obfuscate_email, sulu_obfuscate_emails) as the opt-in escape hatch where a template wants to own the decision. This supports a "safe default, explicit override" product posture rather than a configuration matrix.preview request attribute is respected, so previews show genuine addresses. This protects the editorial review workflow and avoids a class of "why is my page showing garbage?" support tickets — a real adoption blocker for CMS features.data-obfuscated-email marker means the client knows what to decode and the rewriter knows what it has already processed. For a PM this is the basis for idempotency guarantees (double-processing, nested rewrites) and for later analytics or audit work without a schema change.title attributes, form values) is needed; whether the same response-rewriting pattern is worth reusing for other content-hardening needs.Consider it when:
mailto: links server-side in HTML.Look elsewhere or plan mitigations when:
href. Comments, script, style, textarea, title, and non-mailto link content are intentionally untouched — so emails in JSON-LD/structured data, analytics snippets, title tooltips, or textarea content remain harvestable.For executives: A small, free, single-purpose addition that hides published email addresses from spam harvesters without changing a single page template or asking the content team to relearn anything. Cost is a dependency and a short QA pass; the benefit is reduced spam volume and reduced pressure to remove contact addresses that regulators, customers, or partners expect to find. It is a first release, so treat it as a low-risk, reversible pilot on one site rather than a platform-wide standard.
For engineering: Response-level rewriter plus two Twig filters, a data-obfuscated-email marker for idempotency and client-side reversal, a preview bypass, and a conservative exclusion list (comments, script, style, textarea, title, non-mailto links). Small surface area, easy to unit-test against fixture HTML, no template changes, no database migration. Ask before adoption: no-JS fallback behaviour, double-rewrite safety, and whether JSON-LD/structured-data emails need a follow-up.
For editorial and support: Nothing changes in how you work. Previews show real addresses. If a template needs special handling, it opts in explicitly rather than guessing.
Recommendation: Adopt as an evaluated pilot on a non-critical site, pin the version, and define the missing-coverage list (structured data, title attributes, JS-injected addresses) as the gate for wider rollout.
How can I help you explore Laravel packages today?