这就是问题:
我在Interop.Outlook
库中使用C#。我可以转到电子邮件所在的共享文件夹,我需要扫描该共享文件夹并获取值以输入到分隔的文本文件中,然后再将其传输到电子表格中。
但是,当前程序仅扫描父级共享收件箱文件夹中的电子邮件。我需要的大多数电子邮件都在此文件夹中,但是收件箱中有一些子文件夹需要扫描,这是我目前无法访问的子文件夹。
这是当前代码:
using Microsoft.Office.Interop;
Outlook.Application app = new Outlook.Application();
Outlook._NameSpace nSpace = app.GetNamespace("MAPI");
Outlook.Recipient recip = nSpace.CreateRecipient("sharedFolderName");
recip.Resolve();
Outlook.MAPIFolder theParent =
nSpace.GetSharedDefaultFolder(recip, OlDefaultFolders.olFolderInbox).Parent;
Outlook.MAPIFolder shared =
nSpace.GetSharedDefaultFolder(recip, OlDefaultFolders.olFolderInbox);
Outlook.MAPIFolder subFolder =
theParent.Folders["Inbox"].Folders["FolderNameINeedToScan"];
我认为我的问题出在最后一行,我尝试删除了第二行,.Folders
但这只是获得了父收件箱。返回的当前错误是“找不到对象”。我要查找的文件夹确实存在。
如何进入Outlook中的子文件夹?
您无法获取由GetSharedDefaultFolder获得的委托文件夹的子文件夹或父文件夹。您需要让该用户在所需的Exchange邮箱上授予“完全邮箱”访问权限,然后将该邮箱添加到当前的Outlook配置文件中。然后,该邮箱中的所有文件夹都将在NameSpace.Stores集合中可用。
如果无法将另一个邮箱添加到Outlook配置文件,则可以使用“兑换”登录到该邮箱并在Outlook打开时访问文件夹。否则,可以在Outlook关闭后使用NameSpace.Logon登录到特定的邮箱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句