• PHP マニュアル
  • 関数リファレンス
  • メール関連
  • IMAP
  • IMAP 関数
  • imap_8bit
  • imap_alerts
  • imap_append
  • imap_base64
  • imap_binary
  • imap_body
  • imap_bodystruct
  • imap_check
  • imap_clearflag_full
  • imap_close
  • imap_create
  • imap_createmailbox
  • imap_delete
  • imap_deletemailbox
  • imap_errors
  • imap_expunge
  • imap_fetch_overview
  • imap_fetchbody
  • imap_fetchheader
  • imap_fetchmime
  • imap_fetchstructure
  • imap_fetchtext
  • imap_gc
  • imap_get_quota
  • imap_get_quotaroot
  • imap_getacl
  • imap_getmailboxes
  • imap_getsubscribed
  • imap_header
  • imap_headerinfo
  • imap_headers
  • imap_is_open
  • imap_last_error
  • imap_list
  • imap_listmailbox
  • imap_listscan
  • imap_listsubscribed
  • imap_lsub
  • imap_mail
  • imap_mail_compose
  • imap_mail_copy
  • imap_mail_move
  • imap_mailboxmsginfo
  • imap_mime_header_decode
  • imap_msgno
  • imap_mutf7_to_utf8
  • imap_num_msg
  • imap_num_recent
  • imap_open
  • imap_ping
  • imap_qprint
  • imap_rename
  • imap_renamemailbox
  • imap_reopen
  • imap_rfc822_parse_adrlist
  • imap_rfc822_parse_headers
  • imap_rfc822_write_address
  • imap_savebody
  • imap_scan
  • imap_scanmailbox
  • imap_search
  • imap_set_quota
  • imap_setacl
  • imap_setflag_full
  • imap_sort
  • imap_status
  • imap_subscribe
  • imap_thread
  • imap_timeout
  • imap_uid
  • imap_undelete
  • imap_unsubscribe
  • imap_utf7_decode
  • imap_utf7_encode
  • imap_utf8
  • imap_utf8_to_mutf7
imap_scanmailbox
imap_set_quota
IMAP 関数
PHP マニュアル

imap_search

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

説明

arrayfalse imap_search(
    IMAP\Connection $imap,
    string $criteria,
    int $flags = SE_FREE,
    string $charset = ""
)

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

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

パラメータ

imap

IMAP\Connection クラスのインスタンス。

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 - 未読のメッセージにマッチ

flags

flags に指定できる値は SE_UID です。これを指定すると、 メッセージ番号ではなく UID を含む配列を返します。

charset

文字列の検索の際に使う MIME 文字セット。

戻り値

メッセージ番号あるいは UID の配列を返します。

検索条件 criteria を処理できなかった場合や 結果が見つからなかった場合は、false を返します。

変更履歴

バージョン 説明
8.1.0 引数 imap は、IMAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な imap resource が期待されていました。

例

例1 imap_search の例

<?php
$imap   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some   = imap_search($imap, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($imap, 'ALL');
$uids   = imap_search($imap, '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