python3 imaplib搜索功能编码

时间:2017-04-11 14:06:21

标签: python-3.6 imaplib

有人能指出我如何在python中使用imaplib进行正确搜索。电子邮件服务器是Microsoft Exchange - 似乎有问题,但我想要一个python / imaplib方面的解决方案。 https://github.com/barbushin/php-imap/issues/128

我到目前为止使用:

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.'])

1 个答案:

答案 0 :(得分:1)

search包含两个或更多参数,编码和搜索规范。您可以将None作为编码传递,而不指定一个。 hello不是有效的字符集。

您还需要指定要搜索的内容:IMAP具有RFC3501§6.4.4中详述的复杂搜索语言;和imaplib没有为它提供高级接口。

所以,考虑到这两点,你需要做类似的事情:

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

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