Email Footer Law requirements — check your email footer free

Lints HTML email templates for the footer duties senders get fined for: CAN-SPAM postal address and 10-business-day opt-out, CASL 60-day window, and German 5 DDG, which replaced 5 TMG on 2024-05-14. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

VS Code MarketplaceOpen VSX (Cursor, VSCodium)npmMCP server (npx)Docker Hub
ext install ReadyStack.email-footer-law-lint
npx @readystack/email-footer-law-lint <file>
npx @readystack/email-footer-law-lint --mcp

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get the full rule table as a PDF
All 14 rules Email Footer Law Lint checks, each with its source and date, on printable pages you can hand to your team or auditor. We email it now, and once more only if a rule changes. No newsletter.

Get the full version $29

Sweep every template in the workspace and write one dated, citable audit report file you can hand to a client or to counsel

One payment, one licence key for this tool. The key is shown right after payment.

Outside counsel reads one email footer against CAN-SPAM, CASL and 5 DDG at about $300 an hour, and reads it once.

Buy the full version — $29
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

Twelve findings in this email footer

Twelve findings — nine of them errors — come out of this email footer, for agency developers in Berlin and Toronto who ship HTML templates to US, Canadian and German lists. This is the run, on the 30-line test fixture that ships with the extension:

ERRO  L8   postal_address_placeholder   "[Your Company Address]"        15 U.S.C. 7704(a)(5)(A)(iii)
ERRO  L9   unsub_fee_or_data            "your account number"           16 CFR 316.5
ERRO  L9   unsub_deadline_too_long      "Please allow up to 30 days"    15 U.S.C. 7704(a)(4)(A)(ii)
ERRO  L9   unsub_window_under_60d       "valid for 14 days" = 14 days   CASL s.11(1)(b)
WARN  L10  unsub_too_small              opt-out set at 8px              16 CFR 316.5
ERRO  L15  unsub_dead_href              href="#"                        15 U.S.C. 7704(a)(3)(A)
ERRO  L21  tmg_5_outdated               "TMG" as of 2026-09-11          DDG 5, TMG repealed 2024-05-14
ERRO  L22  unsub_behind_login           /account/login?next=...         16 CFR 316.5
WARN  L25  copyright_year_stale         says 2023; today is 2026-09-11
WARN  L28  tracking_pixel_unconsented   1x1 open pixel, no consent line ePrivacy Art. 5(3)
ERRO  L29  postal_address_missing       no street address, no PO Box    15 U.S.C. 7704(a)(5)(A)(iii)
ERRO  L29  de_imprint_incomplete        no Impressum, no HRB, no VAT    DDG 5 Abs. 1 Nr. 4 and Nr. 6

Twelve lines, nine of them errors, out of fourteen rules. The corrected copy returns zero.

Why it hides in the footer

Nobody re-reads it. The body gets proofread; the footer is copied from the last template, and that one from the one before it. So a repealed statute, a placeholder address and a thirty-day removal promise ride along on every send, for years.

The one that catches almost everybody

Germany repealed the Telemediengesetz on 2024-05-14. The duty did not go away; it moved to section 5 of the Digitale-Dienste-Gesetz. Every German footer written before that date still cites section 5 TMG — and so does every German footer written since by a language model whose training data predates the repeal. Ask an assistant for a compliant German footer today and there is a good chance it hands back a statute that no longer exists.

These are not markup errors. They are facts with dates on them: ten business days for a CAN-SPAM opt-out, sixty days for a CASL unsubscribe mechanism, 2024-05-14 for the TMG. A linter that knows HTML has no opinion about any of them, and none of these tools opens the other templates in your repository, where the same footer was copied from.

The fourteen checks

Four groups. The opt-out link: does one exist, does the href go anywhere, does it land on a sign-in page, does it demand an account number or a fee, is it rendered at a readable size. The promises around it: a removal window longer than ten business days, a link declared valid for fewer than sixty days. The identification: a real postal address rather than [Your Company Address], a named legal entity, and for German-facing mail an Impressum link or a register and VAT number. And two that read the date you run them on: a stale copyright year, and a 1x1 open-tracking pixel shipping with no line telling the reader why they got this mail.

Nothing is uploaded; the engine is one dependency-free file that runs identically in the editor and in the browser.

Free, and what is not

Checking the template open in your editor is free against all fourteen rules, with no key and no account; the same engine runs free in the browser. The licence covers one thing on a different axis: sweep every template in the workspace and write one dated audit report — every file, every finding, every citation — that a client or a lawyer can read without opening your editor. Outside counsel reads one footer against CAN-SPAM, CASL and section 5 DDG at about $300 an hour, and reads it once. The licence is $29, and the rules run on every commit afterwards.

15 seconds — what it actually does

Questions people ask

What does Email Footer Law Lint actually do?

It reads an HTML email template and reports the footer duties it breaks. Fourteen checks: a missing or placeholder postal address, an opt-out link pointing at a sign-in page, a removal promise longer than ten business days, an unsubscribe link declared valid for under sixty days, and a German provider line still citing the repealed TMG. Every finding names the line, the statute and the fix.

Who is this for?

Developers and agency engineers who own the HTML email templates for a company that mails US, Canadian and German recipients. If you keep a folder of campaign and transactional templates in git, and the footer in them was copied forward from a template someone wrote years ago, this is aimed squarely at you rather than at the marketing team.

Why will a free linter or a chat assistant not do this?

HTML linters check markup, not statutes; they have no opinion about a thirty-day removal promise. Chat assistants have a worse problem: Germany repealed the Telemediengesetz on 2024-05-14, and models trained before that still write section 5 TMG into German footers. Neither one opens the other forty templates sitting in your repository.

What is free and what needs a licence?

Free, with no key and no account: checking the template open in your editor against all fourteen rules, with the statute and the fix on every finding. The same engine runs free in the browser on the product page. The licence covers one thing: sweeping every template in the workspace and writing one dated audit report file.

What would this cost me otherwise?

Outside counsel reads one email footer against CAN-SPAM, CASL and section 5 DDG at roughly $300 an hour, and reads it once, on the day you ask. A template repository changes every week. The licence is $29, once, and the fourteen rules run on every commit you make afterwards.

Why not just ask ChatGPT or another AI chat?

A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. Email Footer Lint - CAN-SPAM, CASL and GDPR unsubscribe checks the file you open against 14 rules, each naming its legal or official basis, from a rule set dated 2026-09-20, and points at the exact line with the fix. For a filing, an audit or a client you need that dated result on your own files.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.

Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →