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

Outlook宏开发需求:基于#CT-标识发送邮件后触发任务创建询问

Outlook邮件发送时自动触发任务创建(仅含特定主题标识时)

嘿,针对你要实现的Outlook邮件触发任务自动化的需求,我整理了完整的解决方案,一起来看看吧!

核心实现思路

  • 借助Outlook内置的Application_ItemSend事件,这是邮件发送前的关键钩子,可以拦截发送动作并执行自定义逻辑
  • 先判断邮件主题是否包含指定标识#CT-,只有符合条件时才弹出创建任务的确认提示
  • 用户确认后,自动创建关联的任务项,并同步邮件的关键信息

完整代码实现

你需要把这段代码放到Outlook的ThisOutlookSession模块中(打开VBA编辑器:按下Alt+F11,在左侧导航栏找到ThisOutlookSession):

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim intRes As Integer
    Dim strMsg As String
    Dim objTask As TaskItem
    
    ' 验证当前发送的是邮件,且主题包含指定标识#CT-
    If TypeName(Item) = "MailItem" And InStr(Item.Subject, "#CT-") > 0 Then
        strMsg = "此邮件主题包含任务标识,是否创建关联任务?"
        intRes = MsgBox(strMsg, vbYesNo + vbQuestion, "创建任务提示")
        
        If intRes = vbYes Then
            ' 初始化新的任务项
            Set objTask = Application.CreateItem(olTaskItem)
            
            ' 同步邮件信息到任务(可根据需求自定义)
            objTask.Subject = "跟进:" & Item.Subject ' 任务主题添加前缀便于区分
            objTask.Body = "关联邮件内容:" & vbCrLf & Item.Body ' 把邮件内容同步到任务描述
            objTask.DueDate = DateAdd("d", 3, Now()) ' 设置任务截止日期为3天后
            objTask.Importance = olImportanceHigh ' 标记为高优先级
            
            ' 保存任务
            objTask.Save
            MsgBox "关联任务已成功创建!", vbInformation, "操作完成"
        End If
    End If
    
    ' 释放对象,避免内存泄漏
    Set objTask = Nothing
End Sub

代码关键点说明

  • 标识判断逻辑:InStr(Item.Subject, "#CT-") > 0 用于检测主题中是否包含#CT-,如果需要修改标识,直接替换这个字符串即可
  • 对象类型校验:TypeName(Item) = "MailItem" 确保我们只处理邮件对象,避免日历项、联系人等其他类型的Item触发逻辑
  • 任务属性自定义:你可以根据需求调整任务的属性,比如添加邮件收件人到任务的参与人、修改StartDate,甚至把邮件附件同步到任务中

注意事项

  1. 代码保存后需要重启Outlook,或者手动运行一次Application_ItemSend事件才能生效
  2. 如果Outlook提示宏被禁用,需要在信任中心设置中启用宏(文件>选项>信任中心>信任中心设置>宏设置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:10:04