TextSearchQuery在MailKit中不起作用

时间:2016-11-11 12:37:27

标签: mailkit

我使用MailKit和IMAP Client。如果他们指定了主题,我想要收到消息:

client.Inbox.Open(FolderAccess.ReadOnly);
var query = SearchQuery.SubjectContains("my_subject");
var uids = client.Inbox.Search(query);
if (!uids.Any())
    MessageBox.Show("Empty list!");

但是返回TextSearchQuery的所有方法(例如SubjectContainsBodyContainsFromContains ...)都不起作用,我得到带有空列表信息的MessageBox。但是如果我的查询返回SearchQuery,例如:

var query = SearchQuery.NotSeen;

var query = SearchQuery.NotFlagged;

它正常工作。问题出在哪儿?使用字符编码?

2 个答案:

答案 0 :(得分:1)

不同的IMAP服务器以不同方式实现文本匹配。一些IMAP服务器执行文字子字符串搜索,而其他IMAP服务器在消息到达时将消息文本/主题文本标记化,并保留数据库中包含哪些消息。

有些IMAP服务器会对文本进行解码(如果已编码),有些则不会。

基于文本的搜索完全取决于您正在使用的IMAP服务器。

答案 1 :(得分:0)

我解决了这个问题。我改变了#34; _"使用" +" (在Base64中允许,也许很重要)。