IMAP se naučil rozdělit schránku na dávky. Nové RFC míří na schránky se statisíci zpráv
Klient, který chce projít schránku se sto tisíci zprávami, si dosud musel rozsahy vymýšlet sám. Rozšíření UIDBATCHES z července 2026 nechá tuhle práci na serveru: klient řekne, jak velké dávky chce, a dostane hotové rozsahy. Od prvního návrhu k normě to trvalo dvacet měsíců a pracovní skupina za tu dobu vydala dvaadvacet revizí textu.

V červenci 2026 vyšlo RFC 10022, rozšíření protokolu IMAP nazvané UIDBATCHES. Řeší úlohu, která zní banálně, dokud ji člověk nemusí naprogramovat: jak projít schránku, ve které je zpráv tolik, že se nedají zpracovat najednou.
Dokument je na standardizační cestě (Standards Track) a editorem je D. Eggert. Rozšíření funguje s IMAP4rev1 (RFC 3501) i s novějším IMAP4rev2 (RFC 9051).
Klient řekne velikost dávky, server vrátí rozsahy
Každá zpráva má ve schránce jednoznačné číslo, takzvané UID. Klient dosud musel rozsahy těch čísel odhadovat sám – a špatný odhad znamená buď dotaz, na který server odpoví neúnosně velkou dávkou, nebo zbytečně mnoho drobných dotazů.
UIDBATCHES to obrací. Klient pošle jediný příkaz s velikostí dávky a server mu vrátí hotové rozsahy UID, které schránku rozdělí na stejně velké části. V příkladu z normy má schránka 6 823 zpráv a klient si řekne o dávky po dvou tisících:
C: A143 UIDBATCHES 2000
S: * UIDBATCHES (TAG "A143") 215295:99696,99695:20358,…
Rozsahy chodí sestupně, takže první dávka obsahuje nejnovější zprávy. Kdo chce jen část, přidá rozsah dávek – UIDBATCHES 2000 10:20 vrátí desátou až dvacátou. Pořadí musí být vzestupné; na 4:1 odpoví server chybou BAD s kódem CLIENTBUG.
Proč to nešlo dřív
Klient měl vedle UID k dispozici i pořadová čísla zpráv, ze kterých se dávky sestavovaly snadno. Jenže režim UIDONLY zavedený v RFC 9586 pořadová čísla klientovi odepírá – a právě tam podle abstraktu normy UIDBATCHES pomáhá nejvíc. Bez pořadových čísel totiž klient nemá z čeho dávky poskládat.
Norma počítá s tím, že server to stojí práci
Spočítat rozdělení schránky není zadarmo, a text to říká otevřeně. Klient proto nesmí příkaz opakovat, kdykoli se mu zachce: jen po výběru schránky, po smazání víc než poloviny dávky zpráv a po příchodu stejného množství nových. Server smí ostatní pokusy odmítnout odpovědí NO s kódem LIMIT.
Podobně je omezený rozsah: klient nesmí najednou žádat o víc než 100 000 zpráv, jinak dostane NO s kódem TOOMANY. Opačným směrem norma serveru ukládá, že rozsahy pro 100 000 zpráv zvládnout musí.
Zajímavá je i úleva, kterou dostal server: velikost dávek nemusí sedět úplně přesně. Když ve schránce chybí kus číselné řady, smí vrátit rozsah zaokrouhlený tak, aby se mu počítal snáz. Poslední dávku má přitom ukončit jedničkou – tím dá klientovi jednoznačně najevo, že dál už nic není.
Kde se potká s dalšími rozšířeními
IMAP má rozšíření celou řadu a norma řeší, jak si s nimi UIDBATCHES nepřekáží. U rozšíření MESSAGELIMIT z RFC 9738 (březen 2025), kterým server ohlásí, kolik zpráv zvládne zpracovat jedním příkazem, má klient žádat dávky nanejvýš té velikosti. Menší si zvolit smí.
Norma zároveň radí, co dělat u opravdu velké schránky: server smí na žádost o všechny dávky odpovědět NO [TOOMANY], když je zpráv přes 100 000. Klient počet zpráv ve schránce zná, takže si má rovnou říkat o rozsahy dávek místo o všechny naráz.
Dvacet měsíců a dvaadvacátá revize
Podle soupisu všech návrhů IETF vznikl první text jako osobní návrh draft-eggert-uidbatches-00 3. listopadu 2024. Pak ho převzala pracovní skupina mailmaint a dokument dostal jméno draft-ietf-mailmaint-imap-uidbatches; revize číslo 22 ze 17. února 2026 už čekala ve frontě u redakce RFC.
Naše hodnocení: na rozšíření o jediném příkazu je to hodně kol. Ukazuje to, kolik okrajových případů se u protokolu starého přes třicet let musí dořešit – od prázdné schránky přes souběh s jinými rozšířeními až po to, co má server dělat, když si klient řekne o dávky, které neexistují.
Zdroje
- RFC 10022 — IMAP UIDBATCHES Extension, červenec 2026, Standards Track
- IETF: soupis všech Internet-Drafts a RFC – záznamy draft-eggert-uidbatches-00 (3. 11. 2024) a draft-ietf-mailmaint-imap-uidbatches-22 (17. 2. 2026)
- RFC 9586 — IMAP UIDONLY Extension, režim, ve kterém klient nemá pořadová čísla
Čísla, kódy odpovědí i příklad pocházejí z textu normy; datum prvního návrhu a počet verzí ze soupisu IETF, ne z RFC.