如何通过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
相关产品推荐
相关产品推荐

