C# 在根目录父目录中找到多个邮箱?

C# 在根目录父目录中找到多个邮箱?,c#,outlook,office-interop,C#,Outlook,Office Interop,我有一个小宠物项目要做。我们有三个邮箱,当我们收到新邮件时,其中两个邮箱需要通知我们。我想为此制作一个程序(主要是为了学习经验),并深入微软的互操作库 我们需要通知的两个邮箱,我首先需要定位这些邮箱,然后我可以分配事件侦听器等,但我不知道如何实现这一点 要查找根,我执行以下操作: outlookNameSpace = outlookApplication.GetNamespace("MAPI"); 然后我可以开始拖出文件夹并将它们分配给变量,如下所示: supportInbox = outlo

我有一个小宠物项目要做。我们有三个邮箱,当我们收到新邮件时,其中两个邮箱需要通知我们。我想为此制作一个程序(主要是为了学习经验),并深入微软的互操作库

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

要查找根,我执行以下操作:

outlookNameSpace = outlookApplication.GetNamespace("MAPI");
然后我可以开始拖出文件夹并将它们分配给变量,如下所示:

supportInbox = outlookNameSpace.Folders["Omitted"].Folders["Inbox"];
pensionInbox = outlookNameSpace.Folders["Omitted"].Folders["Inbox"];
但是代码说它找不到具有名称的文件夹(为了隐私起见,我用“省略”替换了这些文件夹)


我做错了什么?

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

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

如何:从文件夹路径获取文件夹对象


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

我给尝试编程Outlook的人的第一个建议是安装OutlookSpy,它为您提供了各种有趣的信息。@RenniePet我很乐意这样做,但是我不允许在计算机上安装任何东西(仅执行)。它只是简单地拒绝安装:P