VSTO Outlook开发:如何获取Outlook默认显示的默认文件夹列表
在Outlook VSTO加载项中获取默认文件夹列表的方法
要获取Outlook默认展示的核心文件夹(收件箱、发件箱等),直接利用Outlook对象模型的Namespace.GetDefaultFolder方法即可,该方法通过指定OlDefaultFolders枚举值定位对应文件夹。
常用默认文件夹对应的枚举值
OlDefaultFolders.olFolderInbox:收件箱(Inbox)OlDefaultFolders.olFolderOutbox:发件箱(Outbox)OlDefaultFolders.olFolderSentMail:已发送邮件(Sent Items)OlDefaultFolders.olFolderDeletedItems:已删除邮件(Deleted Items)OlDefaultFolders.olFolderDrafts:草稿箱(Drafts)OlDefaultFolders.olFolderJunk:垃圾邮件(Junk E-Mail)
C#代码示例
using Outlook = Microsoft.Office.Interop.Outlook; using System.Diagnostics; namespace OutlookAddInDemo { public class DefaultFoldersHelper { public void GetDefaultOutlookFolders() { // 获取当前加载项关联的Outlook应用实例 Outlook.Application outlookApp = Globals.ThisAddIn.Application; // 获取MAPI命名空间 Outlook.NameSpace mapiNamespace = outlookApp.GetNamespace("MAPI"); // 逐个获取默认文件夹 Outlook.Folder inbox = mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder; Outlook.Folder outbox = mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox) as Outlook.Folder; Outlook.Folder sentItems = mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) as Outlook.Folder; Outlook.Folder deletedItems = mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems) as Outlook.Folder; // 验证并输出文件夹信息(可根据业务需求替换为实际操作) if (inbox != null) Debug.WriteLine($"收件箱:{inbox.Name}"); if (outbox != null) Debug.WriteLine($"发件箱:{outbox.Name}"); if (sentItems != null) Debug.WriteLine($"已发送邮件:{sentItems.Name}"); if (deletedItems != null) Debug.WriteLine($"已删除邮件:{deletedItems.Name}"); } } }
注意事项
- 程序集引用:确保VSTO项目已添加
Microsoft.Office.Interop.Outlook程序集引用(可通过NuGet安装或COM引用添加)。 - 空值处理:极少数情况下,用户配置可能缺失某个默认文件夹,需添加空值判断避免空引用异常。
- 多账户场景:默认获取当前主账户的文件夹,若需获取其他账户的默认文件夹,可通过
Store对象实现:
// 获取指定账户的收件箱 Outlook.Store targetStore = mapiNamespace.Stores["user@example.com"]; Outlook.Folder targetInbox = targetStore.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
内容的提问来源于stack exchange,提问作者Willy
相关产品推荐
相关产品推荐

