Settings › Security › Hardening puts a switch on each of the three
protocols' rows, beside its ports and a count of the accounts that
used it in the last 30 days. Turning one off asks first, naming who
used it lately and the ports that close; turning one back on is one
click. The kill-all stays as "Turn off all legacy protocols…" with the
full statement and the typed phrase, and the status card says which
are off when only some are ("POP3 is off on this server. Mail apps can
still use IMAP and ManageSieve, and send."), with "Turn them all back
on". A listener that failed to reopen is retried by turning its
protocol on again.
Each tenant's page gets the same three switches (no ports: a tenant's
switch closes none). A server administrator sees a protocol that is
off server-wide as such, its switch disabled; inside a tenant the
server refuses it and the toast says which protocol.
Reads the per-protocol properties from inbuxa-server's
feature/per-protocol-switches; from an older server, legacyProtocols
stands for all three, so the page keeps working.
Tested: unit tests (reading each switch and an older server's one,
per-row ports while off and on, one protocol's recent users);
typecheck and lint; and in headless Chrome against a local server on
that branch: POP3 off through its dialog, the page reading "POP3 is off
on this server" with its port closed, and back on; ManageSieve off and
on for a tenant.