I'm trying to use Microsoft.Office.Interop.Outlook to retrieve emails from my Outlook inbox. This is my code:
Application app = new Application();
NameSpace ns = app.Session;
MAPIFolder inbox = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
Items items = inbox.Items;
foreach (Microsoft.Office.Interop.Outlook.MailItem mail in items)
{
if (mail as MailItem != null)
{
Console.WriteLine(mail.Subject.ToString());
Console.WriteLine(mail.Body.ToString());
Console.ReadKey();
}
}
When I do this, it works--sort of. It only shows one email. There should be three. The email it's showing is the oldest one in there... why wouldn't I be able to get all three? Is there some other type of mail besides MailItem that would be in my inbox?
I had this same exact problem - My workaround was just to create a
List<MailItem>
and loop through that. Make sure the emails aren't in subfolders though, otherwise they won't be found.