Skip to content
emailrules.today

For agents

Query this from a program.

Everything a person can read here, a program can fetch — from the same URL, with the same answer, carrying the date a human last verified it.

Why this, and not the model on its own

A language model can already write a fluent paragraph about email rules. What it cannot do is know what is true today, or that something moved last month. Every rule here names a primary source and the date a person last checked the claim against it — 41 rules, most recently 4 Aug 2026. That date is the product. It is also the thing to check us on.

Cite the rule URL and its lastVerified date, not a snapshot of this page. The corpus is versioned by date for exactly that reason.

Endpoints

Four ways in.

  • POST/mcp

    Model Context Protocol server. JSON-RPC, stateless, one POST, no key.

    Tools for reading a domain's live authentication, checking an IP against the blocklists that proved they were answering today, reading a whole message, and looking up dated rules. This is the connection you want if your agent framework speaks MCP.

    {"jsonrpc":"2.0","id":1,"method":"tools/list"}
  • GET/rules/[slug]?format=json

    Any rule page as data, at the URL a human reads.

    Every field, including the ones the page folds behind the Proof tab. An Accept: application/json header on the plain URL does the same thing — so the address your user shares and the address you fetch are the same string.

    https://emailrules.today/rules/spf-ten-lookup-limit-returns-permerror?format=json
  • GET/llms.txt

    A plain-text map of the whole corpus, with dates.

    Every rule grouped by topic, each carrying its last-verified date. Written to be read once at the start of a session rather than crawled page by page.

    https://emailrules.today/llms.txt
  • GET/feed.xml

    What changed, as RSS.

    Poll this instead of re-reading the corpus. A rule that has not moved does not need re-fetching, and this is how you find out which ones did.

    https://emailrules.today/feed.xml

Connect it

Add the MCP server.

Stateless, no key, no account. Paste this into any client that speaks MCP over HTTP.

{
  "mcpServers": {
    "emailrules": {
      "type": "http",
      "url": "https://emailrules.today/mcp"
    }
  }
}

Copy as context

What your user hands you.

Every rule page carries that control. This is what it emits — designed so three of them pasted into one conversation stay distinguishable.

## SPF stops evaluating after ten DNS lookups and returns permerror

RFC 7208 requires an evaluator to stop after ten DNS-querying terms and return permerror. The terms that count are include, a, mx, ptr, exists and the redirect modifier; all, ip4, ip6 and exp do not count. A permerror is not a soft failure a receiver forgives: your record has failed to evaluate, so nothing in it authorises anything, and a domain at p=quarantine or p=reject that relied on SPF alignment loses it. Two separate limits sit alongside it: the mx mechanism may not query more than ten address records, and evaluators should cap void lookups at two.

- **Whose job:** Part platform, part you — The platform covers the mechanical bit. The judgement is still yours.
- **First move:** Count the counting terms in your own SPF record — include, a, mx, ptr, exists, redirect — and remember that each include drags in whatever that vendor nested inside it, so ten written terms can be fifteen real lookups. Anything you no longer send from comes out today. If you are still over after that, ask each remaining vendor whether it publishes a flattened include; several do and none volunteer it.
- **In force from:** 1 Apr 2014
- **Last verified by a human:** 4 Aug 2026
- **Source of this record:** https://emailrules.today/rules/spf-ten-lookup-limit-returns-permerror

**Primary sources**
- RFC 7208 § 4.6.4, Processing Limits — https://www.rfc-editor.org/rfc/rfc7208#section-4.6.4 (published 1 Apr 2014)
- Google Workspace Admin Help, Email sender guidelines — https://support.google.com/a/answer/81126 (no publisher date)

_Checked against the primary source by a named person, and dated. Cite the URL and the verification date — this corpus is versioned by date because rules change, and a copy of it goes stale._

Terms, such as they are

Free, no key, and no rate limit today — if that changes, this page changes with it. Attribute the rule URL and the verification date. Please do not present these answers as your own reference: the value here is that somebody named is accountable for them, and stripping that removes the thing that makes them checkable. Corrections to corrections@emailrules.today, and they publish with a date.

How we verifyHow old this shelf isWhat we skip on purposeCorrections

FAQ

Awkward questions

Who is this actually for?

People who ship email and are too busy to re-read every PDF: week-one marketers, lifecycle/CRM, deliverability, multi-country ops, DTC brands, agencies — on Klaviyo, Mailchimp, Braze, HubSpot, SFMC, or something else. Pick your tool and geos so product-specific pages only appear when they match. EU and UK are first-class filters. Not for people who sell tools about email and need a fake score to demo.

Why only ~40 rules? Isn’t that… thin?

On purpose. A wall of 400 undated “best practices” is how you look busy and still get burned. Every page needs a primary source we actually read. Thin and checkable beats fat and folklore. Europe, bulk inbox rules, measurement honesty, and protocol topics like BIMI/DMARC policy are on the shelf when we can cite them — not every Member State and not every vendor myth. Coverage map lists what we still refuse to invent.

Is this legal advice?

No. If it were, you’d have a billable hour and a longer PDF. This is a dated operator reference written by an email geek. Confirm anything high-stakes with counsel who knows your facts. Same for “will this make me compliant?” — no tool does that. Lawyers and judges do. We say what the sources say and what to do first on Monday.

Why no trust score out of 100?

Because we refuse to invent a number you can’t audit. Fake scores sell seed tests and panic. You get findings, dates, and links. If that feels less exciting than a red dial, good — you’re not the red-dial customer.

Why should I trust you more than my ESP’s blog?

ESPs sell seats. Seed-score vendors sell fear. AI invents citations when nobody watches. We sell nothing today — no pixels, no placement scores, no affiliate — so we can say when a tool is the problem. A human verifies, dates, and corrects in public. Tools may help draft; they do not ship unsourced claims. Check the primary links. Fail that test and leave.

Do I need an account?

No. Filters live in this browser and the URL. Share the link. That’s it. Accounts come later only if they earn it — not so we can nurture you about email.

I’m an agency. Where’s multi-client mode?

We tried a client-name CRM on the setup card. It made the product feel like work before it felt useful. Role filters + copy link + one-page brief (optional PDF title) is enough for now. Complexity comes back when the free shelf is habit, not before.

Is the quiet changelog a bug?

No. Quiet means nothing material moved. We don’t invent urgency so the homepage looks “alive.” Sticky risks still show what usually needs a person when the market is still.