2013-12-15 48 views
0

我创建一个电子邮件反对这种方式Email对象:分配ReceivedTime使用赎回

Outlook.MailItem mail = folder.Items.Add(Outlook.OlItemType.olMailItem); 
mail.To = "[email protected]"; 
mail.Subject = "subject"; 
mail.Body = "body"; 

现在,我保存了邮件,并使用赎回来分配ReceivedTime

mail.Save(); 
RDOMail rdoMail = Globals.ThisAddIn.session.GetMessageFromID(mail.EntryID); 
rdoMail.ReceivedTime = DateTime.Parse("01/01/2013"); 
rdoMail.Save(); 

并加载它,再次保存电子邮件,但ReceivedTime字段没有设置,当我看exporer。我究竟做错了什么?

- 更新 -

原先的程序似乎工作,但我有以前的代码之后,这些行:

for (int i = 0; i < mails.Length; i++) 
    mails[i].Move(folder); 

然后ReceivedTime的分配被丢弃。我已经测试了这一点,并且电子邮件对象移动到另一个文件夹是导致Redemption修改被删除的原因。现在,新的问题是:我怎样才能避免这种情况?我必须将电子邮件移动到它们所属的文件夹,但是这些修改将被删除,并且ReceivedTime字段的分配在电子邮件移动后无法完成。

回答

0

ReceivedTime对应于PR_MESSAGE_DELIVERY_TIME MAPI属性。你看到它在OutlookSpy中改变(点击IMessage按钮)?

您的消息查看显示发送或接收时间?

+0

刚刚更新了新信息的问题,请让我知道你对新信息的想法。 –

+0

您可以使用Redemption而不是Outlook将消息移动到该文件夹​​,也可以在移动消息(Move()返回新创建的消息)后设置ReceivedTime属性。 –