我们有一个组件,从Exchange (Online, 2013, 2010)抓取电子邮件/会议,我们想在过去的时间范围内创建电子邮件分发,例如6个月用于测试目的。
为了实现这一点,我们肯定需要接收/发送日期的电子邮件是在过去的,而不是从我们开始生成电子邮件的当前(从生成时刻)时间开始的。
我们查看了EWS API -它不支持更改创建(生成)电子邮件的日期。
还有其他选择吗?
如果您更改消息的扩展属性,则可以创建具有EWS的电子邮件,看起来像过去收到的电子邮件eg
EmailMessage OldMessage = new EmailMessage(service);
OldMessage.ToRecipients.Add("user@domain.com");
OldMessage.Sender= new EmailAddress("bob@domain.com");
OldMessage.From = new EmailAddress("bob@domain.com");
OldMessage.Subject = "This is an old message";
OldMessage.Body = new MessageBody("test");
ExtendedPropertyDefinition PR_Flags = new ExtendedPropertyDefinition(3591,MapiPropertyType.Integer);
OldMessage.SetExtendedProperty(PR_Flags,1);
ExtendedPropertyDefinition PR_CLIENT_SUBMIT_TIME = new ExtendedPropertyDefinition(0x0039,MapiPropertyType.SystemTime);
ExtendedPropertyDefinition PR_MESSAGE_DELIVERY_TIME = new ExtendedPropertyDefinition(0x0E06,MapiPropertyType.SystemTime);
OldMessage.SetExtendedProperty(PR_CLIENT_SUBMIT_TIME,DateTime.Now.AddMonths(-6));
OldMessage.SetExtendedProperty(PR_MESSAGE_DELIVERY_TIME,DateTime.Now.AddMonths(-6));
OldMessage.Save(WellKnownFolderName.Inbox);
您也可以使用MimeContent导入消息,这将做同样的事情,例如https://msdn.microsoft.com/en-us/library/office/dn672319(v=exchg.150).aspx
干杯格伦