c# - C# 使用 Microsoft.Exchange.WebServices EWS 在指定日期之后获取邮件
问题描述
我正在使用 EWS 下载邮件。由于邮箱很大,我想用查询字符串过滤邮件。Received:20/11/2019
我找到了一种仅使用但下载指定日期的邮件的方法
- 这不是从该日期返回所有邮件(为什么 - 似乎只有带有附件的未读邮件是结果的一部分)
- 我想收到 2019 年 11 月 20 日及以后的所有邮件
这是我的代码:
Microsoft.Exchange.WebServices.Data.ExchangeService exchange = new Microsoft.Exchange.WebServices.Data.ExchangeService(Microsoft.Exchange.WebServices.Data.ExchangeVersion.Exchange2013);
exchange.Credentials = new Microsoft.Exchange.WebServices.Data.WebCredentials("User", "********", "Domain");
exchange.AutodiscoverUrl("Name@domain.com");
string QString = "Recieved:20/11/2019";
if (exchange != null)
{
Microsoft.Exchange.WebServices.Data.FindItemsResults<Microsoft.Exchange.WebServices.Data.Item> Results = exchange.FindItems(Microsoft.Exchange.WebServices.Data.WellKnownFolderName.Inbox, QString, new Microsoft.Exchange.WebServices.Data.ItemView(100));
foreach(Microsoft.Exchange.WebServices.Data.Item MI in Results)
{
/*Print subject to command window*/
System.Console.WriteLine(MI.Subject);
}
}
我在这里找到了答案,但它的 PHP 和我不是很熟练: Getting emails after a specific date with php-ews (Exchange Web Services)
解决方案
啊,SearchFilter 对我来说效果很好:
Microsoft.Exchange.WebServices.Data.SearchFilter SF = new Microsoft.Exchange.WebServices.Data.SearchFilter.IsGreaterThanOrEqualTo(Microsoft.Exchange.WebServices.Data.ItemSchema.DateTimeReceived, new System.DateTime(2019,11,20));
Microsoft.Exchange.WebServices.Data.FindItemsResults<Microsoft.Exchange.WebServices.Data.Item> Results = exchange.FindItems(Microsoft.Exchange.WebServices.Data.WellKnownFolderName.Inbox, SF, new Microsoft.Exchange.WebServices.Data.ItemView(100));
推荐阅读
- python - Python 3井字游戏的问题
- javascript - 如何将 JavaScript 数组作为参数传递给 URL 并在 PHP 中捕获?
- c# - SVG 渐变文件不正确地渲染到图形
- oracle - 从 Oracle 数据库中的 sql developer 生成 sql 跟踪文件
- sharepoint - Sharepoint 中的 1.24TB 存储空间是多少?
- bootstrap-4 - 带有引导程序 4.5 的 jquery builder 无法正常工作
- css - iOS 上的滚动捕捉 - 但保留地址栏的自动缩小和工具栏的隐藏
- javascript - VueJS $refs 在 :src 更改后未定义
- mysql - 是否可以将视图中的列结构从 varchar 更改为 date
- xslt - 需要根据输入的xml文件格式化日期