Kokeile sandboxissa → Jokainen päätepiste, painikkeella, joka suorittaa sen reaaliaikaista palvelua vasten. Mikään täällä ei vaadi avainta, joten tältä sivulta lähettämäsi pyyntö on todellinen: se varaa todellisen osoitteen ja se lasketaan mukaan.
Kierto
Kaksi pyyntöä ja yksi sähköposti. Kolmas kutsu tarvitaan vain siksi, että analyysi kestää muutaman sekunnin.
Varaa osoite
Lähetä POST-pyyntö inbox-päätepisteeseen. Saat osoitteen, joka hyväksyy täsmälleen yhden viestin ja vanhenee tunnissa, sekä tunnisteen, johon kaikki muu perustuu.
Lähetä oikea viesti siihen
Lähetä se SMTP:n kautta alustalta, joka lähettää kampanjan. Puolet tarkistuksista lukee lähetysalustan lisäämiä otsakkeita, joten käsin laadittu viesti mittaa väärää asiaa.
Kysy tilaa ja lue sitten raportti
Tilapäätepisteen vastaus on muutaman sadan tavun kokoinen ja kertoo, kannattaako koko raportti jo hakea. Itse raportti on useita tuhansia rivejä pitkä.
# 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"}} ] }
Todennus
Sitä ei ole. Ei pyydettävää avainta, asetettavaa otsaketta eikä luotavaa tiliä. Palautettu slug-tunniste toimii käyttöoikeutena: sen haltija voi lukea raportin, eivätkä muut voi arvata sitä.
Päätepisteet
Perusosoite https://email-spam-tester.com. Kaikki vastaukset ovat JSON-muodossa.
POST/api/v1/inbox
Varaa kertakäyttöisen osoitteen. Molemmat parametrit ovat valinnaisia.
| lang | Kieli, jolla korjaussuunnitelma ja tarkistuskohtaiset havainnot kirjoitetaan, ISO-koodina. Tämä päätetään nyt, koska viesti saapuu SMTP:n kautta minuutteja myöhemmin eikä sisällä tietoa siitä, kuka sitä odottaa. Tuntemattoman koodin tapauksessa käytetään englantia. |
| utm_source, utm_medium, utm_campaign | Välitetään analytiikkaamme. Hyödyllinen, jos mittaat omaa integraatiotasi. |
GET/api/v1/tests/{slug}/status
Kevyt pollata. Palauttaa kaksi tilakenttää ja tarkistusten etenemisen, eikä mitään muuta.
GET/api/v1/tests/{slug}
Koko raportti. Palauttaa 202, kun osoite on varattu eikä mitään ole vielä saapunut, ja 200, kun viesti on saapunut.
GET/api/v1/tests/{slug}/message
Viesti täsmälleen toimitetussa muodossa: kaikki otsakkeet siirtojärjestyksessä, molemmat viestirungot, liiteluettelo ja raakalähde. Haetaan erikseen, koska raporttia pollataan ja tämän koko voi nousta megatavuun.
PUT/api/v1/tests/{slug}/locale
Vaihtaa sellaisen varauksen kielen, jota ei ole vielä käytetty. Tarkoitettu agentille, joka saa tietää käyttäjänsä lukeman kielen vasta pyydettyään jo osoitetta. Pyyntö hylätään viestin saavuttua, koska analyysi on silloin jo käynnissä.
GET/api/health
Toimivuustarkistus. Ei todennusta, ei sivuvaikutuksia.
Raportin lukeminen
Vastauksen sisältävät kentät siinä järjestyksessä, jossa todennäköisesti haluat ne.
| score_ours | 0–100. Oma mallimme. Todennuksella ja infrastruktuurilla on suurin paino, koska ne ratkaisevat toimituksen ennen kuin suodatin lukee sanaakaan viestin tekstistä. |
| score_compat | 0–10. Toistaa SpamAssassin-tyylisen luvun, johon ihmiset jo vertaavat tuloksia, jotta raporttia voi verrata muualla nähtyihin tuloksiin. |
| subscores | Sama asteikko 0–100 osiota kohden: auth, infra_spam, content, compliance. |
| checks[] | Kaikki 41, jokaisessa tila, yhden rivin havainto, päätöksen perustana ollut näyttö ja vaikutus kumpaankin pistemäärään. |
| checks[].citations | Mistä havainto on peräisin: RFC:n kohta sanatarkasti lainattuna ja sivu, jolla Google ilmoittaa oman vaatimuksensa. Koottu käsin eikä generoitu, joten niihin voi luottaa. |
| korjaukset[] | Mitä muuttaa, missä järjestyksessä ja kuinka monta pistettä kustakin muutoksesta saa. Parannukset lasketaan pisteyttämällä raportti uudelleen, niitä ei arvioida. |
| valmis | Epätosi, kun tarkistusta ei voitu suorittaa. Tarkistamaton kohde ei koskaan ole hyväksytty, joten pidä pisteytystä optimistisena, kunnes arvo on tosi. |
| raportin_url | Ihmisen luettavissa oleva sivu. Anna se henkilölle JSON-tekstiseinän sijaan. |
Tilat
Tarkistuksella on yksi viidestä tilasta, ja kahden niistä välinen ero on merkityksellisempi kuin miltä näyttää.
| hyväksytty | Tarkistus suoritettiin, eikä siinä havaittu ongelmia. |
| varoitus | Kannattaa korjata. Vähentää pisteitä. |
| hylätty | Heikentää toimitettavuutta. Maksaa enemmän pisteitä. |
| ohitettu | Ei soveltunut. Ei tarkistettavia liitteitä eikä arvioitavaa HTML-osaa. Ei tarkoita läpäisyä. |
| virhe | Emme pystyneet selvittämään tulosta. Se jätetään pisteytyksen ulkopuolelle ja merkitään, eikä sitä lasketa läpäisyksi. |
analysis_status voi olla received, analyzing, checks_ready tai failed. ai_status voi olla pending, running, ready, fallback tai error. Deterministinen raportti on lopullinen tilassa checks_ready; ai_status lisää vain suunnitelman.
Mitä voidaan palauttaa
| 202 | Osoite on varattu, eikä viestiä ole saapunut. Runko sisältää osoitteen, vanhenemisajan ja kielen, joten kutsuja, joka ei luonut varausta, voi silti näyttää sen. |
| 404 | Tällaista tunnistetta ei ole. Sitä ei ole koskaan ollut, tai varaus unohdettiin. |
| 410 | Osoite vanheni ennen viestin saapumista. |
| 409 | Yritit vaihtaa kieltä sen jälkeen, kun viesti oli jo saapunut. |
| 429 | Osoitteesi ilmaisten testien raja. Tässä palvelussa ei tällä hetkellä ole henkilökohtaista rajaa; jos sellainen joskus asetetaan, runko kertoo, milloin se nollautuu. |
Neljä tietämisen arvoista asiaa
Yksi viesti osoitetta kohden
Toinen viesti hylätään. Aiempi raporttisi säilyy muuttumattomana, mikä on tarkoituskin.
Tunti aikaa käyttää sitä
Osoite vanhenee, mutta raportti ei. Raporttilinkit ovat pysyviä, joten tukipyyntöön liitetty linkki toimii jatkossakin.
Lähetä alustalta
Kampanjan testaaminen henkilökohtaiselta tililtä mittaa kyseistä tiliä. Lähes kaikki todennusosiossa koskee lähetysinfrastruktuuria, ei tekstiä.
Testaa uudelleen korjauksen jälkeen
Odotetut parannukset lasketaan yksi korjaus kerrallaan, eivätkä ne summaudu. Toinen raportti antaa rehellisen luvun.
Koneille
- /api/openapi.json OpenAPI-kuvaus, joka luodaan samasta APIa palvelevasta koodista.
- /llms.txt, /llms-full.txt Lyhyt kartta tästä sivustosta kielimalleille llms.txt-käytännön mukaisesti sekä pidempi versio, jossa koko kierros ja raportin kentät ovat yhdessä tiedostossa.
- /mcp MCP-palvelin, jolla on sama toiminnallisuus ja estävä odotus, mikä on parempi kuin kysely mallin sisältä.
- For agents Agenttisivu: milloin tätä kannattaa käyttää, miten ohitettua tarkistusta tulkitaan suhteessa läpäistyyn tarkistukseen ja mitkä havainnot ovat DNS-tietueita, jotka henkilön on muutettava, eivätkä tekstiä, jota agentti voi muokata.
Kokeile ensin yhtä käsin
Se kestää noin minuutin ja näyttää täsmälleen, mitä JSON kuvaa.