Quarantine review: HELO, grouping, multi-select, allow/block from the queue
Control Panel Quarantine is select-one, then toolbar Release or Delete. That is fine for a handful of holds. It does not scale when one ESP or one HELO dumps a batch.
Related: domain white/black in #285. SoftFail scoring in #286 changes what lands in this queue.
Store
Persist HELO/EHLO hostname on each held item at hold time (SMTP session). Without that, grouping by HELO is guesswork.
Control Panel (Deck parity)
Keep Remove expired, Refresh, Digest settings in the page toolbar.
On the grid:
- Header: unlabeled select all, then four icons that act on every checked row: Release, Delete, Whitelist, Blacklist.
- Group by Sender domain / HELO domain / None. A group is a foldable row with its own checkbox and the same four icons (apply to every child). Children keep their own checkbox and icons.
- Columns: Held, HELO, Sender, Recipients, Score, Subject. Reason stays a tooltip if it does not earn a column.
- Header sort stays (already on the WPF grid). Grouping is not sorting.
- Long Sender/HELO: ellipsis in the cell, tooltip is the full value.
- Several Recipients: first address + “+ n more”, tooltip lists all.
- Message rows only: icon before HELO opens headers; icon before Subject opens a preview flyout. If those columns plus preview are still not enough, release it — same rule as today.
- Delete (row, group, or selected) still gets one Yes/No, default No. The sender was told 250.
What the four icons do
| Icon | Message | Group / selected |
|---|---|---|
| Green check | Release to the recipients | Release those rows |
| Red X | Delete | Delete those rows |
| White list, green lines | Whitelist that sender (or sender domain — operator choice or follow #285) then release | Same for each distinct sender/domain in the set |
| Dark list, red lines | Blacklist then delete | Same |
Whitelist/blacklist should write the same lists #285 already owns, not a third table.
A static HTML mock of this Control Panel proposal is attached (quarantine-admin-grouped-mock.html). Sample addresses only.