関数・クラス解説

imap_open

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

メールボックスへの IMAP ストリームをオープンする

公式リファレンス

書式

imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = array() ]]] ) : resource

説明

mailbox への IMAP ストリームをオープンします。

この関数は、POP3 や NNTP サーバーへのストリームをオープンする際にも使用可能です。 しかし、いくつかの関数および機能は IMAP サーバーでしか利用できません。

パラメータ

mailbox
メールボックス名(mailbox)は、サーバー名の部分と使用するサーバーにおける メールボックスへのパスから構成されます。特別な名前 INBOX は、 カレントユーザーの個人メールボックスを意味します。 ASCII 空間で出力可能な文字以外の外国文字を含むメールボックス名は imap_utf7_encode() でエンコードする必要があります。
警告信頼できないデータをこのパラメータに渡すのであれば、imap.enable_insecure_rshを無効にしておかなければ危険です。
サーバー部は '{' および '}' で括られ、サーバー名または IP アドレス、オプションの ':' から始まるポート指定子、('/' で始まる)オプションのプロトコル指定子 から構成されます。 サーバー部は、全ての mailbox パラメータで必須です。 { で始まる名前はすべてリモート名で、 "{" remote_system_name [":" port] [flags] "}" [mailbox_name] のような形式となります。
  • remote_system_name - Internet ドメイン名 あるいは括弧でかこまれたサーバーの IP アドレス。
  • port - オプションの TCP ポート番号。デフォルトは そのサービスのデフォルトポート。
  • flags - オプションのフラグ。以下の表を参照ください。
  • mailbox_name - リモートメールボックス名。デフォルトは INBOX 。
オプションのフラグ名
フラグ 説明
/service=service メールボックスにアクセスするサービス。デフォルトは "imap" 。
/user=user サーバーへのログイン時のユーザー名。
/authuser=user リモートの認証ユーザー。指定されていた場合は、このユーザーのパスワードが 認証に使用されます(例: administrator)。
/anonymous 匿名ユーザーとしてアクセスします。
/debug プロトコルの通信内容をアプリケーションのデバッグログに記録します。
/secure ネットワーク越しにプレーンテキストのパスワードを送信しません。
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 /service=imap と同じです。
/pop3 /service=pop3 と同じです。
/nntp /service=nntp と同じです。
/norsh 事前に認証済みの IMAP セッションを確立する際に、rsh や ssh を使用しません。
/ssl セッションの暗号化に Secure Socket Layer を使用します。
/validate-cert TLS/SSL サーバーの証明書を検証します(デフォルトの挙動です)。
/novalidate-cert TLS/SSL サーバーの証明書を検証しません。サーバーが自己証明の 証明書を使用している際に必要となります。
/tls セッションの暗号化に start-TLS の使用を強制し、それを サポートしていないサーバーとの接続を拒否します。
/notls たとえサーバーがそれをサポートしていたとしても、 セッションで start-TLS による暗号化を使用しません。
/readonly 読み込み専用でのメールボックスのオープンを要求します(IMAP のみ。 NNTP では無視され、SMTP および POP3 ではエラーとなります)。
username
ユーザー名。
password
username のパスワード。
options
options はビットマスクであり、以下の組み合わせとなります。
  • OP_READONLY - メールボックスを読み込み専用でオープンします。
  • OP_ANONYMOUS - news に関して .newsrc を使用せず、更新もしません(NNTP のみ)。
  • OP_HALFOPEN - IMAP 及び NNTP 名について、 接続をオープンしますがメールボックスはオープンしません。
  • CL_EXPUNGE - メールボックスを閉じる際に、 自動的にメールボックスを削除します(imap_delete() および imap_expunge() も参照ください)。
  • OP_DEBUG - プロトコルネゴシエーションをデバッグします。
  • OP_SHORTCACHE - 短い(elt-only)キャッシングを行います。
  • OP_SILENT - イベントを受信しません(内部で使用します)。
  • OP_PROTOTYPE - ドライバのプロトタイプを返します。
  • OP_SECURE - セキュアでない認証を行いません。
n_retries
接続試行の最大数。
params
接続パラメータ。次の (文字列の) キーを使って接続パラメータを設定することができます。
  • DISABLE_AUTHENTICATOR - 認証プロパティを無効にする

返値

成功した場合は IMAP ストリームを、失敗した場合は FALSE を返します。

注意

警告信頼できないデータをこのパラメータに渡すのであれば、imap.enable_insecure_rshを無効にしておかなければ危険です。

サンプル

例1 imap_open() のさまざまな使用例

// ローカルマシンのポート 143 で稼動している IMAP サーバーに接続するには // 以下のようにします。 $mbox = imap_open("{localhost:143}INBOX", "user_id", "password"); // ローカルマシンのポート 110 で稼動している POP3 サーバーに接続するには、 $mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password"); // SSL IMAP あるいは POP3 サーバーに接続するには、プロトコル指定のあとに // /ssl を追加します。 $mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password"); // 自分でサインした証明書で SSL IMAP あるいは POP3 サーバーに接続するには、 // プロトコル指定のあとに /ssl/novalidate-cert を追加します。 $mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password"); // ローカルマシンのポート 119 で稼動している NNTP サーバーに接続するには、 $nntp = imap_open ("{localhost:119/nntp}comp.test", "", ""); // リモートサーバーに接続する際は、"localhost" を接続したいサーバーの // 名前または IP アドレスに置き換えます。

例2 imap_open() の例

$mbox = imap_open("{imap.example.org:143}", "username", "password"); echo "

Mailboxes

\n"; $folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*"); if ($folders == false) {     echo "コールが失敗しました\n"; } else {     foreach ($folders as $val) {         echo $val . "\n";     } } echo "

INBOX のヘッダ

\n"; $headers = imap_headers($mbox); if ($headers == false) {     echo "コールが失敗しました\n"; } else {     foreach ($headers as $val) {         echo $val . "\n";     } } imap_close($mbox);

参考

  • imap_close() - IMAP ストリームをクローズする
  • ワード検索


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

    関数名アルファベット別

    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用の拡張モジュール