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

Outlook VSTO外接程序如何将创建的Task保存到指定邮箱文件夹

解决方法

你不需要找TaskItem的路径属性做设置,两种方式都可以实现存入指定文件夹:

方法1:基于现有代码改造,创建后移动到目标文件夹

先拿到目标文件夹对象,调用Move方法即可,移动操作会自动保存任务,不需要再单独调用Save:

Outlook.TaskItem t = this.Application.CreateItem(Outlook.OlItemType.olTaskItem) as Outlook.TaskItem;
if (t != null)
{
    t.Subject = "Hello, Reader";
    // 获取目标邮箱的命名空间
    Outlook.NameSpace ns = this.Application.GetNamespace("MAPI");
    // 替换成你要存入的目标邮箱地址
    Outlook.Store targetStore = ns.Stores["目标邮箱@xxx.com"];
    // 获取目标邮箱的默认任务文件夹,如果是自定义子文件夹可以继续用Folders索引获取
    Outlook.MAPIFolder targetFolder = targetStore.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderTasks);
    // 示例:如果要存入任务文件夹下的名为"工作任务"的子文件夹,打开下面这行注释即可
    // targetFolder = targetFolder.Folders["工作任务"];
    
    // 移动到目标文件夹
    t.Move(targetFolder);
}

方法2:直接在目标文件夹创建任务(更高效,无需移动)

直接从目标文件夹的Items集合创建任务,保存后默认就归属到该文件夹:

Outlook.NameSpace ns = this.Application.GetNamespace("MAPI");
Outlook.Store targetStore = ns.Stores["目标邮箱@xxx.com"];
Outlook.MAPIFolder targetFolder = targetStore.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderTasks);
// 直接在目标文件夹下创建任务
Outlook.TaskItem t = targetFolder.Items.Add(Outlook.OlItemType.olTaskItem) as Outlook.TaskItem;
if (t != null)
{
    t.Subject = "Hello, Reader";
    t.Save();
}

如果你的目标文件夹是完全自定义的非任务类型文件夹,可以逐层通过Folders索引定位:ns.Folders["邮箱显示名"].Folders["一级文件夹名"].Folders["目标文件夹名"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:18:03