You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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}");
        }
    }
}

注意事项

  1. 程序集引用:确保VSTO项目已添加Microsoft.Office.Interop.Outlook程序集引用(可通过NuGet安装或COM引用添加)。
  2. 空值处理:极少数情况下,用户配置可能缺失某个默认文件夹,需添加空值判断避免空引用异常。
  3. 多账户场景:默认获取当前主账户的文件夹,若需获取其他账户的默认文件夹,可通过Store对象实现:
// 获取指定账户的收件箱
Outlook.Store targetStore = mapiNamespace.Stores["user@example.com"];
Outlook.Folder targetInbox = targetStore.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;

内容的提问来源于stack exchange,提问作者Willy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 04:24:33