自动化测试——是否有办法在Exchange上生成具有过去发送/接收日期的电子邮件



我们有一个组件,从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

干杯格伦

相关内容

最新更新