ExtraDotInputStream does skip the first char of a line if the previous line is empty which cause RetrCmdHandler to send back incorrect data to the client
This is causing the first character of email body to be consumed.
If I quick and dirty replace with
session.writeStream( in );
It then works OK.
To test I simply send a plain text email with body ABCD, and what I receive