2016-05-17 177 views
1

我想以读写模式打开Outlook电子邮件(msg)文件以解析它并更改日期值。从msg文件中读取(读取模式)日期,然后将(写入模式)假日期替换为msg文件。到目前为止,我确实如此。Python:在读写模式下打开Outlook电子邮件(.msg)文件

import win32com.client 
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
msg = outlook.OpenSharedItem(r"C:\Users\abc.msg") 

print msg.SentOn 

我可以得到SendOn日期。这意味着它默认处于读取模式。如何打开它以写入模式并用Dummy日期替换SendOn日期。或者有其他的方式来做到这一点?

回答

1

SentOn属性在Outlook对象模型中为只读属性。你需要扩展为MAPI(C++或Delphi,使用OpenIMsgOnIStg,设置PR_CLIENT_SUBMIT_TIME属性)或赎回(任何语言):

set Session = CreateObject("Redemption.RDOSession") 
    set Msg = Session.GetMessageFromMsgFile("C:\Users\abc.msg") 
    Msg.SentOn = #5/17/2016# 
    Msg.Save 
+0

它完美,因为我需要的。缺少'()'来保存上述代码中的文件。谢谢 :) – jaymin581

相关问题