LMTP is SMTP without a mail queue. Used inside a private network, with trusted hosts, the throughput is controlled upstream by the MTA/MX servers.
There is no sudden burst requiring buffering - buffering is done upstream.
James ships a LMTP implementation that mostly reuses the SMTP stack.
Today it delivers emails directly in people mailboxes.
The mailet container allows a declarative, modular and extensible processing upon email reception and is one of James selling points. Sadly today LMTP users cannot leverage its power...
Write a `DataLineMessageHookHandler` that given an incoming LMTP transaction executes the mailet container.
Write a handler chain mirroring the default one, replacing the classical `DataLineMessageHookHandler` with the one executing the mailet container.
Write a unit test showing that upon an incoming LMTP transaction the mail is executed by a mock of the Mailet Container.
Finally write documentation concerning the handler chain.