如何在 Microsoft Exchange Web 服务 (EWS) 中使用搜索过滤器和视图库
how to use searchfilters and viewbase in microsoft exchange web service (EWS)
我正在使用 Exchange 网络服务 (EWS) 从 Exchange 服务器读取电子邮件。
我想从 DateTimeSent
大于 datetime.now
的交换服务器读取电子邮件。
我没有使用 searchfilter
和 viewbase,它们是 FindItems
的参数,如何使用它们?
//Email exchange starts here
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1)
{
Credentials = new WebCredentials(credentials.SmtpUser, credentials.SmtpPassword)
};
//to add logic for itemview
service.AutodiscoverUrl(credentials.SmtpFromAddress, RedirectionUrlValidationCallback);
//var inbox = service.FindItems(WellKnownFolderName.Inbox, new ItemView(100));
var inbox = service.FindItems(WellKnownFolderName.Inbox,); //what to add here?
foreach (EmailMessage item in inbox.Items.Where(x => Convert.ToDateTime(x.DateTimeSent) > dateTime.Now))
{
}
我不知道 DateTimeSent
为什么可以大于 DateTime.Now
以及为什么需要它,但以下是如何执行搜索的示例:
string email = "<user>@<host>";
string user = "<user>";
string password = "<password>";
string serviceUrl = "https://<url>/ews/exchange.asmx";
Mailbox mailbox = new Mailbox(email);
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new WebCredentials(user, password);
service.Url = new Uri(serviceUrl);
FolderId inbox = new FolderId(WellKnownFolderName.Inbox, mailbox);
SearchFilter searchFilter = new SearchFilter.IsGreaterThan(ItemSchema.DateTimeSent, DateTime.Now);
ItemView view = new ItemView(10); // take 10 items
view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Descending);
FindItemsResults<Item> result = service.FindItems(inbox, searchFilter, view);
我正在使用 Exchange 网络服务 (EWS) 从 Exchange 服务器读取电子邮件。
我想从 DateTimeSent
大于 datetime.now
的交换服务器读取电子邮件。
我没有使用 searchfilter
和 viewbase,它们是 FindItems
的参数,如何使用它们?
//Email exchange starts here
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1)
{
Credentials = new WebCredentials(credentials.SmtpUser, credentials.SmtpPassword)
};
//to add logic for itemview
service.AutodiscoverUrl(credentials.SmtpFromAddress, RedirectionUrlValidationCallback);
//var inbox = service.FindItems(WellKnownFolderName.Inbox, new ItemView(100));
var inbox = service.FindItems(WellKnownFolderName.Inbox,); //what to add here?
foreach (EmailMessage item in inbox.Items.Where(x => Convert.ToDateTime(x.DateTimeSent) > dateTime.Now))
{
}
我不知道 DateTimeSent
为什么可以大于 DateTime.Now
以及为什么需要它,但以下是如何执行搜索的示例:
string email = "<user>@<host>";
string user = "<user>";
string password = "<password>";
string serviceUrl = "https://<url>/ews/exchange.asmx";
Mailbox mailbox = new Mailbox(email);
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new WebCredentials(user, password);
service.Url = new Uri(serviceUrl);
FolderId inbox = new FolderId(WellKnownFolderName.Inbox, mailbox);
SearchFilter searchFilter = new SearchFilter.IsGreaterThan(ItemSchema.DateTimeSent, DateTime.Now);
ItemView view = new ItemView(10); // take 10 items
view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Descending);
FindItemsResults<Item> result = service.FindItems(inbox, searchFilter, view);