imap_scanmailbox
imap_set_quota
IMAP
PHP Manual

# imap_search

(PHP 4, PHP 5)

imap_search — This function returns an array of messages matching the given search criteria

### Description

array imap_search ( resource `$imap_stream` , string `$criteria` [, int `$options` [, string `$charset` ]] )

This function performs a search on the mailbox currently opened in the given imap stream.

For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom". Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client source code and may be incomplete or inaccurate (see also » RFC2060, section 6.4.4).

### Parameters

`imap_stream`

  An IMAP stream returned by imap_open().

`criteria`

  A string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted.

  - ALL - return all messages matching the rest of the criteria
  - ANSWERED - match messages with the \\ANSWERED flag set
  - BCC "string" - match messages with "string" in the Bcc: field
  - BEFORE "date" - match messages with Date: before "date"
  - BODY "string" - match messages with "string" in the body of the message
  - CC "string" - match messages with "string" in the Cc: field
  - DELETED - match deleted messages
  - FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set
  - FROM "string" - match messages with "string" in the From: field
  - KEYWORD "string" - match messages with "string" as a keyword
  - NEW - match new messages
  - OLD - match old messages
  - ON "date" - match messages with Date: matching "date"
  - RECENT - match messages with the \\RECENT flag set
  - SEEN - match messages that have been read (the \\SEEN flag is set)
  - SINCE "date" - match messages with Date: after "date"
  - SUBJECT "string" - match messages with "string" in the Subject:
  - TEXT "string" - match messages with text "string"
  - TO "string" - match messages with "string" in the To:
  - UNANSWERED - match messages that have not been answered
  - UNDELETED - match messages that are not deleted
  - UNFLAGGED - match messages that are not flagged
  - UNKEYWORD "string" - match messages that do not have the keyword "string"
  - UNSEEN - match messages which have not been read yet
`options`

  Valid values for `options` are `SE_UID`, which causes the returned array to contain UIDs instead of messages sequence numbers.

`charset`

### Return Values

Returns an array of message numbers or UIDs.

Return `FALSE` if it does not understand the search `criteria` or no messages have been found.

### ChangeLog

Version | Description
--- | ---
4.3.3 | The `charset` parameter was added

### See Also

- imap_listscan()

imap_scanmailbox
imap_set_quota
IMAP
PHP Manual