search(keys, charset = nil)
public
Sends a SEARCH command to search the mailbox for messages that match the given searching criteria, and returns message sequence numbers. keys can either be a string holding the entire search string, or a single-dimension array of search keywords and arguments. The following are some common search criteria; see [IMAP] section 6.4.4 for a full list.
<message set> |
a set of message sequence numbers. ‘,’ indicates an interval, ‘:’ indicates a range. For instance, ‘2,10:12,15’ means “2,10,11,12,15”. |
BEFORE <date> |
messages with an internal date strictly before <date>. The date argument has a format similar to 8-Aug-2002. |
BODY <string> |
messages that contain <string> within their body. |
CC <string> |
messages containing <string> in their CC field. |
FROM <string> |
messages that contain <string> in their FROM field. |
NEW |
messages with the Recent, but not the Seen, flag set. |
NOT <search-key> |
negate the following search key. |
OR <search-key> <search-key> |
“or” two search keys together. |
ON <date> |
messages with an internal date exactly equal to <date>, which has a format similar to 8-Aug-2002. |
SINCE <date> |
messages with an internal date on or after <date>. |
SUBJECT <string> |
messages with <string> in their subject. |
TO <string> |
messages with <string> in their TO field. |
For example:
p imap.search(["SUBJECT", "hello", "NOT", "NEW"]) #=> [1, 6, 7, 8]