在收件箱文件夹中,我只有 5 封电子邮件(如图所示,4 封未读,1 封已读)。
此外,在每个搜索文件夹中,例如未读邮件、跟进等。我有很多邮件(超过 1,000 封),最旧的是日期为 2011 年(收到日期/时间)。
执行 FindItems 时,我最终找到了一封更旧的电子邮件,其 DateTimeReceived
属性值 2004-08-15?
我唯一能想到的另一件事是,使用 FindItems 方法也可以从已归档的邮件中获取电子邮件,对吧?
getInboxItems
private FindItemsResults<Item> getInboxItems() {
var inboxFolderId = new FolderId(WellKnownFolderName.Inbox
, mailboxConfiguration.MailboxName);
var allItems = new ItemView(int.MaxValue) {
Traversal = ItemTraversal.Shallow
, PropertySet = new PropertySet(EmailMessageShema.DateTimeReceived
, EmailMessageSchema.LastModifiedTime)
};
var foundItems = Service.FindItems(inboxFolderId, allItems);
return foundItems;
}
这将返回大约 40 封电子邮件,其中包括 2004 年最旧的过时电子邮件,我在通过 Outlook 访问它时在任何邮箱文件夹中都找不到。
简短的问题是:会发生什么?
我在 Internet 上找不到有关该主题的任何内容。
UPDATE
经过进一步调查,按照以下简单步骤证明提供的代码示例是无罪的:
- 选择收件箱文件夹,右键单击并单击“属性”
- 收件箱属性,在常规选项卡中,单击“显示所有项目的数量”(可能与实际的英文版本不同,因为我已经翻译了我自己认为它可能是英文的)
- 现在回到收件箱文件夹,我们可能会看到实际上有那么多项目。
So it seems that my code is correct, and although this total count reports to 35, when this Inbox folder is selected, I only see the five above-mentioned emails.
我认为这可能是由于存档项目造成的,而且我已经确认存档电子邮件已移至外部存档工具并从 Exchange 中删除,这让我一头雾水。
最佳答案
原来是私有(private)项目导致了这个问题。
除了将这些项目设为私有(private)的用户之外,其他人看不到私有(private)项目,并且仍然是收件箱文件夹中包含的项目的一部分。
一旦被证明是私有(private)元素,就可以:
向 OWA 验证自己
点击他的名字打开下拉列表,输入邮箱即可访问
访问后,可以看到旧项目并考虑删除它们
删除所有这些项目后,一切恢复正常,EWS.FindItems 报告了正确数量的项目,一如既往。
所以问题确实出在勋章交换端的收件箱中,而不是在 EWS 上。边。
关于email - EWS.FindItems 从收件箱文件夹中返回的项目多于预期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508875/