Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 967
jpaires Avatar asked Oct 28 '25 04:10

jpaires


1 Answers

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`
like image 176
kev Avatar answered Oct 30 '25 19:10

kev



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!