我有一个非常特殊的问题.
如果我们在Outlook中创建邮件,我们添加一个UserProperty,其中包含我们系统的DataBase-ID,因此我们可以将邮件链接到代表DataBase-Item.在读取每个邮箱中的邮件并自动导入它的服务上,我可以使用ExtendedPropertyDefinitions读取此属性.到目前为止一切都很好......
如果用户现在在Outlook中转发邮件,Olk会将UserProperty复制到新邮件.现在我的问题开始了.现在,我的服务认为新消息也链接到我们的数据库,并使用新的Body和新主题更新DB-Entry.
那么现在有人如何查明邮件是转发邮件还是如何告诉Outlook不要将userproperty复制到转发(新)邮件?
谢谢.松鸦
我们的想法,但不适合我们的情况
- 第二个用户属性包含一个简单的标签linke"fromSystem".因为这也会被复制.
- 第二个userproperty,包含从subject和Body计算的hashsum.原因两者都可以由用户更改.我们只是创建消息,添加所有属性并显示它.从这一点开始,我们不再控制邮件发生的事情,直到服务处理它为止.
我们使用EWS托管API将我们的CRM与Exchange-Server同步.只要我使用EWS Mangage API 1.1,一切都很完美.现在我更新到Api 2.0(Dll-version:15.0.516.14)并且如果我从不同的线程绑定到同一个文件夹并且不明白原因,我会收到ArgumentException.
这是一个引发异常的示例代码:
private void TestAsyncFolderGet()
{
try
{
ExchangeService service = this.GetService();
Parallel.For(0, 20, (i) =>
{
Folder fo = Folder.Bind(service, WellKnownFolderName.Inbox);
});
}
catch (Exception ex)
{
this.State = "Failed: " + ex.Message;
}
}
private ExchangeService GetService()
{
ExchangeService result = new ExchangeService(ExchangeVersion.Exchange2010);
result.AutodiscoverUrl("test@foo.com");
return result;
}
Run Code Online (Sandbox Code Playgroud)
我的真实场景是我使用pullsubscription更改项目并处理更改异步.在这样做时,我绑定到父文件夹以获取一些信息.
任何人都可以帮我避免异常吗?
Stacktrace和异常信息:
System.ArgumentException:已添加具有相同键的项.
在System.Collections.Generic.Dictionary 2.Insert(TKey key, TValue value, Boolean add)
at Microsoft.Exchange.WebServices.Data.ExchangeServiceBase.SaveHttpResponseHeaders(WebHeaderCollection headers)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(IEwsHttpWebResponse response)
at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalFindFolders(IEnumerable1 parentFolderIds,SearchFilter searchFilter,FolderView视图,ServiceErrorHandling errorHandlingMode)在Microsoft.Exchange.WebServices.Data.ExchangeService.FindFolders(FolderId parentFolderId,FolderView视图)