c#如何通过ews 获取exchange里的收件箱全部邮件而非未读邮件?

netboygg 2013-09-26 08:35:52
现在从网上找的代码无论如何都得不到收件箱里的全部邮件,只能取到未读邮件,不知道为什么。求解决方案哈:
一下是代码:
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);//如果是Exchange 2010,则切换到2010
ICredentials creds = new NetworkCredential("xxxx", "xxxx", "xxxx.com");
service.Credentials = new WebCredentials(creds);
service.Url = new Uri("https://xxxxxx/xxx/Exchange.asmx");
service.PreAuthenticate = true;
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, userMailAddress);
ItemView view = new ItemView(int.MaxValue);
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, SetFilter(), view);

foreach (Item item in findResults.Items)
{
if (item.Subject != null)
{
list.Add(item.Subject.ToString());
}
else
{
list.Add("无标题");
}
list.Add(item.DateTimeSent.ToString());
}

private SearchFilter SetFilter()
{
List<SearchFilter> searchFilterCollection = new List<SearchFilter>();
searchFilterCollection.Add(new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));//这里的.IsRead,false或者true都是去到未读邮件,不知道为什么
SearchFilter s = new SearchFilter.SearchFilterCollection(LogicalOperator.And, searchFilterCollection.ToArray());
return s;
}
...全文
361 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tomzhout 2014-03-05
  • 打赏
  • 举报
回复
//SetFilter方法改成这样就可以了。 private static SearchFilter SetFilter() { List<SearchFilter> searchFilterCollection = new List<SearchFilter>(); searchFilterCollection.Add(new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false)); searchFilterCollection.Add(new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, true)); SearchFilter s = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, searchFilterCollection.ToArray()); return s; }

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧