tur*_*ula 8 asp.net exchange-server exchangewebservices ews-managed-api
该EWS托管API具有的功能,用于检索和管理屈指可数的电子邮件对话(又名 电子邮件线程).不幸的是,其中很大一部分只适用于新版本的Exchange(2013等)
Outlook确实实现了针对旧版 Exchange的电子邮件线程.也许它通过自己管理线程来实现这一点(Outlook是桌面应用程序,电子邮件在本地计算机上复制,因此可以通过Conversation Topic等轻松分组).
现在,如何在Web应用程序中支持电子邮件线程?通常在Exchange客户端中支持此功能的操作是什么?通过支持我的意思是:
EWS Managed Api等问题:
我现在使用的(作为解决方法):
上述实现的一些问题
在电子邮件对话/电子邮件线程中,没有人知道哪些支持:
注意:我不太确定Item.ConversationId的支持,因为我手边没有代码,现在无法执行测试.因此,如果在使用针对Exchange 2010的EWS托管API时该属性可用,请原谅我.
总而言之,您是否有任何想法在Web应用程序中使用针对Exchange 2010服务器的EWS托管API实现电子邮件对话/电子邮件线程功能?
非常感谢你耐心阅读这么长的帖子:)
一些参考:
http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.exchangeservice_methods%28v=exchg.80%29.aspx http://msdn.microsoft.com/en-us/library /microsoft.exchange.webservices.data.conversation_members%28v=exchg.80%29.aspx http://msdn.microsoft.com/en-us/library/office/gg274407%28v=exchg.80%29.aspx http ://msdn.microsoft.com/en-us/library/office/jj220497%28v=exchg.80%29.aspx
使用EWS和Exchange 2007通过对话实现Outlook 2010的 Exchange Web服务托管API - 按扩展属性查找项目
我已经解决了您在评论中提到的一些文档问题,因此我将尝试在此处回答您的实际编码问题.
要获取主视图,ExchangeService.FindConversation是正确的方法.它通过将结果限制为view参数指定的会话数来支持分页.您可以根据需要调用它来获取较旧和较旧的结果.
要获取详细视图,因为Exfor1010上没有ExchangeService.GetConversationItems,您可以将ExchangeService.FindItems与IsEqualTo SearchFilter一起使用,以搜索具有匹配ConversationId的项目(请参阅下面的代码).这里有关于搜索过滤器的更多信息:如何:在Exchange中使用带有EWS的搜索过滤器.
在下面的方法中,我通过指定属性集来限制FindItems调用的属性,而不是返回所有属性.如果要返回所有属性,只需删除设置PropertySet的行.
static void forumFindConversationItem(ExchangeService service)
{
ItemView view = new ItemView(10);
//Remove the following line if you want to get all the properties for each message. This will limit the properties returned in your results (and save time).
view.PropertySet = new PropertySet(EmailMessageSchema.Subject, EmailMessageSchema.DateTimeReceived);
SearchFilter.IsEqualTo conversationFilter =
new SearchFilter.IsEqualTo(EmailMessageSchema.ConversationId, "AAQkADIwM2ZlM2ZlLWMwYjctNDg2Ny04MDU0LTVkMTFmM2IxY2ZjZQAQANEDR7V/30dphLiNOLSTuxE=");
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox, conversationFilter, view);
}
Run Code Online (Sandbox Code Playgroud)
一旦你有了每个ItemID(由上面的代码返回),你就可以使用Bind方法获得每个项目的所有属性.
希望有所帮助.当MSDN上的方法的版本控制问题得到更新时,我会跟进.
| 归档时间: |
|
| 查看次数: |
2903 次 |
| 最近记录: |