This seems a little "odd" in the code:
I can't help thinking that defaulting to reading STDIN under some circumatances could cause unexpected blocking.
What's wrong with writing a little loop and CORE::rename? Does it really necessitate a module?
Isn't this just more or less the same thing as Tie::Cycle?
I'm struggling to understand why that namespace was chosen, and what's wrong with Net::SMTP instead. Did I miss something here? (It is possible).
Code could still be tidied up a little bit more. Always room for improvement, but a very useful tool to have around.