【发布时间】:2013-03-11 13:13:01
【问题描述】:
我使用 EWS 托管 API 在我的 c# 项目和我们的 Exchange 2010 服务器之间进行通信。 从现在到三天后,我使用此代码获取收件箱中的所有邮件。
var ews = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
ews.Credentials = new NetworkCredential(usr, psw, dmn);
ews.AutodiscoverUrl(url);
PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties);
itempropertyset.RequestedBodyType = BodyType.Text;
ItemView view = new ItemView(int.MaxValue);
FindItemsResults<Item> findResults;
view.PropertySet = itempropertyset;
do
{
findResults = ews.FindItems(WellKnownFolderName.Inbox, view);
foreach (Item item in findResults.Items)
{
if (item.DateTimeCreated < DateTime.Now.AddDays(-3)) continue;
item.Load(itempropertyset);
var message = EmailMessage.Bind(ews, item.Id,
new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.Attachments));
string to = message.ToRecipients[0].Address.ToLower();
string body = item.Body;
}
view.Offset += findResults.TotalCount;
} while (findResults.MoreAvailable);
现在的问题。我想改进这条线if (item.DateTimeCreated < DateTime.Now.AddDays(-3)) continue;,因为当我使用它时,api 会从收件箱中获取所有消息,如果它超过三天就继续。我想在代码的前面指定这个过滤器,所以 api 不必处理所有消息。
【问题讨论】:
-
您尝试过什么吗?
FindItems有一个SearchFilter,如此处所述 >> msdn.microsoft.com/en-us/library/jj221817(v=exchg.80).aspx -
当然,我试过了!否则我不会在这里问这个问题。你好像也没找到?
标签: c# exchange-server ews-managed-api