gpt4 book ai didi

c# - 为什么我不能使用 interop outlook 检索所有 MailItems?

转载 作者:太空狗 更新时间:2023-10-30 00:52:20 25 4
gpt4 key购买 nike

我正在尝试使用 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();
}
}

当我这样做时,它起作用了——有点。它只显示一封电子邮件。应该是三个。它显示的电子邮件是其中最旧的电子邮件......为什么我不能同时获得所有三个?除了 MailItem 之外,我的收件箱中是否还有其他类型的邮件?

最佳答案

我遇到了同样的问题 - 我的解决方法只是创建一个 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
}

关于c# - 为什么我不能使用 interop outlook 检索所有 MailItems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com