Add 1.8 history.
Read -p isn't portable it seems.

I don't know whether the '?' form is either, but it does have the virtue of
working on OpenBSD, which is where the releases are built. Perhaps there is a
portable incantation lurking out there somewhere...
Do more battle with the poll interface.

This fixes an annoying edge case, where input files larger than the buffer size,
but where a socket is disconnected and poll signals POLLHUP which means that
write is never executed (and the problem was thus never noticed). This did not
prevent mails being sent, but it did lead to extsmaild consuming too much CPU
until a socket was reconnected.
Fix assertion.
Make all the error messages consistent.