简体   繁体   中英

Imap search criteria - imaplib (python)

I'm using imaplib for python and I came across a strange behavior. I don't really know if this is an imap ou imaplib problem/feature, so I'm hoping anyone can give me some lights.

During my project I do several searchs on my gmail boxes. Imagine that I do an imap search with the following criteria:

((since "date A") (before "date B"))

Now, if I have emails since "date A", imap(lib) does the expected thing: returns the emails since "date A" and before "data B". Lovely. However, if I have NO emails since "date A", imap(lib) simply ignores that and returns all emails before "date B" even they are not since "data A"!

Is this the expected behavior for imap? I don't really think so, it makes no sense at all.

I really need the ability to search for any given period and I'm hopping not having to pool the box before every search just to know the last email's date.

Any idea? Am I missing something here?

M.search(None, '(since "12-Jul-2010" before "12-Jul-2011")')

  SINCE 
     Messages whose internal date (disregarding time and timezone)
     is within or later than the specified date.

  BEFORE 
     Messages whose internal date (disregarding time and timezone)
     is earlier than the specified date.

  make sure that `SINCE < BEFORE`

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM