有人能指出我如何在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.'])
答案 0 :(得分:1)
search
包含两个或更多参数,编码和搜索规范。您可以将None作为编码传递,而不指定一个。 hello
不是有效的字符集。
您还需要指定要搜索的内容:IMAP具有RFC3501§6.4.4中详述的复杂搜索语言;和imaplib没有为它提供高级接口。
所以,考虑到这两点,你需要做类似的事情:
search(None, 'BODY', '"HELLO"')
或
search(None, 'FROM', '"HELLO"')