method
search
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]