无法使用 mailkit 通过 Message-ID 获取 Yahoo 邮件

unable to get Yahoo mail by Message-ID using mailkit

我想使用以下代码通过 Message-Id 获取邮件项目。

     var messageId = messageIdStringValue.DecryptFromBase64();
          var newId = "<" + messageId + ">";
        var matches = Client.Inbox.Search(SearchQuery.HeaderContains("Message-ID", newId));
        foreach (var uid in matches)
        {

            var message = Client.Inbox.GetMessage(uid);

        }

它在 Gmail 上工作正常,雅虎没有结果 mail.I 应该提到我可以收到所有邮件,但问题是在获取单个邮件时 message.Am 我做错了什么?

不同的 IMAP 服务器实现 SEARCH 的方式不同。

也就是说,为什么要对 message-id 值进行 base64 解码?这没有意义。

感谢@jstedfast,我发现搜索邮件项目的最佳方式是通过 UniqueId 而不是 Message-ID,因为搜索命令可能 return 对于不同的服务器,这种方式没有结果。 以下代码适用于所有服务器:

 foreach (var item in Client.Inbox.Fetch(new[] { uId }, MessageSummaryItems.UniqueId | MessageSummaryItems.BodyStructure))
        {
          var message = Client.Inbox.GetMessage(item.UniqueId)
        }