获取邮件项目的完成日期时间

本文关键字:日期 时间 项目 获取 | 更新日期: 2023-09-27 18:31:11

当您在Outlook中标记要跟进的消息时,它会得到一个危险信号。当您再次标记它时,标志将变为刻度号,并显示任务完成时间。如何从 C# 应用程序获取/设置此时间?

我尝试使用邮件项的TaskCompletedDate但它只返回日期(而不是时间)。我还试图找到分配给标记邮件的任务,但也没有管理。我做错了什么?我应该在哪里寻找它?

我正在使用 Outlook 2007 和 2010。

提前感谢您的回答。

获取邮件项目的完成日期时间

我不确定您需要的实际属性,但大多数邮件项目属性和方法都记录在 MSDN 上:

http://msdn.microsoft.com/en-US/library/aa210946(v=office.11).aspx

注意:请务必检查您面向的 Outlook 版本。2007+ 还有其他属性。

编辑

根据MSDN,此属性确实是一个DateTime

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook._mailitem.taskcompleteddate.aspx

至于为什么它只记得日期部分,我无法解释。仅供参考,我相信TaskCompleteDate是UTC。

我找到了解决方法。我仍然不知道Outlook在哪里保存与给定消息相关的taksitem,但我正在使用Outlook表格来显示必要的数据。表可以为我检索所需的数据,然后我从表的单元格中检索它。

帮助我做到这一点的代码在这里:http://msdn.microsoft.com/en-us/library/ff184632.aspx

存储完成日期的

列(单元格)称为"标记完成日期"。它显示整个日期时间值,而不仅仅是日期。

此方法的缺点是,您仍然无法直接访问该值,并且无法设置它,只能获取它。

您可以使用

邮件项目propertyAccessor

要获得:

myMailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x10910040")

要设置(以发送日期为例):

call myMailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x10910040",myMailItem.PropertyAccessor.LocalTimeToUTC(myMailItem.SentOn))