LXI. IMAP、POP3 および NNTP 関数

導入

以下の関数は、その名前から連想されるように IMAP プロトコルのみを扱うわけではありません。基盤となる c クライアント ライブラリは NNTPPOP3、 そしてローカルメールボックスへのアクセスメソッドもサポートします。

要件

この拡張モジュールは、c クライアントライブラリがインストールされている ことを要します。ftp://ftp.cac.washington.edu/imap/ から 最新版を入手し、コンパイルしてください。

IMAP のソースファイルをシステムの include ディレクトリに直接コピー しないことが大切です。そのようなことをすると既存のファイルと衝突を 引き起こす可能性があります。そのかわりにシステムの include ディレクトリの 下に新しいディレクトリ(例: /usr/local/imap-2000b/ 場所や名前は、あなたのシステムの設定や IMAP のバージョンに依存します)を作成し、 この新規ディレクトリの下に lib/include/ という新しいディレクトリを作成します。IMAP ソースツリーの c-client ディレクトリからすべての *.h ファイルを include/ に、そしてすべての *.c ファイルを lib/ にコピーします。 IMAP をコンパイルすると、c-client.a というファイルが つくられます。これも lib/ ディレクトリにコピーし、 名前を libc-client.a に変更してください。

注意: C クライアントライブラリを SSL や Kerberos のサポートつきでビルド するには、パッケージとともに提供されるドキュメントを参照ください。

注意: Mandrake Linux では、IMAP ライブラリ(libc-client.a) が Kerberos のサポートなしでコンパイルされています。また、SSL 対応バージョン(client-PHP4.a)が別に インストールされます。Kerberos サポートを使用するには、これらの ライブラリを再コンパイルする必要があります。

インストール手順

これらの関数を動作させるには、--with-imap[=DIR] を指定して PHP をコンパイルする必要があります。DIR は c-client インストール時のプレフィックスです。上の例のような場合には --with-imap=/usr/local/imap-2000b を指定します。この場所は、上の指示にしたがってあなたが作成したディレクトリの 場所に依存します。Windows ユーザは、php.iniphp_imap.dll DLL を有効にします。 IMAP は Windows 2000 より前のバージョンではサポートされていません。 なぜなら、メールサーバとの SSL 接続を有効にするために暗号化関数を 使用しているからです。

注意: c-client の設定によっては、これ以外に --with-imap-ssl=/path/to/openssl/--with-kerberos=/path/to/kerberos といったオプションを PHP の configure で指定する必要があります。

警告

IMAPrecodeYAZ および Cyrus 拡張モジュールは、組み合わせて使用することはできません。 これは、同一の内部シンボルを使用しているためです。

実行時設定

設定ディレクティブは定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

NIL (integer)

OP_DEBUG (integer)

OP_READONLY (integer)

メールボックスを読み込み専用で開きます。

OP_ANONYMOUS (integer)

ニュースで .newsrc を使用せず、更新も行いません (NNTP のみ)。

OP_SHORTCACHE (integer)

OP_SILENT (integer)

OP_PROTOTYPE (integer)

OP_HALFOPEN (integer)

IMAP や NNTP において、接続はオープンするがメールボックスを開きません。

OP_EXPUNGE (integer)

OP_SECURE (integer)

CL_EXPUNGE (integer)

imap_close() のコール時に、メールボックスを 閉じる前に中身を削除します。

FT_UID (integer)

パラメータは UID です。

FT_PEEK (integer)

まだ設定されていない場合に \Seen フラグを設定しません。

FT_NOT (integer)

FT_INTERNAL (integer)

返される文字列は内部フォーマットであり、CRLF を正規化しません。

FT_PREFETCHTEXT (integer)

ST_UID (integer)

シーケンスの引数に、番号ではなく UID を含んでいます。

ST_SILENT (integer)

ST_SET (integer)

CP_UID (integer)

シーケンス番号が UID を含んでいます。

CP_MOVE (integer)

imap_mail_copy() でコピーを行った後に 現在のメールボックスからメッセージを削除します。

SE_UID (integer)

シーケンス番号のかわりに UID を返します。

SE_FREE (integer)

SE_NOPREFETCH (integer)

検索されたメッセージを事前にフェッチすることはありません。

SO_FREE (integer)

SO_NOSERVER (integer)

SA_MESSAGES (integer)

SA_RECENT (integer)

SA_UNSEEN (integer)

SA_UIDNEXT (integer)

SA_UIDVALIDITY (integer)

SA_ALL (integer)

LATT_NOINFERIORS (integer)

このメールボックスには「子供」はいません(このメールボックスの配下には メールボックスはありません)。

LATT_NOSELECT (integer)

これは単なるコンテナであり、メールボックスではありません。 オープンすることはできません。

LATT_MARKED (integer)

このメールボックスはマークされています。UW-IMAPD でのみ使用されます。

LATT_UNMARKED (integer)

このメールボックスはマークされていません。UW-IMAPD でのみ使用されます。

SORTDATE (integer)

imap_sort() のソート条件。 メッセージの日付でソートします。

SORTARRIVAL (integer)

imap_sort() のソート条件。 到着日でソートします。

SORTFROM (integer)

imap_sort() のソート条件。 メールボックスの最初の From アドレスでソートします。

SORTSUBJECT (integer)

imap_sort() のソート条件。 メッセージの表題でソートします。

SORTTO (integer)

imap_sort() のソート条件。 メールボックスの最初の To アドレスでソートします。

SORTCC (integer)

imap_sort() のソート条件。 メールボックスの最初の Co アドレスでソートします。

SORTSIZE (integer)

imap_sort() のソート条件。 メッセージのサイズ(バイト単位)でソートします。

TYPETEXT (integer)

TYPEMULTIPART (integer)

TYPEMESSAGE (integer)

TYPEAPPLICATION (integer)

TYPEAUDIO (integer)

TYPEIMAGE (integer)

TYPEVIDEO (integer)

TYPEOTHER (integer)

ENC7BIT (integer)

ENC8BIT (integer)

ENCBINARY (integer)

ENCBASE64 (integer)

ENCQUOTEDPRINTABLE (integer)

ENCOTHER (integer)

参考

この文書では、提供される関数に関する全ての話題の詳細について立ち入ることは できません。より詳細な情報については、C クライアントライブラリのソースに 付属するドキュメント (docs/internal.txt) および以下の RFC ドキュメントで提供されています。

  • RFC2821: Simple Mail Transfer Protocol (SMTP).

  • RFC2822: Standard for ARPA internet text messages.

  • RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.

  • RFC1939: Post Office Protocol Version 3 (POP3).

  • RFC977: Network News Transfer Protocol (NNTP).

  • RFC2076: Common Internet Message Headers.

  • RFC2045 , RFC2046 , RFC2047 , RFC2048 & RFC2049: Multipurpose Internet Mail Extensions (MIME).

詳しい概観については、David Wood による書籍 Programming Internet Email や Dianna Mullet と Kevin Mullet による Managing IMAP でも得ることができます。

目次
imap_8bit --  8bit 文字列を quoted-printable 文字列に変換する
imap_alerts --  ページリクエストの間または最後にスタックがリセットされて以来発生した 全ての IMAP 警告メッセージを返す
imap_append --  指定されたメールボックスに文字列メッセージを追加する
imap_base64 -- BASE64 でエンコードされたテキストのデコード
imap_binary --  8 ビット文字列を base64 文字列に変換する
imap_body -- メッセージ本文を読む
imap_bodystruct --  指定したメッセージの指定した body セクションの構造を読み込む
imap_check -- 現在のメールボックスをチェックする
imap_clearflag_full -- メッセージのフラグをクリアする
imap_close -- IMAP ストリームをクローズする
imap_createmailbox -- 新しいメールボックスを作る
imap_delete --  現在のメールボックスから削除するメッセージに印を付ける
imap_deletemailbox -- メールボックスを削除する
imap_errors --  ページのリクエストの間かエラースタックがリセットされて以来 生じた全ての IMAP エラーを返す
imap_expunge --  削除用にマークされたすべてのメッセージを削除する
imap_fetch_overview --  指定したメッセージのヘッダ情報の概要を読む
imap_fetchbody --  メッセージ本文中の特定のセクションを取り出す
imap_fetchheader -- メッセージのヘッダを返す
imap_fetchstructure --  特定のメッセージの構造を読み込む
imap_get_quota --  クオータレベルの設定、メールボックス毎の使用状況を取得する
imap_get_quotaroot --  ユーザ単位のクォータ設定を取得する
imap_getacl --  与えられたメールボックスの ACL を取得する
imap_getmailboxes --  メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す
imap_getsubscribed -- 購読中の全メールボックスの一覧
imap_header -- imap_headerinfo() のエイリアス
imap_headerinfo -- メッセージヘッダを読み込む
imap_headers --  メールボックス内の、すべてのメッセージのヘッダを返す
imap_last_error --  ページリクエスト時に生じた直近の IMAP エラーを返す
imap_list -- メールボックスのリストを読み込む
imap_listmailbox -- imap_list() のエイリアス
imap_listscan --  メールボックスの一覧を読み込み、受け取った文字列でメールボックスを 検索する
imap_listsubscribed -- imap_lsub() のエイリアス
imap_lsub -- 購読しているすべてのメールボックスの一覧を得る
imap_mail_compose --  指定したエンベロープおよびボディセクションに基づいて MIME メッセージを作成する
imap_mail_copy -- 指定されたメッセージをメールボックスにコピーする
imap_mail_move --  指定されたメッセージをメールボックスに移動する
imap_mail --  e-mail メッセージを送信する
imap_mailboxmsginfo -- 現在のメールボックスに関する情報を得る
imap_mime_header_decode -- MIME ヘッダ要素をデコードする
imap_msgno -- 指定した UID のメッセージ番号を返す
imap_num_msg --  現在のメールボックスのメッセージ数を取得する
imap_num_recent -- 現在のメールボックスにある新規メッセージ数を取得する
imap_open --  メールボックスへの IMAP ストリームをオープンする
imap_ping -- IMAP ストリームがアクティブかどうかを調べる
imap_qprint -- quoted-printable 文字列を 8 ビット文字列に変換する
imap_renamemailbox -- メールボックスの名前を変更する
imap_reopen -- 新規メールボックスへの IMAP ストリームを再度オープンする
imap_rfc822_parse_adrlist -- アドレス文字列を解釈します
imap_rfc822_parse_headers -- 文字列からメールヘッダを解釈する
imap_rfc822_write_address --  指定したメールボックス、ホスト、個人情報を適当にフォーマットされた 電子メールアドレスにして返す
imap_scanmailbox -- imap_listscan() のエイリアス
imap_search --  指定した検索条件にマッチするメッセージを配列として返す
imap_set_quota -- 指定したメールボックスにクォータを設定する
imap_setacl --  指定したメールボックスの ACL を設定する
imap_setflag_full -- メッセージにフラグをセットする
imap_sort -- メッセージヘッダの配列をソートする
imap_status --  現在のメールボックス以外のメールボックスのステータス情報を返す
imap_subscribe -- メールボックスを購読する
imap_thread --  スレッド化したメッセージのツリーを返す
imap_timeout --  imap タイムアウトを設定あるいは取得する
imap_uid --  指定したメッセージシーケンス番号の UID を返す
imap_undelete -- 削除マークがついているメッセージのマークをはずす
imap_unsubscribe -- メールボックスの購読をやめる
imap_utf7_decode --  修正版 UTF-7 エンコードされた文字列をデコードする
imap_utf7_encode --  ISO-8859-1 文字列を修正版 UTF-7 テキストにに変換する
imap_utf8 --  MIME エンコードされたテキストを UTF-8 に変換する