我如何循环使用具有限制条件的邮箱?

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/FindNextItems.Restrict 是最有效的:它们是在商店提供商级别实施的。

Linq 或 Lambda 在源代码中可能看起来不错,但它们仍然明确地遍历集合中的所有项目。不要将 then 与 Outlook 的 Items 集合一起使用。