2017-04-11 1 views
0

파이썬에서 imaplib을 사용하여 올바르게 검색하는 방법을 알려줄 수 있습니까? 전자 메일 서버는 Microsoft Exchange입니다. 문제가있는 것 같지만 python/imaplib 측의 해결책이 필요합니다. https://github.com/barbushin/php-imap/issues/128python3 imaplib 검색 함수 인코딩

나는 지금까지 사용 :

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 갈 줄 수도 있습니다 :

그래서, 마음에 그 모두와 함께, 당신은 같은 것을 할 필요가있다. 검색 조건을 유니 코드 문자열로 전달하면 검색 인코딩 측면을 상당 부분 담당합니다. 프로젝트 : 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"')