【发布时间】:2018-10-12 12:46:34
【问题描述】:
我正在尝试使用 Microsoft Office Interops 列出所有文件夹(以便稍后从一个特定文件夹中获取消息)。
如果我在 storeIdx 设置为 1(这是我的个人邮箱)的情况下运行此代码,效果很好,但如果我尝试在 storeIdx 2(我也使用的共享邮箱)上运行此代码,它绝对返回什么都没有:
private void ProcessMail()
{
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
_NameSpace ns = app.GetNamespace("MAPI");
int storeIdx = 2;
MAPIFolder inbox = ns.Stores[storeIdx].GetDefaultFolder(OlDefaultFolders.olFolderInbox);
Console.WriteLine("Getting folders from mailbox: " + ns.Stores[storeIdx].DisplayName + " in folder " + inbox.Name +"\r\n");
Console.WriteLine("FOLDERS:\r\n");
foreach (MAPIFolder f in inbox.Folders)
{
Console.WriteLine(f.Name + " (" + f.FullFolderPath + ")");
}
}
在阅读各种网站(MSDN 等)后,我尝试了几种不同的方法,但它根本不会显示共享邮箱收件箱中的任何子文件夹。在 Outlook 中,我可以很好地查看它们并使用它们。
邮箱都在同一个 Exchange 服务器上。
任何帮助将不胜感激。
【问题讨论】:
标签: c# outlook office-interop