我想使用 Microsoft.Office.Interop.Outlook 从我的 Outlook 收件箱中检索电子邮件。这是我的代码︰
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();
}
}
当我这样做时,它工作-排序。它只显示一封电子邮件。应该有 3 个。报告显示,在那里......,我为什么不能能够得到所有三个历史最悠久之一的电子邮件吗?有一些其他类型的邮件会在我的收件箱中的邮件项目除了吗?
我有同样的确切问题 — — 我的解决办法是只是为了创建 List<MailItem>
和循环的。 请确保在子文件夹中的电子邮件虽然,否则他们不会被发现不是。
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace outlookNs = app.GetNamespace("MAPI");
Outlook.MAPIFolder emailFolder = outlookNs.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
List<MailItem> ReceivedEmail = new List<MailItem>();
foreach (Outlook.MailItem mail in emailFolder.Items)
{ ReceivedEmail.Add(mail); }
foreach (MailItem mail in ReceivedEmail)
{
//do stuff
}