获取邮件项目的完成日期时间
本文关键字:日期 时间 项目 获取 | 更新日期: 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))