Index: phpdoc/ja/functions/imap.xml diff -u phpdoc/ja/functions/imap.xml:1.17 phpdoc/ja/functions/imap.xml:1.18 --- phpdoc/ja/functions/imap.xml:1.17 Sat Mar 3 16:53:36 2001 +++ phpdoc/ja/functions/imap.xml Thu Apr 12 08:30:00 2001 @@ -83,6 +83,60 @@ url="&url.imap.book;">Managing IMAPでも得ることができます。 + + + + imap_8bit + + 8bit 文字列を quoted-printable 文字列に変換する + + + + 説明 + + + string imap_8bit + string string + + + + (RFC2045, section 6.7 + に基づき)8bit 文字列をquoted-printable文字列に変換します。 + + + quoted-printable文字列を返します。 + + + imap_qprintも参照下さい。 + + + + + + + imap_alerts + + ページリクエストの間または最後にスタックがリセットされて以来発生した + 全てのIMAP警告メッセージを返す + + + + 説明 + + + array imap_alerts + void + + + + この関数は、直近に imap_alerts をコールして + 以来、またはページ処理を開始して以来生成された 全 IMAP 警告メッセー + ジの配列を得ます。imap_alerts がコールされた + 場合、カレントのスタックは、処理後にクリアされます。IMAP 規約では、 + これらのメッセージをユーザに渡すことが規定されています。 + + + @@ -173,6 +227,32 @@ + + + imap_binary + 8ビット文字列をbase64文字列に変換する + + + 説明 + + + string imap_binary + string string + + + + (RFC2045,Section 6.8に + 基づき)8ビット文字列をbase64文字列に変換します。 + + + base64 文字列を返します。 + + + imap_base64も参照下さい。 + + + + imap_body @@ -280,6 +360,38 @@ + + + imap_clearflag_full + メッセージのフラグをクリアする + + + 説明 + + + string imap_clearflag_full + int stream + string sequence + string flag + string options + + + + この関数は、指定したシーケンスのメッセージのフラグからに指定したフラグ + を削除します。設定可能なフラグは、(RFC2060で定義された) "\\Seen", + "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 + + + オプションはビットマスクであり、以下の組み合わせとなります。 + + + ST_UID シーケンス引数はシーケンス番号の代わりに UID を含みます + + + + + + imap_close @@ -478,6 +590,32 @@ + + + imap_errors + + ページのリクエストの間かエラースタックがリセットされて以来 + 生じた全てのIMAPエラーを返す + + + + 説明 + + + array imap_errors + void + + + + この関数は、最後に imap_errors コールを + 行ってからまたはそのページの処理を開始してから + 発生した全ての IMAP エラーメッセージの配列を返します。 + imap_errors がコールされた場合、エラースタックは + 処理後にクリアされます。 + + + + imap_expunge @@ -505,6 +643,125 @@ + + + imap_fetch_overview + + 指定したメッセージのヘッダ情報の概要を読む + + + + 説明 + + + array imap_fetch_overview + int imap_stream + string sequence + + + + この関数はメールヘッダを取得し、その内容の概要を返します。 + オブジェクトの配列を返します。 + 各ヘッダを次のように記述するオブジェクトの配列を返します。 + + + + subject - メッセージの題名(subject) + + + + + from - 送信者 + + + + + date - 送信日 + + + + + message_id - メッセージID + + + + + references - このメッセージIDへのリファレンス + + + + + size - サイズ(バイト数) + + + + + uid - メールボックスにおけるこのメッセージのUID + + + + + msgno - メールボックスにおけるこのメッセージのメッセージ番号 + + + + + recent - このメッセージのrecentフラグの有無 + + + + + flagged - このメッセージのフラグの有無 + + + + + answered - このメッセージの返信済フラグの有無 + + + + + deleted - このメッセージの削除フラグの有無 + + + + + seen - このメッセージの既読フラグの有無 + + + + + draft - このメッセージのドラフトフラグの有無 + + + + + + + <function>imap_fetch_overview</function> の例 + +$mbox = imap_open ("{your.imap.host:143}","username","password") + || die("can't connect: ".imap_last_error()); + +$overview = imap_fetch_overview ($mbox,"2,4:6",0); + +if(is_array($overview)) { + reset($overview); + while( list($key,$val) = each($overview)) { + print $val->msgno + . " - " . $val->date + . " - " . $val->subject + . "\n"; + } +} + +imap_close ($mbox); + + + + + + imap_fetchbody @@ -554,9 +811,49 @@ + + imap_fetchstructureも参照下さい。 + + + + imap_fetchheader + メッセージのヘッダを返す + + + 説明 + + + stringimap_fetchheader + int imap_stream + int msgno + int flags + + + + この関数は、指定したメッセージのヘッダーを完全でフィルターリング + されていないRFC822フォー + マットのテキスト文字列として取得し、テキスト文字列を返します。 + + + オプションは次のようになります。 + + +FT_UID msgno 引数は UID である +FT_INTERNAL 返される文字列を "internal" フォーマットとする。 + ただし、CRLF 改行は例外とする。 +FT_PREFETCHTEXT RFC822.TEXT は同時に事前に取得する必要があります。 + これは、メッセージテキスト全体を取得したい場合にIMAP + 接続において別の RTT を回避します。 + (例えば、"ローカルファイルに保存する"操作) + + + + + + imap_fetchstructure @@ -722,259 +1019,88 @@ + + imap_fetchbodyも参照下さい。 + - + - imap_headerinfo - メッセージヘッダを読み込む + imap_get_quota + + クオータレベルの設定、メールボックス毎の使用状況を取得する + 説明 - object imap_headerinfo + array imap_get_quota int imap_stream - int msg_number - int - - fromlength - - - int - - subjectlength - - - string - - defaulthost - - + string quota_root - この関数は、様々なヘッダー要素を有するオブジェクトを返します。 + 指定したメールボックスのlimitとusageをキーとした整数値を配列とし + て返します。limitの値は、このメールボックスで最大使用可能な大きさ + を表します。usageの値は、このメールボックスの現在の使用状況を示し + ます。失敗した場合に FALSE を返します。 - - - - remail,date,Date,subject,Subject,in_reply_to,message_id,newsgroups, - followup_to,references - - message flags: - Unseen - 'U' if unseen, ' ' if seen - Answered - 'A' if answered, ' ' if unanswered - Deleted - 'D' if deleted, ' ' if not deleted - Draft - 'X' if draft, ' ' if not draft - Flagged - 'F' if flagged, ' ' if not flagged - - toaddress (to: 行?、最大 1024 文字) - - to[] (TO 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - fromaddress (from: 行全体、最大 1024 文字) - - from[] (From 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - ccaddress (cc: 行全体、最大 1024 文字) - cc[] (Cc 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - bccaddress (bcc: 行全体、最大 1024 文字)(full bcc line, up to 1024 characters) - bcc[] (Bcc 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - reply_toaddress (reply_to: 行全体、最大 1024 文字) - reply_to[] (Reply_to 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - senderaddress (sender: 行全体、最大 1024 文字) - sender[] (sender 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - return_path (return-path: 行全体、最大 1024 文字) - return_path[] (return_path 行から、以下の要素を含むオブジェクト配列を返します) - personal - adl - mailbox - host - - udate ( UNIX 時間で表した mail メッセージの日付) - - fetchfrom (fromlength 文字に適合するようフォーマットされた from 行) - fetchsubject (subjectlength 文字に適合するようフォーマットされた subject 行) - - + + この関数は、現在、c-client2000 を使用しているユーザのみ使用可能で + す。 - - - - - - imap_header - メッセージのヘッダを読む - - - 説明 - - - object imap_header - int imap_stream - int msg_number - int - - fromlength - - - int - - subjectlength - - - string - - defaulthost - - - - - この関数は、imap_headerinfoへのエイリアスで - あり、全く同様に動作します。 + imap_stream は、 + imap_statusから返された値とする必要がありま + す。クオータ関数を使用するには、このストリームをメール管理者とし + てオープンする必要があります。quota_root + は、通常、user.name という形式にする必要があります。ただし、name + は情報を取得したいメールボックスの名前です。 - - - - - - imap_rfc822_parse_headers - 文字列からメールヘッダを解釈する - - - 説明 - - - object imap_rfc822_parse_headers - string headers - string - - defaulthost - - - - - この関数は複数のヘッダ要素を有するオブジェクトを返します。 - この関数はimap_headerに似ていますが、 - フラグおよび他の要素はIMAPサーバーから取得されるところが異なります。 + + <function>imap_get_quota</function>の例 + +$mbox = imap_open("{your.imap.host}","mailadmin","password",OP_HALFOPEN) + || die("接続できません: ".imap_last_error()); + +$quota_value = imap_get_quota($mbox, "user.kalowsky"); +if(is_array($quota_value)) { + print "Usage level is: " . $quota_value['usage']; + print "Limit level is: " . $quota_value['limit']; +} + +imap_close($mbox); + + + + + imap_open, + imap_set_quota も参照下さい。 - + - imap_headers + imap_getmailboxes - メールボックス内の、すべてのメッセージのヘッダを返す + メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す 説明 - array imap_headers + array imap_getmailboxes int imap_stream + string ref + string pattern - ヘッダ情報でフォーマットされた文字列の配列を返します。1 つの - メールメッセージ毎に 1 つの要素が格納されます。 - - - - - - - imap_listmailbox - メールボックスのリストを読む - - - 説明 - - - array imap_listmailbox - int imap_stream - string ref - string pattern - - - - メールボックス名を保持する配列を返します。 - refおよびpattern - の説明については、imap_getmailboxesを参照下さい。 - - - - <function>imap_listmailbox</function> の例 - -$mbox = imap_open("{your.imap.host}","username","password",OP_HALFOPEN) - || die("can't connect: ".imap_last_error()); - -$list = imap_listmailbox($mbox,"{your.imap.host}","*"); -if(is_array($list)) { - reset($list); - while (list($key, $val) = each($list)) - print imap_utf7_decode($val)."<br>\n"; -} else - print "imap_listmailbox failed: ".imap_last_error()."\n"; - -imap_close($mbox); - - - - - - - - - imap_getmailboxes - - メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す - - - - 説明 - - - array imap_getmailboxes - int imap_stream - string ref - string pattern - - - メールボックス情報を有するオブジェクトの配列を返します。各オブジェクトは、 メールボックスの完全な名前である name、 このメールボックスの階層の区切りを示す属性delimiter、 @@ -1057,88 +1183,6 @@ - - - imap_get_quota - - クオータレベルの設定、メールボックス毎の使用状況を取得する - - - - 説明 - - - array imap_get_quota - int imap_stream - string quota_root - - - - 指定したメールボックスのlimitとusageをキーとした整数値を配列とし - て返します。limitの値は、このメールボックスで最大使用可能な大きさ - を表します。usageの値は、このメールボックスの現在の使用状況を示し - ます。失敗した場合に FALSE を返します。 - - - この関数は、現在、c-client2000 を使用しているユーザのみ使用可能で - す。 - - - imap_stream は、 - imap_statusから返された値とする必要がありま - す。クオータ関数を使用するには、このストリームをメール管理者とし - てオープンする必要があります。quota_root - は、通常、user.name という形式にする必要があります。ただし、name - は情報を取得したいメールボックスの名前です。 - - - - <function>imap_get_quota</function>の例 - -$mbox = imap_open("{your.imap.host}","mailadmin","password",OP_HALFOPEN) - || die("接続できません: ".imap_last_error()); - -$quota_value = imap_get_quota($mbox, "user.kalowsky"); -if(is_array($quota_value)) { - print "Usage level is: " . $quota_value['usage']; - print "Limit level is: " . $quota_value['limit']; -} - -imap_close($mbox); - - - - - imap_open, - imap_set_quota も参照下さい。 - - - - - - - imap_listsubscribed - 購読中のすべてのメールボックス一覧 - - - 説明 - - - array imap_listsubscribed - int imap_stream - string ref - string pattern - - - - 購読中のすべてのメールボックスの配列を返します。 - この関数はほぼimap_listmailboxと同じですが、 - 自分がログインしているユーザーが購読中のメールボックスのみを - 返します。 - - - - imap_getsubscribed @@ -1161,1027 +1205,1082 @@ - + - imap_mail_copy - 指定されたメッセージをメールボックスにコピーする - + imap_header + メッセージのヘッダを読む 説明 - int imap_mail_copy + object imap_header int imap_stream - string msglist - string mbox + int msg_number int - flags + fromlength + + + int + + subjectlength + + + string + + defaulthost - - 成功するとtrue、失敗するとfalseを返します。 - - msglist で指定されたメッセージを、指定した - メールボックスにコピーします。msglist は、 - (RFC2060に記述されたよ - うに)ただのメッセージ番号ではなく、範囲を示します。 - - - flags はビットマスクであり、以下の組み合わせです。 - - - - CP_UID - UIDS を含む処理の数 - - - - - CP_MOVE - コピー後にメールボックスからメッセージを削除 - - - + この関数は、imap_headerinfoへのエイリアスで + あり、全く同様に動作します。 - + - imap_mail_move - - 指定されたメッセージをメールボックスに移動する - + imap_headerinfo + メッセージヘッダを読み込む 説明 - int imap_mail_move + object imap_headerinfo int imap_stream - string msglist - string mbox + int msg_number int - flags + fromlength + + + int + + subjectlength + + + string + + defaulthost - - msglist で指定されたメッセージを、指定された - メールボックスに移動します。msglist は - 単なるメッセージ番号でなく、 - (RFC2060で解説された) - メッセージの範囲を指定します。 - - - flagsはビットマスクであり、指定できるオプションは1つだけです。 - - - - CP_UID - シーケンス番号にUIDを含む - - - - - 成功するとtrue、失敗するとfalseを返します。 + この関数は、様々なヘッダー要素を有するオブジェクトを返します。 - - + + + + remail,date,Date,subject,Subject,in_reply_to,message_id,newsgroups, + followup_to,references - - - imap_num_msg - - 現在のメールボックスのメッセージ数を取得する - - - - 説明 - - - int imap_num_msg - int stream_id - - - - 現在のメールボックスにあるメッセージ数を返します。 - - - + message flags: + Unseen - 'U' if unseen, ' ' if seen + Answered - 'A' if answered, ' ' if unanswered + Deleted - 'D' if deleted, ' ' if not deleted + Draft - 'X' if draft, ' ' if not draft + Flagged - 'F' if flagged, ' ' if not flagged + toaddress (to: 行?、最大 1024 文字) + + to[] (TO 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + fromaddress (from: 行全体、最大 1024 文字) + + from[] (From 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + ccaddress (cc: 行全体、最大 1024 文字) + cc[] (Cc 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + bccaddress (bcc: 行全体、最大 1024 文字)(full bcc line, up to 1024 characters) + bcc[] (Bcc 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + reply_toaddress (reply_to: 行全体、最大 1024 文字) + reply_to[] (Reply_to 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + senderaddress (sender: 行全体、最大 1024 文字) + sender[] (sender 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + return_path (return-path: 行全体、最大 1024 文字) + return_path[] (return_path 行から、以下の要素を含むオブジェクト配列を返します) + personal + adl + mailbox + host + + udate ( UNIX 時間で表した mail メッセージの日付) + + fetchfrom (fromlength 文字に適合するようフォーマットされた from 行) + fetchsubject (subjectlength 文字に適合するようフォーマットされた subject 行) + + + + + - + - imap_num_recent - 現在のメールボックスにある新規メッセージの数の取得 + imap_headers + + メールボックス内の、すべてのメッセージのヘッダを返す + 説明 - int imap_num_recent + array imap_headers int imap_stream - 現在のメールボックスにある新しいメッセージの数を返します。 + ヘッダ情報でフォーマットされた文字列の配列を返します。1 つの + メールメッセージ毎に 1 つの要素が格納されます。 - + - imap_open + imap_last_error - メールボックスへのIMAPストリームをオープンする + ページリクエスト時に生じた直近の IMAP エラーを返す 説明 - int imap_open - string mailbox - string username - string password - int - - flags - - + string imap_last_error + void - - 成功するとIMAPストリームを返し、失敗するとfalseを返します。この関 - 数は、POP3やNNTPサーバーへのストリームをオープンする際にも使用可 - 能です。しかし、いくつかの関数および機能はIMAPサーバーでは利用で - きません。 - - メールボックス名(mailbox)は、サーバー名の部分と使用するサーバーに - おけるメールボックスへのパスから構成されます。特別な名前INBOXは、 - カレントのユーザの個人メールボックスを意味します。サーバー部は'{' - および'}'で括られ、サーバー名またはIPアドレス、('/'で始まる)プロ - トコル指定、そして':'から始まるオプションのポート指定子から構成さ - れます。サーバー部は、全てのmailboxパラメータで必須です。 - ASCII空間で出力可能な文字以外の外国文字を含むメールボックス名は - imap_utf7_encodeでエンコードする必要がありま - す。 + この関数は、カレントページに生じた直近のIMAPエラーメッセージの + 全文を返します。エラースタックは変更されません。 + imap_last_error を続けてコールした際、 + コール間に新規エラーが生じていない場合は、同じエラーが返されます。 + + + + + + imap_listmailbox + メールボックスのリストを読む + + + 説明 + + + array imap_listmailbox + int imap_stream + string ref + string pattern + + - オプションは、ビットマスクであり、以下の組み合わせとなります。 - - - - OP_READONLY - メールボックスを読みこみのみ可でオープン - - - - - OP_ANONYMOUS - news に関して.newsrcの使用・更新をしない(NNTPのみ) - - - - - OP_HALFOPEN - IMAPおよびNNTP名について、接続をオープンするがメールボックスをオープンしない - - - - - CL_EXPUNGE - メールボックスを閉じた際に、自動的にメールボックスを削除する - - - + メールボックス名を保持する配列を返します。 + refおよびpattern + の説明については、imap_getmailboxesを参照下さい。 - ローカルマシンのポート143で実行しているIMAPサーバーに接続 - する際には、以下のようにします。 - + + <function>imap_listmailbox</function> の例 -$mbox = imap_open ("{localhost:143}INBOX","user_id","password"); - - - ローカルマシンのポート110で実行しているPOP3サーバーに接続する際には、 - 以下のようにします。 - - -$mbox = imap_open ("{localhost/pop3:110}INBOX","user_id","password"); - - - ローカルマシンのポート119で実行しているNNTPサーバーに接続する際には、 - 以下のようにします。 - - -$nntp = imap_open ("{localhost/nntp:119}comp.test","",""); +$mbox = imap_open("{your.imap.host}","username","password",OP_HALFOPEN) + || die("can't connect: ".imap_last_error()); + +$list = imap_listmailbox($mbox,"{your.imap.host}","*"); +if(is_array($list)) { + reset($list); + while (list($key, $val) = each($list)) + print imap_utf7_decode($val)."<br>\n"; +} else + print "imap_listmailbox failed: ".imap_last_error()."\n"; + +imap_close($mbox); - - リモートサーバーに接続するには、"localhost" を接続したいサーバーの - 名前または IP アドレスに代えてください。 + - - - <function>imap_open</function>の例 - -$mbox = imap_open("{your.imap.host:143}","username","password"); - -echo "<p><h1>Mailboxes</h1>\n"; -$folders = imap_listmailbox($mbox, "{your.imap.host:143}", "*"); -if($folders == false) - echo "Call failed<br>\n"; -else - while(list($key,$val) = each($folders)) - echo $val."<br>\n"; + + -echo "<p><h1>Headers in INBOX</h1>\n"; -$headers = imap_headers($mbox); -if($headers == false) - echo "Call failed<br>\n"; -else - while(list($key,$val) = each($headers)) - echo $val."<br>\n"; + + + imap_listsubscribed + 購読中のすべてのメールボックス一覧 + + + 説明 + + + array imap_listsubscribed + int imap_stream + string ref + string pattern + + + + 購読中のすべてのメールボックスの配列を返します。 + この関数はほぼimap_listmailboxと同じですが、 + 自分がログインしているユーザーが購読中のメールボックスのみを + 返します。 + + + -imap_close($mbox); - - + + + imap_mail + + e-mailメッセージを送信する + + + + 説明 + + + string imap_mail + string to + string subject + string message + string + + additional_headers + + + string + + cc + + + string + + bcc + + + string + + rpath + + + + + + この関数は、現在、PHP 3でのみ利用可能です。 - + - imap_ping - IMAP ストリームの有効性チェック + imap_mail_compose + + 指定したエンベロープおよびボディーセクションに基づきMIMEメッセー + ジを作成 + 説明 - int imap_ping - int imap_stream + string imap_mail_compose + array envelope + array body - ストリームがまだ有効であればtrueを、そうでなければfalseを返します。 - imap_ping 関数は、ストリームに ping を行い、 - まだ有効であるかどうかをチェックします。これにより新しいメールの到着 - を知る場合もあります。これは、有効時間のタイムアウトが設定 - してあるサーバに対して "接続を持続させる" ことに加え、定期的な - "新着メールのチェック" としてもよい方法です。 - (PHPスクリプトはこれほどの長時間実行されることはほとんどないので、 - この関数が実際に役に立つかどうかは定かではありません。) + + <function>imap_mail_compose</function> の例 + +<?php + +$envelope["from"]="musone <email protected>"; +$envelope["to"]="musone <email protected>"; +$envelope["cc"]="musone <email protected>"; + +$part1["type"]=TYPEMULTIPART; +$part1["subtype"]="mixed"; + +$filename="/tmp/imap.c.gz"; +$fp=fopen($filename,"r"); +$contents=fread($fp,filesize($filename)); +fclose($fp); + +$part2["type"]=TYPEAPPLICATION; +$part2["encoding"]=ENCBINARY; +$part2["subtype"]="octet-stream"; +$part2["description"]=basename($filename); +$part2["contents.data"]=$contents; + +$part3["type"]=TYPETEXT; +$part3["subtype"]="plain"; +$part3["description"]="description3"; +$part3["contents.data"]="contents.data3\n\n\n\t"; + +$body[1]=$part1; +$body[2]=$part2; +$body[3]=$part3; + +echo nl2br(imap_mail_compose($envelope,$body)); + +?> + + - + - imap_renamemailbox - メールボックスの名前を変更する + imap_mail_copy + 指定されたメッセージをメールボックスにコピーする + 説明 - int imap_renamemailbox + int imap_mail_copy int imap_stream - string old_mbox - string new_mbox + string msglist + string mbox + int + + flags + + - - この関数は、古いメールボックスを新しいメールボックスにリネーム - します。 (mbox名のフォーマットについては - imap_openを参照下さい) - 成功するとtrue、失敗するとfalseを返します。 - mboxのフォーマットについては、 - imap_createmailbox, - imap_deletemailbox, - imap_openも参照下さい。 + msglist で指定されたメッセージを、指定した + メールボックスにコピーします。msglist は、 + (RFC2060に記述されたよ + うに)ただのメッセージ番号ではなく、範囲を示します。 + + + flags はビットマスクであり、以下の組み合わせです。 + + + + CP_UID - UIDS を含む処理の数 + + + + + CP_MOVE - コピー後にメールボックスからメッセージを削除 + + + - + - imap_reopen - 新規メールボックスへのIMAP ストリームを再度オープンする + imap_mail_move + + 指定されたメッセージをメールボックスに移動する 説明 - int imap_reopen + int imap_mail_move int imap_stream - string mailbox - string + string msglist + string mbox + int - flags + flags - - 成功するとtrue、失敗するとfalseを返します。 - - この関数は、IMAPまたはNNTPサーバー上の新しいメールボックスに対して - 指定されたストリームを再オープンします。 + msglist で指定されたメッセージを、指定された + メールボックスに移動します。msglist は + 単なるメッセージ番号でなく、 + (RFC2060で解説された) + メッセージの範囲を指定します。 - オプションは、ビットマスクであり、以下の組み合わせとなります。 + flagsはビットマスクであり、指定できるオプションは1つだけです。 - - OP_READONLY - メールボックスを読みこみのみ可でオープン - - - - - OP_ANONYMOUS - news に関して .newsrc の使用・更新をしない (NNTPのみ) - - - - OP_HALFOPEN - IMAP および NNTP 名について、接続をオープンするが - メールボックスをオープンしない - - - - - CL_EXPUNGE - メールボックスを閉じた際に、自動的にメールボック - スを削除する (imap_deleteおよび - imap_expungeも参照下さい ) + CP_UID - シーケンス番号にUIDを含む - 成功時にtrue、エラー時にfalseを返します。 + 成功するとtrue、失敗するとfalseを返します。 - + - imap_set_quota - 指定したメールボックスにクオータを設定する + imap_mailboxmsginfo + 現在のメールボックスに関する情報を得る 説明 - int imap_set_quota + array imap_mailboxmsginfo int imap_stream - string quota_root - int quota_limit - - メールボックス単位でクオータ上限(最大容量)を設定します。この関数 - は、メール管理者のアカウントでオープンされている - imap_stream を必要とします。他のユーザでオー - プンされている場合は、この関数は動作しません。 - - この関数は、c-client2000ライブラリのユーザのみ使用可能です。 + 現在のメールボックスに関する情報を返します。 + 失敗した場合にfalseを返します。 - - imap_stream は、 - imap_openコール時に返されたストリームポイン - タです。このストリームはメール管理者としてオープンする必要があり - ます。そうでない場合は、この関数は動作しません。 - quota_root は、クオータを設定するメールボッ - クスです。これは、メールボックスのIMAP標準フォーマット - 'user.name' に基づき指定する必要があります。 - quota_limit は、 - quota_root の最大サイズ(KB単位)です。 + + imap_mailboxmsginfo 関数は、 + サーバーにおける現在のメールボックスのステータスを調べ、 + 次のプロパティを有するオブジェクトの情報を返します。 + この関数はimap_statusに似ていますが、 + メールボックスの中の全てのメッセージのサイズを合計します。 + このため、実行時間は幾分余計にかかります。 - 成功時にtrue、エラー時にfalseを返します。 +

+ mailboxのプロパティ + + + + Date + 最終変更日 + + + Driver + ドライバ + + + Mailbox + メールボックスの名前 + + + Nmsgs + メッセージ数 + + + Recent + 最近のメッセージの数 + + + Unread + 未読のメッセージの数 + + + Size + メールボックスのサイズ + + + +
- <function>imap_set_quota</function>の例 + <function>imap_mailboxmsginfo</function> の例 -$mbox = imap_open ("{your.imap.host:143}", "mailadmin", "password"); +<?php -if(!imap_set_quota($mbox, "user.kalowsky", 3000)) { - print "Error in setting quota\n"; - return; +$mbox = imap_open("{your.imap.host}INBOX","username", "password") + || die("can't connect: ".imap_last_error()); + +$check = imap_mailboxmsginfo($mbox); + +if($check) { + print "Date: " . $check->Date ."<br>\n" ; + print "Driver: " . $check->Driver ."<br>\n" ; + print "Mailbox: " . $check->Mailbox ."<br>\n" ; + print "Messages: ". $check->Nmsgs ."<br>\n" ; + print "Recent: " . $check->Recent ."<br>\n" ; + print "Unread: " . $check->Unread ."<br>\n" ; + print "Deleted: " . $check->Deleted ."<br>\n" ; + print "Size: " . $check->Size ."<br>\n" ; +} else { + print "imap_check() failed: ".imap_last_error(). "<br>\n"; } - + imap_close($mbox); + +?> - - imap_open, - imap_set_quota も参照下さい。 - - + - imap_subscribe - メールボックスの購読 + imap_mime_header_decode + MIMEヘッダーエレメントをデコードする 説明 - int imap_subscribe - int imap_stream - string mbox + array imap_header_decode + string text - - 新規メールボックスを購読します。 - - 成功するとtrue、失敗するとfalseを返します。 - - - - - - - imap_undelete - 削除マークがついているメッセージのマークをはずす - - - 説明 - - - int imap_undelete - int imap_stream - int msg_number - - - - この関数は、imap_deleteまたは - imap_mail_moveによりセットされた指定されたメッ - セージの削除フラグをはずします。 + 関数imap_mime_header_decodeは、非ASCIIテキス + トのMIMEメッセージヘッダエクステンションをデコードします。 + (RFC2047を参照下さい) + デコードされた要素は、オブジェクトの配列で返されます。 + ただし、各オブジェクトは二つのプロパティ"charset"と"text"を有しています。 + 要素がエンコードされていない場合、言い替えるとプレーンなUS-ASCIIの場合、 + この要素の"charset"プロパティは"default"に設定されます。 - 成功するとtrue、失敗するとfalseを返します。 - - - + + <function>imap_mime_header_decode</function>の例 + +$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld <email protected>>"; - - - imap_unsubscribe - メールボックスの購読をやめる - - - 説明 - - - int imap_unsubscribe - int imap_stream - string mbox - - - - 指定されたメールボックスの購読を中止します。 +$elements=imap_mime_header_decode($text); +for($i=0;$i<count($elements);$i++) { + echo "Charset: {$elements[$i]->charset}\n"; + echo "Text: {$elements[$i]->text}\n\n"; +} + + + - 成功するとtrue、失敗するとfalseを返します。 + 上の例には二つの要素があります。最初の要素はISO-8859-1、 + 2番目の要素はプレーンなUS-ASCIIで事前にエンコードされています。 - + - imap_qprint - quoted-printable 文字列を 8 ビット文字列に変換する - + imap_msgno + 指定したUIDのメッセージ番号を返す 説明 - string imap_qprint - string string + int imap_msgno + int imap_stream + int uid - - (RFC2045, section 6.7 - に基づき)quoted-printable 文字列を 8 ビット文字列に変換します。 - - - 8ビット(バイナリ)文字列を返します。 - - imap_8bitも参照下さい。 + この関数は、指定したUIDnメッセージ番号を返します。 + これは、imap_uid の逆の動作となります。 - + - imap_8bit + imap_num_msg - 8bit 文字列を quoted-printable 文字列に変換する + 現在のメールボックスのメッセージ数を取得する 説明 - string imap_8bit - string string + int imap_num_msg + int stream_id - - (RFC2045, section 6.7 - に基づき)8bit 文字列をquoted-printable文字列に変換します。 - - quoted-printable文字列を返します。 + 現在のメールボックスにあるメッセージ数を返します。 - imap_qprintも参照下さい。 + imap_num_recent および + imap_status も参照下さい。 - + - imap_binary - 8ビット文字列をbase64文字列に変換する + imap_num_recent + 現在のメールボックスにある新規メッセージの数の取得 - + 説明 - string imap_binary - string string + int imap_num_recent + int imap_stream - - (RFC2045,Section 6.8に - 基づき)8ビット文字列をbase64文字列に変換します。 - - base64 文字列を返します。 + 現在のメールボックスにある新しいメッセージの数を返します。 - imap_base64も参照下さい。 + imap_num_msg および + imap_status も参照下さい。 - - + + - imap_scanmailbox + imap_open - メールボックスのリストを読み、メールボックスのテキストにおいて - 文字列を検索する + メールボックスへのIMAPストリームをオープンする 説明 - array imap_scanmailbox - int imap_stream - string content + int imap_open + string mailbox + string username + string password + int + + flags + + - メールボックスのテキストにcontentがあるメー - ルボックスの名前を有する配列を返します。この関数は - imap_listmailboxに似ていますが、メールボック - スのデータ中に文字列contentが存在するかど - うかの確認も行います。 + 成功するとIMAPストリームを返し、失敗するとfalseを返します。この関 + 数は、POP3やNNTPサーバーへのストリームをオープンする際にも使用可 + 能です。しかし、いくつかの関数および機能はIMAPサーバーでは利用で + きません。 + + + メールボックス名(mailbox)は、サーバー名の部分と使用するサーバーに + おけるメールボックスへのパスから構成されます。特別な名前INBOXは、 + カレントのユーザの個人メールボックスを意味します。サーバー部は'{' + および'}'で括られ、サーバー名またはIPアドレス、('/'で始まる)プロ + トコル指定、そして':'から始まるオプションのポート指定子から構成さ + れます。サーバー部は、全てのmailboxパラメータで必須です。 + ASCII空間で出力可能な文字以外の外国文字を含むメールボックス名は + imap_utf7_encodeでエンコードする必要がありま + す。 + + + オプションは、ビットマスクであり、以下の組み合わせとなります。 + + + + OP_READONLY - メールボックスを読みこみのみ可でオープン + + + + + OP_ANONYMOUS - news に関して.newsrcの使用・更新をしない(NNTPのみ) + + + + + OP_HALFOPEN - IMAPおよびNNTP名について、接続をオープンするがメールボックスをオープンしない + + + + + CL_EXPUNGE - メールボックスを閉じた際に、自動的にメールボックスを削除する + + + + + + ローカルマシンのポート143で実行しているIMAPサーバーに接続 + する際には、以下のようにします。 + + +$mbox = imap_open ("{localhost:143}INBOX","user_id","password"); + + + ローカルマシンのポート110で実行しているPOP3サーバーに接続する際には、 + 以下のようにします。 + + +$mbox = imap_open ("{localhost/pop3:110}INBOX","user_id","password"); + + + ローカルマシンのポート119で実行しているNNTPサーバーに接続する際には、 + 以下のようにします。 + + +$nntp = imap_open ("{localhost/nntp:119}comp.test","",""); + + + リモートサーバーに接続するには、"localhost" を接続したいサーバーの + 名前または IP アドレスに代えてください。 + + + + <function>imap_open</function>の例 + +$mbox = imap_open("{your.imap.host:143}","username","password"); + +echo "<p><h1>Mailboxes</h1>\n"; +$folders = imap_listmailbox($mbox, "{your.imap.host:143}", "*"); +if($folders == false) + echo "Call failed<br>\n"; +else + while(list($key,$val) = each($folders)) + echo $val."<br>\n"; + +echo "<p><h1>Headers in INBOX</h1>\n"; +$headers = imap_headers($mbox); +if($headers == false) + echo "Call failed<br>\n"; +else + while(list($key,$val) = each($headers)) + echo $val."<br>\n"; + +imap_close($mbox); + + - - + + - imap_mailboxmsginfo - 現在のメールボックスに関する情報を得る + imap_ping + IMAP ストリームの有効性チェック 説明 - array imap_mailboxmsginfo + int imap_ping int imap_stream - 現在のメールボックスに関する情報を返します。 - 失敗した場合にfalseを返します。 - - - imap_mailboxmsginfo 関数は、 - サーバーにおける現在のメールボックスのステータスを調べ、 - 次のプロパティを有するオブジェクトの情報を返します。 - この関数はimap_statusに似ていますが、 - メールボックスの中の全てのメッセージのサイズを合計します。 - このため、実行時間は幾分余計にかかります。 + ストリームがまだ有効であればtrueを、そうでなければfalseを返します。 - - mailboxのプロパティ - - - - Date - 最終変更日 - - - Driver - ドライバ - - - Mailbox - メールボックスの名前 - - - Nmsgs - メッセージ数 - - - Recent - 最近のメッセージの数 - - - Unread - 未読のメッセージの数 - - - Size - メールボックスのサイズ - - - -
+ imap_ping 関数は、ストリームに ping を行い、 + まだ有効であるかどうかをチェックします。これにより新しいメールの到着 + を知る場合もあります。これは、有効時間のタイムアウトが設定 + してあるサーバに対して "接続を持続させる" ことに加え、定期的な + "新着メールのチェック" としてもよい方法です。 + (PHPスクリプトはこれほどの長時間実行されることはほとんどないので、 + この関数が実際に役に立つかどうかは定かではありません。)
- - - <function>imap_mailboxmsginfo</function> の例 - -<?php - -$mbox = imap_open("{your.imap.host}INBOX","username", "password") - || die("can't connect: ".imap_last_error()); - -$check = imap_mailboxmsginfo($mbox); - -if($check) { - print "Date: " . $check->Date ."<br>\n" ; - print "Driver: " . $check->Driver ."<br>\n" ; - print "Mailbox: " . $check->Mailbox ."<br>\n" ; - print "Messages: ". $check->Nmsgs ."<br>\n" ; - print "Recent: " . $check->Recent ."<br>\n" ; - print "Unread: " . $check->Unread ."<br>\n" ; - print "Deleted: " . $check->Deleted ."<br>\n" ; - print "Size: " . $check->Size ."<br>\n" ; -} else { - print "imap_check() failed: ".imap_last_error(). "<br>\n"; -} - -imap_close($mbox); +
+
-?> - - + + + imap_qprint + quoted-printable 文字列を 8 ビット文字列に変換する + + + + 説明 + + + string imap_qprint + string string + + + + (RFC2045, section 6.7 + に基づき)quoted-printable 文字列を 8 ビット文字列に変換します。 + + + 8ビット(バイナリ)文字列を返します。 + + + imap_8bitも参照下さい。 - - + + - imap_rfc822_write_address - - 指定したメールボックス、ホスト、個人情報を適当にフォーマットされ - た電子メールアドレスにして返す - + imap_renamemailbox + メールボックスの名前を変更する 説明 - string imap_rfc822_write_address - string mailbox - string host - string personal + int imap_renamemailbox + int imap_stream + string old_mbox + string new_mbox + + この関数は、古いメールボックスを新しいメールボックスにリネーム + します。 (mbox名のフォーマットについては + imap_openを参照下さい) + - 指定したメールボックス、ホスト、個人情報を - RFC822の定義に基づき - 適当にフォーマットされた電子メールアドレスにして返します。 + 成功するとtrue、失敗するとfalseを返します。 - - <function>imap_rfc822_write_address</function> の例 - -print imap_rfc822_write_address("hartmut","cvs.php.net","Hartmut Holzgraefe")."\n"; - - + mboxのフォーマットについては、 + imap_createmailbox, + imap_deletemailbox, + imap_openも参照下さい。 - - + + - imap_rfc822_parse_adrlist - アドレス文字列を解釈します + imap_reopen + 新規メールボックスへのIMAP ストリームを再度オープンする + 説明 - string imap_rfc822_parse_adrlist - string address - string default_host + int imap_reopen + int imap_stream + string mailbox + string + + flags + + - この関数は、RFC822 - の定義に基づきアドレス文字列を解釈し、各アドレス毎にオブジェクトの - 配列を返します。4 つのオブジェクトは、以下のようになります。 + 成功するとtrue、失敗するとfalseを返します。 + + + この関数は、IMAPまたはNNTPサーバー上の新しいメールボックスに対して + 指定されたストリームを再オープンします。 + オプションは、ビットマスクであり、以下の組み合わせとなります。 - mailbox - メールボックス名 (ユーザ名) + OP_READONLY - メールボックスを読みこみのみ可でオープン - host - ホスト名 + OP_ANONYMOUS - news に関して .newsrc の使用・更新をしない (NNTPのみ) - personal - 個人名 + OP_HALFOPEN - IMAP および NNTP 名について、接続をオープンするが + メールボックスをオープンしない - adl - ドメインソースルートからのパス + CL_EXPUNGE - メールボックスを閉じた際に、自動的にメールボック + スを削除する (imap_deleteおよび + imap_expungeも参照下さい ) - - <function>imap_rfc822_parse_adrlist</function> の例 - -$address_string = "Hartmut Holzgraefe <hartmut <email protected>>, postmaster <email protected>, root"; -$address_array = imap_rfc822_parse_adrlist($address_string,"somedomain.net"); -if(! is_array($address_array)) die("somethings wrong\n"); - -reset($address_array); -while(list($key,$val)=each($address_array)){ - print "mailbox : ".$val->mailbox."<br>\n"; - print "host : ".$val->host."<br>\n"; - print "personal: ".$val->personal."<br>\n"; - print "adl : ".$val->adl."<p>\n"; -} - - + 成功時にtrue、エラー時にfalseを返します。 - - + + - imap_setflag_full - メッセージにフラグをセットする + imap_rfc822_parse_adrlist + アドレス文字列を解釈します 説明 - string imap_setflag_full - int stream - string sequence - string flag - string options + string imap_rfc822_parse_adrlist + string address + string default_host - - この関数は、指定したシーケンスのメッセージのフラグに指定したフラグを - セットし、保存します。 - - 設定可能なフラグは、(RFC2060で定義された) "\\Seen", "\\Answered", - "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 + この関数は、RFC822 + の定義に基づきアドレス文字列を解釈し、各アドレス毎にオブジェクトの + 配列を返します。4 つのオブジェクトは、以下のようになります。 - オプションはビットマスクであり、以下の組み合わせとなります。 - - - ST_UID シーケンス引数はシーケンス番号の代わりに UID を - 含みます - - + + + + mailbox - メールボックス名 (ユーザ名) + + + + + host - ホスト名 + + + + + personal - 個人名 + + + + + adl - ドメインソースルートからのパス + + + - <function>imap_setflag_full</function> の例 - -$mbox = imap_open ("{your.imap.host:143}","username","password") - || die("can't connect: ".imap_last_error()); - -$status = imap_setflag_full ($mbox,"2,5","\\Seen \\Flagged"); - -print gettype ($status)."\n"; -print $status."\n"; - -imap_close($mbox); - - - - - - - - - imap_clearflag_full - メッセージのフラグをクリアする - - - 説明 - - - string imap_clearflag_full - int stream - string sequence - string flag - string options - - - - この関数は、指定したシーケンスのメッセージのフラグからに指定したフラグ - を削除します。設定可能なフラグは、(RFC2060で定義された) "\\Seen", - "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 - - - オプションはビットマスクであり、以下の組み合わせとなります。 - - - ST_UID シーケンス引数はシーケンス番号の代わりに UID を含みます - - - - - - - - - imap_sort - - - - 説明 - - - array imap_sort - int stream - int criteria - int reverse - int options - - - - 指定したパラメータによりソートされたメッセージ番号の配列を - 返します。 - - - 逆順にソートする場合は、reverse を 1 にします。 - - - criteria は、次のどれかとします。(一つのみ) - - -SORTDATE メッセージの日付 -SORTARRIVAL 到着日付 -SORTFROM 最初の From アドレスのメールボックス -SORTSUBJECT メッセージ Subject -SORTTO 最初の To アドレスのメールボックス -SORTCC 最初の cc アドレスのメールボックス -SORTSIZE メッセージのサイズ - - - - - フラグはビットマスクであり、次の組み合わせとjります。 - - -SE_UID シーケンス番号の変わりに UID を返す -SE_NOPREFETCH 検索したメッセージを事前取得しない - - + <function>imap_rfc822_parse_adrlist</function> の例 + +$address_string = "Hartmut Holzgraefe <hartmut <email protected>>, postmaster <email protected>, root"; +$address_array = imap_rfc822_parse_adrlist($address_string,"somedomain.net"); +if(! is_array($address_array)) die("somethings wrong\n"); + +reset($address_array); +while(list($key,$val)=each($address_array)){ + print "mailbox : ".$val->mailbox."<br>\n"; + print "host : ".$val->host."<br>\n"; + print "personal: ".$val->personal."<br>\n"; + print "adl : ".$val->adl."<p>\n"; +} + + - - + + - imap_fetchheader - メッセージのヘッダを返す + imap_rfc822_parse_headers + 文字列からメールヘッダを解釈する 説明 - stringimap_fetchheader - int imap_stream - int msgno - int flags + object imap_rfc822_parse_headers + string headers + string + + defaulthost + + - - この関数は、指定したメッセージのヘッダーを完全でフィルターリング - されていないRFC822フォー - マットのテキスト文字列として取得し、テキスト文字列を返します。 - - オプションは次のようになります。 - - -FT_UID msgno 引数は UID である -FT_INTERNAL 返される文字列を "internal" フォーマットとする。 - ただし、CRLF 改行は例外とする。 -FT_PREFETCHTEXT RFC822.TEXT は同時に事前に取得する必要があります。 - これは、メッセージテキスト全体を取得したい場合にIMAP - 接続において別の RTT を回避します。 - (例えば、"ローカルファイルに保存する"操作) - - + この関数は複数のヘッダ要素を有するオブジェクトを返します。 + この関数はimap_headerに似ていますが、 + フラグおよび他の要素はIMAPサーバーから取得されるところが異なります。 - - + + - imap_uid + imap_rfc822_write_address - 指定したメッセージシーケンス番号の UID を返す + 指定したメールボックス、ホスト、個人情報を適当にフォーマットされ + た電子メールアドレスにして返す 説明 - int imap_uid - int imap_stream - int msgno + string imap_rfc822_write_address + string mailbox + string host + string personal - この関数は、指定したメッセージシーケンス番号の UID を返します。 - メッセージ番号はメールボックスの内容を変更する度に変わる可能性が - ありますが、UIDはユニークなIDであり時間が経過しても変わりません。 - この関数は、imap_msgno の逆関数です。 + 指定したメールボックス、ホスト、個人情報を + RFC822の定義に基づき + 適当にフォーマットされた電子メールアドレスにして返します。 + + + + <function>imap_rfc822_write_address</function> の例 + +print imap_rfc822_write_address("hartmut","cvs.php.net","Hartmut Holzgraefe")."\n"; + + - - - + + + - imap_msgno - 指定したUIDのメッセージ番号を返す + imap_scanmailbox + + メールボックスのリストを読み、メールボックスのテキストにおいて + 文字列を検索する + 説明 - int imap_msgno + array imap_scanmailbox int imap_stream - int uid + string content - この関数は、指定したUIDnメッセージ番号を返します。 - これは、imap_uid の逆の動作となります。 + メールボックスのテキストにcontentがあるメー + ルボックスの名前を有する配列を返します。この関数は + imap_listmailboxに似ていますが、メールボック + スのデータ中に文字列contentが存在するかど + うかの確認も行います。 - - + + imap_search @@ -2318,535 +2417,449 @@ - - UNKEYWORD "string" - キーワード "string" を有さないメッセージにマッチ - - - - - UNSEEN - 未読のメッセージにマッチ - - - - - - 例えば、Mom から送られた全ての未回答のメッセージにマッチするには、 - "UNANSWERED FROM mom"を使用する必要があります。 - 検索は、大文字小文字が区別されずに行われます。 - 検索条件のリストは、UWクライアントのCソースコードからのものであり、 - 不完全または不正確である可能性があります。 - (RFC2060, section 6.4.4も参照下さい) - - - SE_UID が有効なフラグとして設定されている場合、 - メッセージ番号の変わりに UID を有する配列が返されます。 - - - - - - - imap_last_error - - ページリクエスト時に生じた直近の IMAP エラーを返す - - - - 説明 - - - string imap_last_error - void - - - - この関数は、カレントページに生じた直近のIMAPエラーメッセージの - 全文を返します。エラースタックは変更されません。 - imap_last_error を続けてコールした際、 - コール間に新規エラーが生じていない場合は、同じエラーが返されます。 - - - - - - - imap_errors - - ペー