在root父级找到多个邮箱?

时间:2014-12-12 14:39:44

标签: c# outlook office-interop

我有一个小宠物项目的工作。当我们收到新的电子邮件时,我们有三个邮箱,其中有两个我们需要告诉他们。我想为此制作一个程序(主要是为了学习体验)并潜入微软的Interop库。

我们需要通知的两个邮箱,我首先需要找到这些邮箱,然后我可以分配事件监听器等内容。但我不知道如何实现这一点。

要找到根,我这样做:

outlookNameSpace = outlookApplication.GetNamespace("MAPI");

然后我可以开始拖出文件夹并将它们分配给变量,如:

supportInbox = outlookNameSpace.Folders["Omitted"].Folders["Inbox"];
pensionInbox = outlookNameSpace.Folders["Omitted"].Folders["Inbox"];

但是代码说它找不到带有名字的文件夹(我用&#34代替;省略"只是为了隐私)。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果要访问多个邮箱,则必须首先确保它们都已加载到当前的Outlook配置文件中。否则,您需要确保当前登录的用户具有您要访问的邮箱的委派访问权限,并使用NameSpace.GetSharedDefaultFolder方法打开其收件箱。但是,您只能访问带有委托方案的收件箱。

否则,要获取当前配置文件中特定邮箱的特定文件夹,可以尝试以下方法:

如何:从文件夹路径获取文件夹对象 http://msdn.microsoft.com/en-us/library/ff868990(v=office.15).aspx

您可能还需要遍历NameSpace.Stores以获取邮箱的特定Store对象,并通过Store.GetRootFolder或Store.GetDefaultFolder访问文件夹。