...everything else is a nail :-).
Quick suggestion regarding delivery. I would like to remove the different delivery MDB implementations and replace them with a single DeliveryMDB. Remote, Local, MailingList and WhateverElse delivery would be handled by MailListener chains. We would configure an number of different DeliveryMDBs instances each with associated to a queue and the appropriate chain.
Basically moving the functionality of the MDBs into MailListeners, increasing reuse..etc..etc. Also allows us to place relevant actions within the appropriate chains (e.g. SPAM filtering on the local delivery chain).
Excellent! i would also like mail listener chains processing the initial input stream, etc. There should be multiple points in which you can plug in chains.