There are quite a few options, in case you have a service bus to your disposal it mostly comes with a pop3 adapter.
Or you can use a pop3 api (easymail from quiksoft is quite a good one).
It also has a great product for processing bounces.
To read all the SMTP messages. If you own the mailserver, depending on the type of server there other ways to get to the messages, sometimes custom Apis and plugins, or the filesystem. Do you host your own mail server?
Which mailserver do you use?
If possible I would not choose for the POP protocol, it has some limitations amongst other things like only having one folder, "getting/reading" a message removes the message from the folder (which means one process to read the messages) and other things. Depending on how many mails you need to parse it might still work for you. IMAP would already be an improvement.
With the quiksoft IMAP component:
//create a new IMAP4 object, connect
//to a IMAP4 server and login
IMAP4 imap = new IMAP4();
imap.Connect("mail.yourdomain.com");
imap.Login("mailbox", "password");
//select the inbox and download the envelopes
imap.SelectMailbox("Inbox");
EnvelopeCollection imapEnvelopes;
imapEnvelopes = imap.GetEnvelopes();
//loop through each message
//and output the subject
foreach (Envelope imapEnvelope in imapEnvelopes)
{
//write the subject out to the console
Console.WriteLine(imapEnvelope.Subject);
}
//close resources
imap.Logout();