Strictly speaking, this doesn't really need Email::Simple objects. It just needs an object that responds to the same API. At the time of writing the list of classes with the Email::Simple API comprises just Email::Simple.

Due to how it's implemented, its API is an exact clone of Mail::Thread. Please see that module's documentation for API details. Just mentally substitute Email::Thread everywhere you see Mail::Thread and Email::Thread::Container where you see Mail::Thread::Container.