base64 gives 3 octets for 4 characters of input. There is no requirement that mail input needs to be in units of four, and in fact I have inputs where there are two residual in one line, and the final two on the next. hypermail invokes base64Decode per line, and this results in a corrupted decode.
I'm going to look at a struct to hold the decode state, so the decoder can be called with this as an argument and thus have stateful continuity from line to line.