Unlike IMAP, pop3 server doesn't keep track for message status (read/unread) so you cannot just fetch all unready message from the server. Once you are done with processing, delete the mail or keep track of the message guids to exclude in the next batch.
In this program, I am fetching all messages into an array and then sort them based on sent date. All attachments are saved to the file system and a handler is saved in the database.

The windows service that hosts this library has a timer which calls the StartMailBoxProcessor code on a user defined time intervals. This service is deployed to two servers with fail over capability.
download code
-paul