使用VSTO从Outlook 2013访问第二个交换收件箱

时间:2014-02-17 17:02:47

标签: c# outlook vsto outlook-addin

获取默认收件箱的方式如下:

_outlookNameSpace = this.Application.GetNamespace("MAPI");
_inbox = _outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);

现在在同一行,如何让其他交易所帐户的收件箱说“abc@corp.com”?

提前致谢。

2 个答案:

答案 0 :(得分:0)

假设第二个邮箱已经在配置文件中,您需要在Namespace.Stores集合中找到相应的帐户并调用Store.GetDefaultFolder。

否则你可以调用Namespace.GetSharedDefaultFolder。

答案 1 :(得分:0)

我有类似的情况,第二个帐户由.DisplayName属性标识,可以在帐户设置中设置。要查找帐户,请使用:

var account = Globals.Addin.Application.GetNamespace("MAPI")
                .Accounts.Cast<Account>()
                .FirstOrDefault(a => a.DisplayName == "TargetDisplayName");

然后使用Account.DeliveryStore访问商店并找到该文件夹​​。 .GetDefaultFolder为您提供了文件夹:

DraftsFolder = (Folder) account.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderDrafts);