2017-04-11 5 views
0

pythonでimaplibを使って正しく検索する方法を教えてもらえますか?電子メールサーバーはMicrosoft Exchangeです。問題はあるようですが、python/imaplib側の解決策が必要です。 https://github.com/barbushin/php-imap/issues/128python3 imaplib検索機能のエンコーディング

Iこれまでの使用:

import imaplib 
M = imaplib.IMAP4_SSL(host_name, port_name) 
M.login(u, p) 
M.select() 
s_str = 'hello' 
M.search(s_str) 

そして、私は次のエラーを取得する:

>>> M.search(s_str) 
('NO', [b'[BADCHARSET (US-ASCII)] The specified charset is not supported.']) 
+0

あなたはまた、IMAPClientに行くを与えたいと思うことがあります。

だから、心の中でそれらの両方で、あなたのような何かをする必要があります。検索条件をUnicode文字列として渡すと、検索エンコーディングの面で多くの面倒を見ることができます。 プロジェクト:https://github.com/mjs/imapclient; 関連ドキュメント:http://imapclient.readthedocs.io/en/stable/#imapclient.IMAPClient.search –

答えて

1

searchは、二つ以上のパラメータ、エンコーディング、および検索の仕様を取ります。エンコーディングとしてNoneを渡して、指定しないことができます。 helloは有効な文字セットではありません。

また、検索対象を指定する必要があります。IMAPには、詳細な検索言語RFC3501§6.4.4があります。 imaplibは高水準のインタフェースを提供しません。

search(None, 'BODY', '"HELLO"') 

または

search(None, 'FROM', '"HELLO"')