我正尝试使用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服务器上。
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以像这样获得所有文件夹:
"RawMatrixData": "[[1,2,3,4],[5,6,7,8]]"
GetSubFolders:
ArrayList<ArrayList<String>> myList = new ArrayList<ArrayList<String>>();
myList = [[1,2,3,4],[5,6,7,8]];//it must be list not string
答案 1 :(得分:0)
我认为GetNamespace obj的集合Stores表示当前配置文件(当前会话)中可用的所有商店。您可以使用NameSpace.GetSharedDefaultFolder获取共享邮箱。