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

如何通过VBA检查Outlook邮件是否已设置延迟投递?

如何通过VBA检查Outlook邮件是否已设置延迟投递?

我已在Outlook的Application_ItemSend事件中实现了自动延迟投递功能:当邮件在每日特定时间前发送时,会自动为其设置延迟投递。现在需要解决的问题是:如何检查邮件是否已设置延迟投递? 若已设置,则不进行修改。

我在添加延迟投递的代码前后,打印了Item.DeferredDeliveryTime的值,代码如下:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Debug.Print "Item.DeferredDeliveryTime: " & Item.DeferredDeliveryTime

    ' 我的延迟投递代码在此处
    
    Debug.Print "Item.DeferredDeliveryTime: " & Item.DeferredDeliveryTime
    
End Sub

对于未设置延迟投递的新邮件,初始输出结果如下:

Item.DeferredDeliveryTime: 4501-01-01
Item.DeferredDeliveryTime: 2023-07-20 6:31:00 AM

我的代码判定需要设置延迟投递后,将其设为当日6:31。设置前,Item.DeferredDeliveryTime的值为4501-01-01这个特殊日期。

想请教以下几个问题:

  • 这个4501-01-01初始值是Outlook用来表示“未设置延迟投递”的特殊日期代码,还是一个会被Outlook忽略的遥远日期?
  • 该值是否固定?所有系统中未设置延迟投递的邮件都会显示这个值吗?是否可以直接通过对比这个常量来判断,还是需要通过判断是否为“遥远日期”来推断未设置延迟投递?
  • 有没有更可靠的方法判断邮件是否已设置延迟投递?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:57:35