in reply to Modules to check new mails

Personally, I've grown fond of decoupling the storing of arriving mail and actions upon mail. I use IMAP stores to store mail and use Net::IMAP::Client to process the mails after having received them. This means that I cannot immediately reject spam but have to temporarily store it.

If you want to process mail immediately after it receives, also look into Mail::Action, which provides a framework for actions triggered by arriving mail and some documentation on how to set up your mail server to use it.