2017-04-19 37 views
0

當我在searchPhrase中使用帶有特殊字符的搜索命令時出現此錯誤,如「سلام」 它工作正常其他情況。我也嘗試編碼爲UTF-8。那麼沒有錯誤,但它不會給出任何結果。IMAP服務器以'NO'響應回覆'SEARCH'命令:字符集不支持搜索

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

有什麼建議嗎?

+0

我有這個問題嗎?什麼是解決方案? –

+0

錯誤消息說明** SERVER **不支持字符集。它與你的代碼無關。與負責服務器的人員交談,詢問他們支持哪些字符集。 –

+0

某些服務器有可怕的國際化支持。 – Max

回答

2

我只是用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 ("[email protected]", "xxx"); 

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

       client.Disconnect (true); 
      } 
     } 
    } 
}