【问题标题】:The IMAP server replied to the 'SEARCH' command with a 'NO' response: Character set not supported for searchIMAP 服务器以“NO”响应回复“SEARCH”命令:不支持搜索字符集
【发布时间】:2017-04-20 10:19:30
【问题描述】:

当我在 searchPhrase 中使用带有特殊字符的搜索命令时出现此错误,例如“سلام” 它在其他情况下工作正常。我也尝试过编码为 UTF-8。那么没有错误,但它不会返回任何结果。

var uids = Client.Inbox.Search(SearchQuery.SubjectContains(searchPhrase));

有什么建议吗?

【问题讨论】:

  • 我也有这个问题?什么是解决方案?
  • 错误信息说 SERVER 不支持字符集。它与您的代码无关。与负责服务器的人员交谈,并询问他们支持哪些字符集。
  • 有些服务器的国际化支持很糟糕。
  • Mailkit 做了正确的事,它会在启动时发送 ENABLE 或正确命名的 CHARSET 键。所以它可能是服务器。这是什么服务器?就此而言,网络上发送的 IMAP 命令是什么?
  • Exchange 之类的服务器似乎只支持 us-ascii,所以如果这就是他的服务器,他可能会倒霉。希望 IMAP 服务器以支持的字符集列表响应,也许我可以在 MailKit 中找到解决方案。

标签: c# imap mailkit


【解决方案1】:

我刚刚使用 MailKit 在 GMail 上对此进行了测试,这就是我得到的结果:

S: A00000006 OK [READ-ONLY] INBOX selected. (Success)
C: A00000007 UID SEARCH RETURN () CHARSET UTF-8 SUBJECT {8+}
C: سلام
S: * ESEARCH (TAG "A00000007") UID
S: A00000007 OK SEARCH completed (Success)

什么是错误?对我来说似乎工作正常(除了我显然在主题标头中没有任何带有该字符串的消息)。

这是我的小测试程序:

using System;

using MailKit.Net.Imap;
using MailKit.Search;
using MailKit;
using MimeKit;

namespace GMailSearchTest {
    class Program
    {
        public static void Main (string[] args)
        {
            using (var client = new ImapClient (new ProtocolLogger (Console.OpenStandardOutput ()))) {
                // For demo-purposes, accept all SSL certificates
                client.ServerCertificateValidationCallback = (s,c,h,e) => true;

                client.Connect ("imap.gmail.com", 993, true);

                // Note: since we don't have an OAuth2 token, disable
                // the XOAUTH2 authentication mechanism.
                client.AuthenticationMechanisms.Remove ("XOAUTH2");

                client.Authenticate ("xxx@gmail.com", "xxx");

                client.Inbox.Open (FolderAccess.ReadOnly);
                client.Inbox.Search (SearchQuery.SubjectContains ("سلام"));

                client.Disconnect (true);
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多