Python IMAP search for partial subject
imap, python
Solution
According to the IMAP RFC `SEARCH` should do all of its matching as substring matches:
In all search keys that use strings, a message matches the key if the string is a substring of the field. The matching is case-insensitive.
Therefore, a search
M.uid('search', None, 'HEADER Subject "New Order"')
should match all messages where `New Order` occurs anywhere in the subject. If it is not, you should notify Google that their server does not implement IMAP properly. In the meantime you might try using the `SUBJECT` key as in
M.uid('search', None, 'SUBJECT "New Order"')
Also, according to Google's IMAP extension documentation you might be able to use the `X-GM-RAW` key and a gmail search string as in
M.uid('search', None, r'X-GM-RAW "subject:\"New Order\""')
Problem
I'm trying to fetch all emails whose subject starts with "New Order" but I can't seem to figure it out. Currently I can search for an exact match with a setup like so... ``` result, data = M.uid('search', None, '(HEADER Subject "Subject Here")') ``` However this won't retrieve any messages that aren't an exact match. How would I go about doing a partial match? If it matters I am talking to gmail's imap server(s). Thanks