【问题标题】:Accessing 2nd exchange inbox from Outlook 2013 using VSTO使用 VSTO 从 Outlook 2013 访问第二个交换收件箱
【发布时间】:2015-03-14 05:59:50
【问题描述】:
获取默认收件箱的工作方式如下:
_outlookNameSpace = this.Application.GetNamespace("MAPI");
_inbox = _outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
现在在同一行中,如何让另一个交换帐户的收件箱说“abc@corp.com”?
提前致谢。
【问题讨论】:
标签:
c#
outlook
vsto
outlook-addin
【解决方案1】:
假设第二个邮箱已经在配置文件中,您需要在 Namespace.Stores 集合中找到相应的帐户并调用 Store.GetDefaultFolder。
否则你可以调用 Namespace.GetSharedDefaultFolder。
【解决方案2】:
我有类似的情况,第二个帐户由其 .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);