Im, использующий управляемый API EWS для связи между моим проектом C# и нашим сервером Exchange 2010. Я использую этот код, чтобы получить все письма в папке «Входящие» сейчас и три дня назад.Exchange EWS Managed API 2.0 по дате
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 не должен обрабатывать все сообщения.
Вы что-нибудь пробовали? Там 'SearchFilter' для' FindItems', как описано здесь >> http://msdn.microsoft.com/en-us/library/jj221817(v=exchg.80).aspx – banging
Конечно, я пробовал! В противном случае я бы не задал этот вопрос. Вы, кажется, тоже не нашли его? –