Přejít na dokumentaci
API

Test pravidla

Které z vašich nedávných zpráv by toto pravidlo zachytilo. Nic nemění.

POSTapi.openemail.uk/rules/{id}/test

Spustí skutečné volání proti vašemu pracovnímu prostoru, s vaším vlastním klíčem.

POST /rules/{id}/test

Které z vašich nedávných zpráv by toto pravidlo zachytilo. Nic nemění.

Příklad

Vyžaduje rules:read. Zkušební běh schránku čte a nic nezapisuje, takže to není operace pro rules:write. days má výchozí hodnotu 30 a sahá do 365, limit má výchozí 50 a sahá do 200, a threadIds testuje jmenovitě uvedená vlákna místo časového okna.

curl
curl -X POST "$OE/rules/rul_7f3a1c94e05d3862c1f0a44b/test" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "days": 30, "limit": 50 }'
Odpověď
{  "object": "rule_test",  "ruleId": "rul_7f3a1c94e05d3862c1f0a44b",  "scanned": 50,  "matched": 3,  "wouldApply": ["label:USER_RECEIPTS", "archive"],  "messages": [    {      "threadId": "thr_5d31c2a8…",      "from": "[email protected]",      "subject": "Your receipt",      "receivedAt": "2026-08-28T10:00:00.000Z"    }  ],  "warnings": [{ "code": "forward_unverified", "value": "[email protected]" }]}

Odpovídá na to tentýž engine, který běží na doručovací cestě. Je to jeden modul, záměrně čistý (žádná databáze, žádná síť), takže obrazovka nastavení, zkušební běh a SMTP handler se nemohou neshodnout na tom, jestli pravidlo odpovídá. Náhled napsaný dvakrát jsou dvě odpovědi na jednu otázku a ta, kterou člověk uvidí, je ta špatná.

Omezené už svou konstrukcí: nejvýš 200 zpráv za nejvýš rok. Běží to uvnitř Workeru s rozpočtem reálného času a neomezené procházení je požadavek, který v půlce umře a nic po něm nezbude.

Vypnuté pravidlo se dá otestovat. O to jde: napsat ho, otestovat a pak zapnout.

V warnings se ukáže pravidlo, které se sice rozparsuje, ale nebude se chovat, jak má. Nejčastěji narazíte na adresu pro přeposlání, kterou nikdo nepotvrdil. Varování test nikdy nezastaví: smyslem zkušebního běhu je ohlásit všechno nalezené v jednom průchodu, ne spadnout na první věci.

Žádné „pusť to na celou moji schránku“

POST /rules/{id}/run tu záměrně není a nebude. Zpětné uplatnění pravidla na celou schránku je neomezené, nevratné a nedá se vzít zpět (akce trash nad deseti lety pošty je jedno volání bez druhé šance) a zápisová cesta, kterou by musel použít, se slévá do uloženého vlákna, což by každou dotčenou zprávu jako vedlejší efekt úklidu vyhodilo na vrchol doručené pošty.

Tento endpoint je poctivá půlka toho požadavku: odpovídá na „co by tohle udělalo“, což je ta otázka, a zprávy, které jste doopravdy mysleli, si pak zařadíte přes PATCH /threads/{id}.