我如何循环使用具有限制条件的邮箱?
How can i loop through a mailbox with restrictive criteria?
我看到很多关于如何循环浏览邮件的问题,我可以很容易地解决这些问题。但我正在努力的是限制收集,以便我只迭代基于 crtieria 的一小部分电子邮件,例如日期。
这里有什么可能?林克?拉姆达? Find/Restrict? - 什么最有效?
这是我到目前为止尝试过的方法,但我很难得到任何东西,集合返回空值:(查询是空引用,未设置为引用或对象)
string sFilter = $"[ReceivedTime] > {DateTime.Today.AddDays(-7).ToString()}";
Outlook.Items query = itemsIn.Find(sFilter);```
这行得通,因为查询需要短日期表示。
插值也能正常工作!
string sFilter = $"[SentOn] > '{DateTime.Today.AddDays(-7).ToShortDateString()}'";
var query = itemsIn.Restrict(sFilter);
return query;
}
Items.Find/FindNext
和 Items.Restrict
是最有效的:它们是在商店提供商级别实施的。
Linq 或 Lambda 在源代码中可能看起来不错,但它们仍然明确地遍历集合中的所有项目。不要将 then 与 Outlook 的 Items
集合一起使用。
我看到很多关于如何循环浏览邮件的问题,我可以很容易地解决这些问题。但我正在努力的是限制收集,以便我只迭代基于 crtieria 的一小部分电子邮件,例如日期。
这里有什么可能?林克?拉姆达? Find/Restrict? - 什么最有效?
这是我到目前为止尝试过的方法,但我很难得到任何东西,集合返回空值:(查询是空引用,未设置为引用或对象)
string sFilter = $"[ReceivedTime] > {DateTime.Today.AddDays(-7).ToString()}";
Outlook.Items query = itemsIn.Find(sFilter);```
这行得通,因为查询需要短日期表示。
插值也能正常工作!
string sFilter = $"[SentOn] > '{DateTime.Today.AddDays(-7).ToShortDateString()}'";
var query = itemsIn.Restrict(sFilter);
return query;
}
Items.Find/FindNext
和 Items.Restrict
是最有效的:它们是在商店提供商级别实施的。
Linq 或 Lambda 在源代码中可能看起来不错,但它们仍然明确地遍历集合中的所有项目。不要将 then 与 Outlook 的 Items
集合一起使用。