Email Spam Tester

API

Tři volání. Bez klíče, bez účtu, bez registrace.

Rezervujte adresu, odešlete zprávu, kterou jste se chystali poslat svému seznamu, a načtěte report. V JSON je vše, co zobrazuje stránka, včetně skóre, všech 41 kontrol s jejich důkazy a oddílu standardu, o který se každé zjištění opírá.

Prvních 100,000 reportů je zdarma, bez klíče a bez účtu. Pokud napojujete agenta, a ne skript, je server MCP vhodnější než pravidelné dotazování.

Vyzkoušet v sandboxu → Každý endpoint obsahuje tlačítko, které ho spustí proti živé službě. Nic zde nevyžaduje klíč, takže požadavek, který z této stránky odešlete, je skutečný: rezervuje skutečnou adresu a započítává se.

Postup

Dva požadavky a jeden e-mail. Třetí volání je potřeba jen proto, že analýza trvá několik sekund.

  1. Rezervujte adresu

    Odešlete POST na koncový bod schránky. Získáte adresu, která přijme právě jednu zprávu a vyprší za hodinu, a také slug, podle kterého se identifikuje vše ostatní.

  2. Odešlete na ni skutečnou zprávu

    Přes SMTP, z platformy, která bude kampaň odesílat. Polovina kontrol čte hlavičky přidané odesílací platformou, takže ručně vytvořená zpráva měří něco jiného.

  3. Dotazujte se na stav a pak načtěte report

    Koncový bod stavu má několik set bajtů a sdělí vám, zda už má smysl načíst úplný report. Samotný report má několik tisíc řádků.

# 1. reserve a single-use address
curl -sX POST 'https://email-spam-tester.com/api/v1/inbox?lang=en'

{
  "address": "test-<slug>@t.email-spam-tester.com",
  "slug": "<slug>",
  "expires_at": "2026-01-01T12:00:00Z"
}
# 2. send your message to that address, then poll
curl -s 'https://email-spam-tester.com/api/v1/tests/<slug>/status'

{
  "slug": "<slug>",
  "analysis_status": "checks_ready",
  "ai_status": "running",
  "checks_done": 39,
  "checks_total": 39
}
# 3. read the report once analysis_status is checks_ready
curl -s 'https://email-spam-tester.com/api/v1/tests/<slug>'

{
  "report_url": "https://email-spam-tester.com/t/<slug>",
  "score_ours": 86.4,
  "score_compat": 9.2,
  "subscores": {"auth": 100.0, "infra_spam": 78.1, "content": 92.0, "compliance": 75.0},
  "complete": true,
  "checks": [
    {
      "id": "auth.dmarc",
      "status": "warn",
      "title": "DMARC result",
      "summary": "DMARC passes, but the policy is p=none.",
      "weight_ours": -4.0,
      "evidence": {"policy": "none", "aligned": "dkim"},
      "citations": {"standards": [{"title": "RFC 9989 §4.7", "quote": "..."}]}
    }
  ],
  "fixes": [
    {"id": "dmarc-enforce", "gain_ours": 4.0, "gain_compat": 0.0,
     "fix": {"title": "Move DMARC to quarantine", "severity": "medium"}}
  ]
}

Ověřování

Žádné není. Není třeba žádat o klíč, nastavovat hlavičku ani vytvářet účet. Vrácený slug funguje jako přístupový údaj: kdokoli ho má, může daný report číst, a nikdo jiný ho nemůže uhodnout.

To také znamená, že se slug vyplatí chránit jako heslo. Report ukazuje předmět, odesílatele, adresu pro vrácené zprávy a úplný zdroj zprávy komukoli, kdo má odkaz.

Koncové body

Základní adresa https://email-spam-tester.com. Vše vrací JSON.

POST/api/v1/inbox

Rezervuje jednorázovou adresu. Oba parametry jsou volitelné.

langJazyk, ve kterém budou napsány plán oprav a zjištění jednotlivých kontrol, uvedený jako kód ISO. Určuje se nyní, protože zpráva dorazí přes SMTP o několik minut později a neobsahuje žádný údaj o tom, kdo na ni čeká. Neznámý kód použije jako náhradní jazyk angličtinu.
utm_source, utm_medium, utm_campaignPředávají se do naší analytiky. Užitečné, pokud měříte vlastní integraci.

GET/api/v1/tests/{slug}/status

Je nenáročný na pravidelné dotazování. Vrací pouze dvě stavová pole a informaci o průběhu kontrol, nic jiného.

Pravidelně se dotazujte na tento koncový bod, nikoli na report. analysis_status nejprve dosáhne hodnoty checks_ready a plán AI se objeví v ai_status přibližně o minutu později, takže volající, který chce pouze deterministické kontroly, nemusí na plán čekat.

GET/api/v1/tests/{slug}

Celý report. Vrací 202, dokud je adresa rezervovaná a zatím nic nedorazilo, a 200, jakmile něco dorazí.

GET/api/v1/tests/{slug}/message

Zpráva přesně tak, jak byla doručena: každá hlavička v pořadí přenosu, obě těla, seznam příloh a nezpracovaný zdroj. Načítá se samostatně, protože report se pravidelně načítá a tato data mohou mít až jeden megabajt.

Nezpracovaná zpráva se odstraní podle vlastního časovače, dříve než report. Poté tento endpoint odpoví důvodem namísto zdrojové zprávy.

PUT/api/v1/tests/{slug}/locale

Změní jazyk rezervace, která ještě nebyla použita. Pro agenta, který zjistí, v jakém jazyce jeho uživatel čte, až poté, co již požádal o adresu. Po přijetí zprávy je požadavek odmítnut, protože v té době již probíhá analýza.

GET/api/health

Kontrola dostupnosti. Bez ověřování, bez vedlejších účinků.

Čtení reportu

Pole, která obsahují odpověď, v pořadí, v jakém je pravděpodobně budete potřebovat.

score_ours0 až 100. Náš model. Ověřování a infrastruktura mají největší váhu, protože rozhodují o doručení dříve, než filtr přečte jediné slovo textu zprávy.
score_compat0 až 10. Reprodukuje číslo ve stylu SpamAssassin, které už lidé porovnávají, takže je report srovnatelný s tím, co někdo viděl jinde.
subscoresStejná škála od 0 do 100 pro každou sekci: auth, infra_spam, content, compliance.
checks[]Všech 41, každá se stavem, jednořádkovým zjištěním, podklady, podle nichž bylo rozhodnuto, a dopadem na obě skóre.
checks[].citationsOdkud zjištění pochází: část RFC citovaná doslovně a stránka, na které Google uvádí vlastní požadavek. Ručně sestavené, nikoli generované, takže se na ně lze spolehnout.
fixes[]Co změnit, v daném pořadí, včetně počtu bodů, které každá změna přinese. Přínosy se počítají opětovným vyhodnocením reportu, nejsou odhadované.
completeFalse, pokud kontrolu nebylo možné spustit. Nezkontrolovaná položka nikdy nemá stav pass, proto považujte skóre za optimistické, dokud nebude true.
report_urlStránka čitelná pro člověka. Předejte ji člověku místo stěny JSON.

Stavy

Kontrola má jeden z pěti stavů a rozdíl mezi dvěma z nich je důležitější, než se zdá.

passKontrola proběhla a nezjistila žádný problém.
warnStojí za opravu. Ubírá body.
failZhorší doručitelnost. Stojí více bodů.
přeskočenoNevztahovalo se. Žádné přílohy ke kontrole, žádná část HTML k vyhodnocení. Nejde o úspěšný výsledek.
chybaNepodařilo se nám to zjistit. Výsledek je vyloučen z bodového hodnocení a označen příznakem, namísto aby byl započítán jako úspěšný.

analysis_status nabývá hodnot received, analyzing, checks_ready, failed. ai_status nabývá hodnot pending, running, ready, fallback, error. Deterministický report je ve stavu checks_ready konečný; ai_status už pouze přidává plán.

Co může přijít v odpovědi

202Adresa je rezervována a žádná zpráva nedorazila. Tělo obsahuje adresu, dobu vypršení platnosti a jazyk, takže ji může zobrazit i volající, který rezervaci nevytvořil.
404Takový slug neexistuje. Buď nikdy neexistoval, nebo byla rezervace zapomenuta.
410Platnost adresy vypršela dříve, než dorazila zpráva.
409Pokusili jste se změnit jazyk poté, co již zpráva dorazila.
429Limit bezplatných testů pro vaši adresu. Tato služba nyní nemá žádný limit na osobu; pokud bude někdy nastaven, tělo uvádí, kdy se resetuje.

Čtyři důležité věci

Jedna zpráva na adresu

Druhá zpráva je odmítnuta. Váš předchozí report zůstane beze změny, což je smyslem tohoto omezení.

Hodina na použití

Adresa vyprší; report nikoli. Odkazy na report jsou trvalé, takže odkaz vložený do požadavku podpory zůstane funkční.

Odesílejte z platformy

Testování kampaně z osobního účtu měří tento účet. Téměř vše v části o ověřování se týká infrastruktury pro odesílání, nikoli textu.

Po opravě test zopakujte

Očekávaná zlepšení se počítají vždy pro jednu opravu a nesčítají se. Druhý report uvádí skutečné číslo.

Pro stroje

Nejprve jeden vyzkoušejte ručně

Zabere to asi minutu a ukáže vám přesně to, co popisuje JSON.

Získat testovací adresu