Remove email addresses from text
Only the email detector is on for this page, so nothing else in your text is touched. Every address becomes [EMAIL_1], [EMAIL_2] and so on, with the same address always getting the same number.
It handles the awkward shapes that trip up simple find-and-replace: plus-tagging (sam+invoices@…), subdomains (@mail.acme.co.uk), long modern TLDs, dots and apostrophes in the local part.
Your text
Safe to paste
Preset: email addresses only.
Mapping — 0 values (only visible in this tab)
| Placeholder | Real value | Uses |
|---|
Check a few rows before you paste — this is the fastest way to spot a detector that grabbed the wrong thing. Nothing here is stored or sent anywhere.
What to look for — 30 detectors, custom terms, exceptions
People & organisations
Government & health IDs
Financial
Technical & secrets
Location
Step 3 — paste the AI’s answer here to put the real values back
The model replies using the placeholders. Paste its answer below and every
[NAME_1] becomes the real name again — using the mapping held in this tab, which
is the only copy that exists.
How it works
- Open this page — the detectors are already set for “Remove email addresses”.
- Paste your text, or drop a .txt, .md, .csv, .json or .log file onto the panel.
- Check the highlights: every match is coloured by type, and one click keeps a type as-is.
- Copy the safe version and paste it into the AI tool of your choice.
- Paste the model’s reply back into step 3 to restore the real values.
Why replace rather than delete
Deleting addresses breaks the sense of a thread: you can no longer tell who was on the To line, whether the same person appears twice, or that a reply went to a different address than the original. Numbered placeholders keep all of that and carry none of the identity.
It also makes the round trip possible. Ask a model to draft a reply mentioning [EMAIL_1], paste its answer into step 3, and the real address comes back — the mapping only ever existed in this browser tab.
Where email addresses hide
Header blocks are obvious. The ones that get missed are inside URLs (?email=sam@…), inside JSON exports, in log lines, in email signatures pasted at the bottom of a quoted thread, and in “mailto:” links copied out of a web page. Because the detector works on the raw text rather than on a parsed document, it finds all of those.
An address is also personal data in itself — under the GDPR it identifies a person directly, and it is one of the eighteen HIPAA Safe Harbor identifiers. That is why it is worth removing even when the rest of the text looks harmless.
Tips
- Need names gone too? Switch the name detector on in the settings panel, or start from the full preset.
- Keep your own support address in the text by adding it to the “never redact” list.
- Bulk lists work fine: paste a whole column of addresses and each unique one gets its own placeholder.
Detectors are pattern-based and imperfect: read the highlighted output before you paste it anywhere, and confirm your own confidentiality obligations against the current rules for your profession, employer or jurisdiction. Compiled 2026-07-29.
Frequently asked questions
Does it catch obfuscated addresses like “sam [at] acme [dot] com”?
No. Those are not addresses by any pattern, and matching them reliably would drag in far too much ordinary text. Add such variants to custom terms if you need them gone.
Are the addresses I paste stored or sent anywhere?
Neither. The detection runs in your browser, there is no upload endpoint on this site, and the page keeps working with your network disconnected — which is the easiest way to check the claim yourself.
Can I get a list of the addresses that were found?
Yes — “Save key file” downloads the placeholder-to-value mapping as JSON. Remember that file undoes the redaction, so treat it like a password and delete it when you are done.