2011-04-11 20 views
11

Daha küçük bir IMAP komut dosyası yazdım i Python (3.2).Pythons ile ÖNCE/SONRASI ARAMA imaplib

benim arama satırı şuna benzer:

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

beklediğim sonuçları almak. Ben böyle bir şeyle değiştirmek Ancak,: ile veya alıntı tarihi olmayan

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

(ben bu yasadışı olurdu niçin hiçbir fikrim yok

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

bu hatayı olsun, ancak tüm yardım olacak takdir! Ayrıca, ne ultimatly yapmak istediğiniz kullanım "YOUNGER 1234567" bazı ince filtreleme yapmak amacıyla, ama gmail/piton henüz desteklemesi durumunda emin değilim. önceden

sayesinde

cevap

4

size

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

veya UID'leri kullanıyorsanız: deneyebilirsiniz

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

iç tarihi (göz ardı zaman ve saat dilimi) ayrıca tarih ile zaman kullanmak mümkündür? –

+1

@ user250145 no, bu komutlar "zaman ve zaman dilimi dikkate alınmaz" yapılır: http://tools.ietf.org/html/rfc3501.html#section-6.4.4 – lajarre

12

Aşağıdakiler gibi arama kullanabilirsiniz:

Ama detaylı bir zaman desteklemez görünüyor, ama sadece tarihi.

ve tarihtir email

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 gereksizdir. – arnt