我们有一个从Exchange(Online,2013,2010)抓取电子邮件/会议的组件,我们希望在过去的时间段内创建电子邮件分发,例如6个月用于测试目的。
为了实现这一目标,我们肯定需要收到/发送日期的电子邮件,而不是从我们开始生成电子邮件时的当前(从生成时刻)开始。
我们查看了EWS API - 它不支持更改已创建(生成)电子邮件的日期。
还有哪些其他选择?
答案 0 :(得分:0)
如果更改消息的扩展属性,您可以使用EWS创建一个看起来像过去收到的电子邮件,例如
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
干杯 格伦