【问题标题】:SearchQuery by Not in Uids MailKitSearchQuery by Not in Uids MailKit
【发布时间】:2018-07-17 01:12:25
【问题描述】:

我想根据未记录在我的数据库中的 Uid 来阅读电子邮件。如何让 SearchQuery 只查找那些未保存在我的数据库中的 Uid。在下面的代码中,我不想读取 6504 uid,因为它存在于我的数据库中。

var range = new UniqueIdRange(new UniqueId((uint)6504), UniqueId.MaxValue);
foreach (var uid in inbox.Search(!range, SearchQuery.All))
{
    var message = inbox.GetMessage(uid);
}

有什么帮助吗?

【问题讨论】:

    标签: c# mailkit mimekit


    【解决方案1】:

    您需要使用 SearchQuery.Not() 表达式:

    var knownUids = new UniqueIdSet ();
    
    knownUids.Add (new UniqueId ((uint) 6504));
    
    foreach (var uid in inbox.Search (SearchQuery.Not (SearchQuery.Uids (knownUids))) {
        var message = inbox.GetMessage (uid);
    }
    

    【讨论】:

    • 太棒了!有用。但是,如果第一次在 DB 中没有 Uid 怎么办?它给出了错误。
    • 如果您没有 uid,则只需使用 inbox.Search (SearchQuery.All) 进行完整搜索;
    猜你喜欢
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2017-05-02
    • 2022-06-10
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多