2011-04-11 95 views
11

我有一个较小的IMAP脚本写我Python(3.2)。搜索前/后蟒蛇imaplib

我我的搜索线看起来是这样的:

typ, data = M.search(None, 'FROM', '"MyName"') 

我得到预期的结果。但是,如果我改变它的东西,如:

typ, data = M.search(None, 'AFTER', '"01-Jan-2010"') 

(带或不注日期的引用,我得到这个错误

Traceback (most recent call last): 
    File "./priv/imap.py", line 100, in <module> 
    main() 
    File "./priv/imap.py", line 93, in main 
    print(to_json(fetch_result(M, args), args)) 
    File "./priv/imap.py", line 51, in fetch_result 
    typ, data = M.search(None, 'AFTER', '"01-Jan-2010"') 
    File "/usr/lib/python3.2/imaplib.py", line 652, in search 
    typ, dat = self._simple_command(name, *criteria) 
    File "/usr/lib/python3.2/imaplib.py", line 1121, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "/usr/lib/python3.2/imaplib.py", line 957, in _command_complete 
    raise self.error('%s command error: %s %s' % (name, typ, data)) 
imaplib.error: SEARCH command error: BAD [b'Could not parse command'] 

我不知道为什么这样做是违法的,但是所有的帮助将是不胜感激!另外,我ultimatly想要做的是使用“年轻化1234567”,以做一些更精细的过滤,但我不知道如果Gmail/Python支持这个呢。事先

感谢

回答

4

你可以试试:

typ, data = M.search(None, '(SINCE "01-Jan-2010")') 

,或者如果你正在使用的UID:

typ, data = M.uid('search', '(SINCE 01-Jan-2010)') 
+1

的内部日期(忽视时间和时区),是有可能也使用的时间与日期? – 2011-08-10 23:43:01

+1

@ user250145不,这些命令完成“不考虑时间和时区”:http://tools.ietf.org/html/rfc3501.html#section-6.4.4 – lajarre 2012-10-31 18:55:25

12

您可以使用搜索这样的:

,但似乎它不支持详细的时间,但只有日期。

和日期是电子邮件

M.search(None, '(SINCE "01-Jan-2012")') 
M.search(None, '(BEFORE "01-Jan-2012")') 
M.search(None, '(SINCE "01-Jan-2012" BEFORE "02-Jan-2012")') 
+0

parens是不必要的。 – arnt 2014-05-03 20:06:44