関数・クラス解説

imap_search

version:PHP 4, PHP 5, PHP 7 (公式)

指定した検索条件にマッチするメッセージを配列として返す

公式リファレンス

書式

imap_search ( resource $imap_stream , string $criteria [, int $options = SE_FREE [, string $charset = NULL ]] ) : array

説明

この関数は、指定した IMAP ストリームの現在オープンしているメールボックス において検索を行います。

例えば、Mom から送られた全ての未回答のメッセージにマッチさせるには、 "UNANSWERED FROM mom" を使用します。 検索は、大文字小文字が区別されずに行われます。 検索条件のリストは、UW c-client のソースコードからのものであり、 不完全または不正確である可能性があります (» RFC1176 の "tag SEARCH search_criteria" も参照ください)。

パラメータ

imap_stream
imap_open()が返す IMAP ストリーム。
criteria
空白で区切られた文字列で、以下のキーワードが使用可能です。 複数の単語からなるキーワード(例 FROM "joey smith") は全て引用符で括る必要があります。 結果は、すべての criteria エントリにマッチすることになります。
  • ALL - 他の検索条件にマッチする全メッセージを返す
  • ANSWERED - \\ANSWERED フラグが設定されているメッセージにマッチ
  • BCC "string" - Bcc: フィールドに "string" を有するメッセージにマッチ
  • BEFORE "date" - "date" より前の Date: を有するメッセージにマッチ
  • BODY "string" - メッセージ本体に "string" を有するメッセージにマッチ
  • CC "string" - Cc: フィールドに "string" を有するメッセージにマッチ
  • DELETED - 削除されたメッセージにマッチ
  • FLAGGED - \\FLAGGED フラグ(重要または緊急を表すものとして 使用されることがあります)が設定されているメッセージにマッチ
  • FROM "string" - From: フィールドに "string" を有するメッセージにマッチ
  • KEYWORD "string" - キーワードとして "string" を有するメッセージにマッチ
  • NEW - 新規メッセージにマッチ
  • OLD - 古いメッセージにマッチ
  • ON "date" - Date: が "date" であるメッセージにマッチ
  • RECENT - \\RECENT フラグが設定されているメッセージにマッチ
  • SEEN - 既読の(\\SEEN フラグが設定されている)メッセージにマッチ
  • SINCE "date" - Date: が "date" 以降であるメッセージにマッチ
  • SUBJECT "string" - Subject: に "string" を有するメッセージにマッチ
  • TEXT "string" - テキスト "string" を有するメッセージにマッチ
  • TO "string" - To: に "string" を有するメッセージにマッチ
  • UNANSWERED - 未回答のメッセージにマッチ
  • UNDELETED - 削除されていないメッセージにマッチ
  • UNFLAGGED - フラグが設定されていないメッセージにマッチ
  • UNKEYWORD "string" - キーワード "string" を有さないメッセージにマッチ
  • UNSEEN - 未読のメッセージにマッチ
options
options に指定できる値は SE_UID です。これを指定すると、 メッセージ番号ではなく UID を含む配列を返します。
charset
文字列の検索の際に使う MIME 文字セット。

返値

メッセージ番号あるいは UID の配列を返します。 検索条件 criteria を処理できなかった場合や 結果が見つからなかった場合は、FALSE を返します。

サンプル

例1 imap_search() の例

$conn   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY); $some   = imap_search($conn, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID); $msgnos = imap_search($conn, 'ALL'); $uids   = imap_search($conn, 'ALL', SE_UID); print_r($some); print_r($msgnos); print_r($uids);

上の例の出力は、たとえば以下のようになります。

Array ( [0] => 4 [1] => 6 [2] => 11 ) Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 ) Array ( [0] => 1 [1] => 4 [2] => 6 [3] => 8 [4] => 11 [5] => 12 )

参考

  • imap_listscan() - 指定したテキストにマッチするメールボックスの一覧を返す
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール