hirokawa Thu Apr 12 08:30:04 2001 EDT Modified files: /phpdoc/ja/functions imap.xml strings.xml /phpdoc/ja/language control-structures.xml Log: update translation.
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</ulink>でも得ることができます。 </para> </partintro> + + <refentry id="function.imap-8bit"> + <refnamediv> + <refname>imap_8bit</refname> + <refpurpose> + 8bit 文字列を quoted-printable 文字列に変換する + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>imap_8bit</function></funcdef> + <paramdef>string <parameter>string</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + (<ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>, section 6.7 + に基づき)8bit 文字列をquoted-printable文字列に変換します。 + </para> + <para> + quoted-printable文字列を返します。 + </para> + <para> + <function>imap_qprint</function>も参照下さい。 + </para> + </refsect1> + </refentry> + + <refentry id="function.imap-alerts"> + <refnamediv> + <refname>imap_alerts</refname> + <refpurpose> + +ページリクエストの間または最後にスタックがリセットされて以来発生した + 全てのIMAP警告メッセージを返す + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>imap_alerts</function></funcdef> + <paramdef>void </paramdef> + </funcprototype> + </funcsynopsis> + <para> + この関数は、直近に <function>imap_alerts</function> をコールして + 以来、またはページ処理を開始して以来生成された 全 IMAP +警告メッセー + ジの配列を得ます。<function>imap_alerts</function> がコールされた + +場合、カレントのスタックは、処理後にクリアされます。IMAP +規約では、 + +これらのメッセージをユーザに渡すことが規定されています。 + </para> + </refsect1> + </refentry> <refentry id="function.imap-append"> <refnamediv> @@ -173,6 +227,32 @@ </refsect1> </refentry> + <refentry id="function.imap-binary"> + <refnamediv> + <refname>imap_binary</refname> + <refpurpose>8ビット文字列をbase64文字列に変換する</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>imap_binary</function></funcdef> + <paramdef>string <parameter>string</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + (<ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>,Section 6.8に + 基づき)8ビット文字列をbase64文字列に変換します。 + </para> + <para> + base64 文字列を返します。 + </para> + <para> + <function>imap_base64</function>も参照下さい。 + </para> + </refsect1> + </refentry> + <refentry id="function.imap-body"> <refnamediv> <refname>imap_body</refname> @@ -280,6 +360,38 @@ </refsect1> </refentry> + <refentry id="function.imap-clearflag-full"> + <refnamediv> + <refname>imap_clearflag_full</refname> + <refpurpose>メッセージのフラグをクリアする</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>imap_clearflag_full</function></funcdef> + <paramdef>int <parameter>stream</parameter></paramdef> + <paramdef>string <parameter>sequence</parameter></paramdef> + <paramdef>string <parameter>flag</parameter></paramdef> + <paramdef>string <parameter>options</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + +この関数は、指定したシーケンスのメッセージのフラグからに指定したフラグ + を削除します。設定可能なフラグは、(RFC2060で定義された) +"\\Seen", + "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 + </para> + <para> + +オプションはビットマスクであり、以下の組み合わせとなります。 + <informalexample> + <literallayout> + ST_UID シーケンス引数はシーケンス番号の代わりに +UID を含みます + </literallayout> + </informalexample> + </para> + </refsect1> + </refentry> + <refentry id="function.imap-close"> <refnamediv> <refname>imap_close</refname> @@ -478,6 +590,32 @@ </refsect1> </refentry> + <refentry id="function.imap-errors"> + <refnamediv> + <refname>imap_errors</refname> + <refpurpose> + +ページのリクエストの間かエラースタックがリセットされて以来 + 生じた全てのIMAPエラーを返す + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>imap_errors</function></funcdef> + <paramdef>void </paramdef> + </funcprototype> + </funcsynopsis> + <para> + この関数は、最後に <function>imap_errors</function> コールを + 行ってからまたはそのページの処理を開始してから + 発生した全ての IMAP エラーメッセージの配列を返します。 + <function>imap_errors</function> +がコールされた場合、エラースタックは + 処理後にクリアされます。 + </para> + </refsect1> + </refentry> + <refentry id="function.imap-expunge"> <refnamediv> <refname>imap_expunge</refname> @@ -505,6 +643,125 @@ </refsect1> </refentry> + <refentry id="function.imap-fetch-overview"> + <refnamediv> + <refname>imap_fetch_overview</refname> + <refpurpose> + 指定したメッセージのヘッダ情報の概要を読む + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>imap_fetch_overview</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>sequence</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + +この関数はメールヘッダを取得し、その内容の概要を返します。 + オブジェクトの配列を返します。 + +各ヘッダを次のように記述するオブジェクトの配列を返します。 + <itemizedlist> + <listitem> + <simpara> + subject - メッセージの題名(subject) + </simpara> + </listitem> + <listitem> + <simpara> + from - 送信者 + </simpara> + </listitem> + <listitem> + <simpara> + date - 送信日 + </simpara> + </listitem> + <listitem> + <simpara> + message_id - メッセージID + </simpara> + </listitem> + <listitem> + <simpara> + references - このメッセージIDへのリファレンス + </simpara> + </listitem> + <listitem> + <simpara> + size - サイズ(バイト数) + </simpara> + </listitem> + <listitem> + <simpara> + uid - メールボックスにおけるこのメッセージのUID + </simpara> + </listitem> + <listitem> + <simpara> + msgno - +メールボックスにおけるこのメッセージのメッセージ番号 + </simpara> + </listitem> + <listitem> + <simpara> + recent - このメッセージのrecentフラグの有無 + </simpara> + </listitem> + <listitem> + <simpara> + flagged - このメッセージのフラグの有無 + </simpara> + </listitem> + <listitem> + <simpara> + answered - このメッセージの返信済フラグの有無 + </simpara> + </listitem> + <listitem> + <simpara> + deleted - このメッセージの削除フラグの有無 + </simpara> + </listitem> + <listitem> + <simpara> + seen - このメッセージの既読フラグの有無 + </simpara> + </listitem> + <listitem> + <simpara> + draft - このメッセージのドラフトフラグの有無 + </simpara> + </listitem> + </itemizedlist> + </para> + <para> + <example> + <title><function>imap_fetch_overview</function> の例</title> + <programlisting role="php"> +$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); + </programlisting> + </example> + </para> + </refsect1> + </refentry> + <refentry id="function.imap-fetchbody"> <refnamediv> <refname>imap_fetchbody</refname> @@ -554,9 +811,49 @@ </listitem> </itemizedlist> </para> + <para> + <function>imap_fetchstructure</function>も参照下さい。 + </para> </refsect1> </refentry> + <refentry id="function.imap-fetchheader"> + <refnamediv> + <refname>imap_fetchheader</refname> + <refpurpose>メッセージのヘッダを返す</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string<function>imap_fetchheader</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>int <parameter>msgno</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + +この関数は、指定したメッセージのヘッダーを完全でフィルターリング + されていない<ulink url="&url.rfc;rfc822.html">RFC822</ulink>フォー + +マットのテキスト文字列として取得し、テキスト文字列を返します。 + </para> + <para> + オプションは次のようになります。 + <informalexample> + <literallayout> +FT_UID msgno 引数は UID である +FT_INTERNAL 返される文字列を "internal" フォーマットとする。 + ただし、CRLF 改行は例外とする。 +FT_PREFETCHTEXT RFC822.TEXT は同時に事前に取得する必要があります。 + これは、メッセージテキスト全体を取得したい場合にIMAP + 接続において別の RTT を回避します。 + (例えば、"ローカルファイルに保存する"操作) + </literallayout> + </informalexample> + </para> + </refsect1> + </refentry> + <refentry id="function.imap-fetchstructure"> <refnamediv> <refname>imap_fetchstructure</refname> @@ -722,259 +1019,88 @@ </tgroup> </table> </para> + <para> + <function>imap_fetchbody</function>も参照下さい。 + </para> </refsect1> </refentry> - <refentry id="function.imap-headerinfo"> + <refentry id="function.imap-get-quota"> <refnamediv> - <refname>imap_headerinfo</refname> - <refpurpose>メッセージヘッダを読み込む</refpurpose> + <refname>imap_get_quota</refname> + <refpurpose> + +クオータレベルの設定、メールボックス毎の使用状況を取得する + </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>object <function>imap_headerinfo</function></funcdef> + <funcdef>array <function>imap_get_quota</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>int <parameter>msg_number</parameter></paramdef> - <paramdef>int - <parameter> - <replaceable><optional>fromlength</optional></replaceable> - </parameter> - </paramdef> - <paramdef>int - <parameter> - <replaceable><optional>subjectlength</optional></replaceable> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <replaceable><optional>defaulthost</optional></replaceable> - </parameter> - </paramdef> + <paramdef>string <parameter>quota_root</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - この関数は、様々なヘッダー要素を有するオブジェクトを返します。 + +指定したメールボックスのlimitとusageをキーとした整数値を配列とし + +て返します。limitの値は、このメールボックスで最大使用可能な大きさ + +を表します。usageの値は、このメールボックスの現在の使用状況を示し + ます。失敗した場合に FALSE を返します。 </para> - <para> - <informalexample> - <literallayout> - 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 (<parameter>fromlength</parameter> 文字に適合するようフォーマットされた from 行) - fetchsubject (<parameter>subjectlength</parameter> 文字に適合するようフォーマットされた subject 行) - </literallayout> - </informalexample> + <para> + この関数は、現在、c-client2000 +を使用しているユーザのみ使用可能で + す。 </para> - </refsect1> - </refentry> - - <refentry id="function.imap-header"> - <refnamediv> - <refname>imap_header</refname> - <refpurpose>メッセージのヘッダを読む</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>imap_header</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>int <parameter>msg_number</parameter></paramdef> - <paramdef>int - <parameter> - <replaceable><optional>fromlength</optional></replaceable> - </parameter> - </paramdef> - <paramdef>int - <parameter> - <replaceable><optional>subjectlength</optional></replaceable> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <replaceable><optional>defaulthost</optional></replaceable> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> <para> - この関数は、<function>imap_headerinfo</function>へのエイリアスで - あり、全く同様に動作します。 + <parameter>imap_stream</parameter> は、 + <function>imap_status</function>から返された値とする必要がありま + +す。クオータ関数を使用するには、このストリームをメール管理者とし + てオープンする必要があります。<parameter>quota_root</parameter> + は、通常、user.name +という形式にする必要があります。ただし、name + は情報を取得したいメールボックスの名前です。 </para> - </refsect1> - </refentry> - - <refentry id="function.imap-rfc822-parse-headers"> - <refnamediv> - <refname>imap_rfc822_parse_headers</refname> - <refpurpose>文字列からメールヘッダを解釈する</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>imap_rfc822_parse_headers</function></funcdef> - <paramdef>string <parameter>headers</parameter></paramdef> - <paramdef>string - <parameter> - <replaceable><optional>defaulthost</optional></replaceable> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> <para> - この関数は複数のヘッダ要素を有するオブジェクトを返します。 - この関数は<function>imap_header</function>に似ていますが、 - フラグおよび他の要素はIMAPサーバーから取得されるところが異なります。 + <example> + <title><function>imap_get_quota</function>の例</title> + <programlisting role="php"> +$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); + </programlisting> + </example> + </para> + <para> + <function>imap_open</function>, + <function>imap_set_quota</function> も参照下さい。 </para> </refsect1> </refentry> - <refentry id="function.imap-headers"> + <refentry id="function.imap-getmailboxes"> <refnamediv> - <refname>imap_headers</refname> + <refname>imap_getmailboxes</refname> <refpurpose> - メールボックス内の、すべてのメッセージのヘッダを返す + +メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>array <function>imap_headers</function></funcdef> + <funcdef>array <function>imap_getmailboxes</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>ref</parameter></paramdef> + <paramdef>string <parameter>pattern</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - ヘッダ情報でフォーマットされた文字列の配列を返します。1 つの - メールメッセージ毎に 1 つの要素が格納されます。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-listmailbox"> - <refnamediv> - <refname>imap_listmailbox</refname> - <refpurpose>メールボックスのリストを読む</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_listmailbox</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>ref</parameter></paramdef> - <paramdef>string <parameter>pattern</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - メールボックス名を保持する配列を返します。 - <parameter>ref</parameter>および<parameter>pattern</parameter> - の説明については、<function>imap_getmailboxes</function>を参照下さい。 - </para> - <para> - <example> - <title><function>imap_listmailbox</function> の例</title> - <programlisting role="php"> -$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); - </programlisting> - </example> - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-getmailboxes"> - <refnamediv> - <refname>imap_getmailboxes</refname> - <refpurpose> - メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_getmailboxes</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>ref</parameter></paramdef> - <paramdef>string <parameter>pattern</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> メールボックス情報を有するオブジェクトの配列を返します。各オブジェクトは、 メールボックスの完全な名前である <parameter>name</parameter>、 このメールボックスの階層の区切りを示す属性<parameter>delimiter</parameter>、 @@ -1057,88 +1183,6 @@ </refsect1> </refentry> - <refentry id="function.imap-get-quota"> - <refnamediv> - <refname>imap_get_quota</refname> - <refpurpose> - クオータレベルの設定、メールボックス毎の使用状況を取得する - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_get_quota</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>quota_root</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - 指定したメールボックスのlimitとusageをキーとした整数値を配列とし - て返します。limitの値は、このメールボックスで最大使用可能な大きさ - を表します。usageの値は、このメールボックスの現在の使用状況を示し - ます。失敗した場合に FALSE を返します。 - </para> - <para> - この関数は、現在、c-client2000 を使用しているユーザのみ使用可能で - す。 - </para> - <para> - <parameter>imap_stream</parameter> は、 - <function>imap_status</function>から返された値とする必要がありま - す。クオータ関数を使用するには、このストリームをメール管理者とし - てオープンする必要があります。<parameter>quota_root</parameter> - は、通常、user.name という形式にする必要があります。ただし、name - は情報を取得したいメールボックスの名前です。 - </para> - <para> - <example> - <title><function>imap_get_quota</function>の例</title> - <programlisting role="php"> -$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); - </programlisting> - </example> - </para> - <para> - <function>imap_open</function>, - <function>imap_set_quota</function> も参照下さい。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-listsubscribed"> - <refnamediv> - <refname>imap_listsubscribed</refname> - <refpurpose>購読中のすべてのメールボックス一覧</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_listsubscribed</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>ref</parameter></paramdef> - <paramdef>string <parameter>pattern</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - 購読中のすべてのメールボックスの配列を返します。 - この関数はほぼ<function>imap_listmailbox</function>と同じですが、 - 自分がログインしているユーザーが購読中のメールボックスのみを - 返します。 - </para> - </refsect1> - </refentry> - <refentry id="function.imap-getsubscribed"> <refnamediv> <refname>imap_getsubscribed</refname> @@ -1161,1027 +1205,1082 @@ </refsect1> </refentry> - <refentry id="function.imap-mail-copy"> + <refentry id="function.imap-header"> <refnamediv> - <refname>imap_mail_copy</refname> - <refpurpose>指定されたメッセージをメールボックスにコピーする - </refpurpose> + <refname>imap_header</refname> + <refpurpose>メッセージのヘッダを読む</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_mail_copy</function></funcdef> + <funcdef>object <function>imap_header</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>msglist</parameter></paramdef> - <paramdef>string <parameter>mbox</parameter></paramdef> + <paramdef>int <parameter>msg_number</parameter></paramdef> <paramdef>int <parameter> - <replaceable><optional>flags</optional></replaceable> + <replaceable><optional>fromlength</optional></replaceable> + </parameter> + </paramdef> + <paramdef>int + <parameter> + <replaceable><optional>subjectlength</optional></replaceable> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <replaceable><optional>defaulthost</optional></replaceable> </parameter> </paramdef> </funcprototype> </funcsynopsis> - <para> - 成功するとtrue、失敗するとfalseを返します。 - </para> <para> - <parameter>msglist</parameter> で指定されたメッセージを、指定した - メールボックスにコピーします。<parameter>msglist</parameter> は、 - (<ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>に記述されたよ - うに)ただのメッセージ番号ではなく、範囲を示します。 - </para> - <para> - flags はビットマスクであり、以下の組み合わせです。 - <itemizedlist> - <listitem> - <simpara> - CP_UID - UIDS を含む処理の数 - </simpara> - </listitem> - <listitem> - <simpara> - CP_MOVE - コピー後にメールボックスからメッセージを削除 - </simpara> - </listitem> - </itemizedlist> + この関数は、<function>imap_headerinfo</function>へのエイリアスで + あり、全く同様に動作します。 </para> </refsect1> </refentry> - <refentry id="function.imap-mail-move"> + <refentry id="function.imap-headerinfo"> <refnamediv> - <refname>imap_mail_move</refname> - <refpurpose> - 指定されたメッセージをメールボックスに移動する - </refpurpose> + <refname>imap_headerinfo</refname> + <refpurpose>メッセージヘッダを読み込む</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_mail_move</function></funcdef> + <funcdef>object <function>imap_headerinfo</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>msglist</parameter></paramdef> - <paramdef>string <parameter>mbox</parameter></paramdef> + <paramdef>int <parameter>msg_number</parameter></paramdef> <paramdef>int <parameter> - <replaceable><optional>flags</optional></replaceable> + <replaceable><optional>fromlength</optional></replaceable> + </parameter> + </paramdef> + <paramdef>int + <parameter> + <replaceable><optional>subjectlength</optional></replaceable> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <replaceable><optional>defaulthost</optional></replaceable> </parameter> </paramdef> </funcprototype> </funcsynopsis> - <para> - <parameter>msglist</parameter> で指定されたメッセージを、指定された - メールボックスに移動します。<parameter>msglist</parameter> は - 単なるメッセージ番号でなく、 - (<ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>で解説された) - メッセージの範囲を指定します。 - </para> - <para> - flagsはビットマスクであり、指定できるオプションは1つだけです。 - <itemizedlist> - <listitem> - <simpara> - CP_UID - シーケンス番号にUIDを含む - </simpara> - </listitem> - </itemizedlist> - </para> <para> - 成功するとtrue、失敗するとfalseを返します。 + +この関数は、様々なヘッダー要素を有するオブジェクトを返します。 </para> - </refsect1> - </refentry> + <para> + <informalexample> + <literallayout> + remail,date,Date,subject,Subject,in_reply_to,message_id,newsgroups, + followup_to,references - <refentry id="function.imap-num-msg"> - <refnamediv> - <refname>imap_num_msg</refname> - <refpurpose> - 現在のメールボックスのメッセージ数を取得する - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>imap_num_msg</function></funcdef> - <paramdef>int <parameter>stream_id</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - 現在のメールボックスにあるメッセージ数を返します。 - </para> - </refsect1> - </refentry> + 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 (<parameter>fromlength</parameter> +文字に適合するようフォーマットされた from 行) + fetchsubject (<parameter>subjectlength</parameter> +文字に適合するようフォーマットされた subject 行) + </literallayout> + </informalexample> + </para> + </refsect1> + </refentry> - <refentry id="function.imap-num-recent"> + <refentry id="function.imap-headers"> <refnamediv> - <refname>imap_num_recent</refname> - <refpurpose>現在のメールボックスにある新規メッセージの数の取得</refpurpose> + <refname>imap_headers</refname> + <refpurpose> + メールボックス内の、すべてのメッセージのヘッダを返す + </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_num_recent</function></funcdef> + <funcdef>array <function>imap_headers</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - 現在のメールボックスにある新しいメッセージの数を返します。 + +ヘッダ情報でフォーマットされた文字列の配列を返します。1 +つの + メールメッセージ毎に 1 つの要素が格納されます。 </para> </refsect1> </refentry> - <refentry id="function.imap-open"> + <refentry id="function.imap-last-error"> <refnamediv> - <refname>imap_open</refname> + <refname>imap_last_error</refname> <refpurpose> - メールボックスへのIMAPストリームをオープンする + ページリクエスト時に生じた直近の IMAP エラーを返す </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_open</function></funcdef> - <paramdef>string <parameter>mailbox</parameter></paramdef> - <paramdef>string <parameter>username</parameter></paramdef> - <paramdef>string <parameter>password</parameter></paramdef> - <paramdef>int - <parameter> - <replaceable><optional>flags</optional></replaceable> - </parameter> - </paramdef> + <funcdef>string <function>imap_last_error</function></funcdef> + <paramdef>void </paramdef> </funcprototype> </funcsynopsis> - <para> - 成功するとIMAPストリームを返し、失敗するとfalseを返します。この関 - 数は、POP3やNNTPサーバーへのストリームをオープンする際にも使用可 - 能です。しかし、いくつかの関数および機能はIMAPサーバーでは利用で - きません。 - </para> <para> - メールボックス名(mailbox)は、サーバー名の部分と使用するサーバーに - おけるメールボックスへのパスから構成されます。特別な名前INBOXは、 - カレントのユーザの個人メールボックスを意味します。サーバー部は'{' - および'}'で括られ、サーバー名またはIPアドレス、('/'で始まる)プロ - トコル指定、そして':'から始まるオプションのポート指定子から構成さ - れます。サーバー部は、全てのmailboxパラメータで必須です。 - ASCII空間で出力可能な文字以外の外国文字を含むメールボックス名は - <function>imap_utf7_encode</function>でエンコードする必要がありま - す。 + +この関数は、カレントページに生じた直近のIMAPエラーメッセージの + 全文を返します。エラースタックは変更されません。 + <function>imap_last_error</function> を続けてコールした際、 + +コール間に新規エラーが生じていない場合は、同じエラーが返されます。 </para> + </refsect1> + </refentry> + + <refentry id="function.imap-listmailbox"> + <refnamediv> + <refname>imap_listmailbox</refname> + <refpurpose>メールボックスのリストを読む</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>imap_listmailbox</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>ref</parameter></paramdef> + <paramdef>string <parameter>pattern</parameter></paramdef> + </funcprototype> + </funcsynopsis> <para> - オプションは、ビットマスクであり、以下の組み合わせとなります。 - <itemizedlist> - <listitem> - <simpara> - OP_READONLY - メールボックスを読みこみのみ可でオープン - </simpara> - </listitem> - <listitem> - <simpara> - OP_ANONYMOUS - news に関して.newsrcの使用・更新をしない(NNTPのみ) - </simpara> - </listitem> - <listitem> - <simpara> - OP_HALFOPEN - IMAPおよびNNTP名について、接続をオープンするがメールボックスをオープンしない - </simpara> - </listitem> - <listitem> - <simpara> - CL_EXPUNGE - メールボックスを閉じた際に、自動的にメールボックスを削除する - </simpara> - </listitem> - </itemizedlist> + メールボックス名を保持する配列を返します。 + <parameter>ref</parameter>および<parameter>pattern</parameter> + +の説明については、<function>imap_getmailboxes</function>を参照下さい。 </para> <para> - ローカルマシンのポート143で実行しているIMAPサーバーに接続 - する際には、以下のようにします。 - <informalexample> + <example> + <title><function>imap_listmailbox</function> の例</title> <programlisting role="php"> -$mbox = imap_open ("{localhost:143}INBOX","user_id","password"); - </programlisting> - </informalexample> - ローカルマシンのポート110で実行しているPOP3サーバーに接続する際には、 - 以下のようにします。 - <informalexample> - <programlisting> -$mbox = imap_open ("{localhost/pop3:110}INBOX","user_id","password"); - </programlisting> - </informalexample> - ローカルマシンのポート119で実行しているNNTPサーバーに接続する際には、 - 以下のようにします。 - <informalexample> - <programlisting> -$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); </programlisting> - </informalexample> - リモートサーバーに接続するには、"localhost" を接続したいサーバーの - 名前または IP アドレスに代えてください。 + </example> </para> - <para> - <example> - <title><function>imap_open</function>の例</title> - <programlisting> -$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"; + </refsect1> + </refentry> -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"; + <refentry id="function.imap-listsubscribed"> + <refnamediv> + <refname>imap_listsubscribed</refname> + <refpurpose>購読中のすべてのメールボックス一覧</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>imap_listsubscribed</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>ref</parameter></paramdef> + <paramdef>string <parameter>pattern</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + 購読中のすべてのメールボックスの配列を返します。 + この関数はほぼ<function>imap_listmailbox</function>と同じですが、 + +自分がログインしているユーザーが購読中のメールボックスのみを + 返します。 + </para> + </refsect1> + </refentry> -imap_close($mbox); - </programlisting> - </example> + <refentry id="function.imap-mail"> + <refnamediv> + <refname>imap_mail</refname> + <refpurpose> + e-mailメッセージを送信する + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>imap_mail</function></funcdef> + <paramdef>string <parameter>to</parameter></paramdef> + <paramdef>string <parameter>subject</parameter></paramdef> + <paramdef>string <parameter>message</parameter></paramdef> + <paramdef>string + <parameter> + <replaceable><optional>additional_headers</optional></replaceable> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <replaceable><optional>cc</optional></replaceable> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <replaceable><optional>bcc</optional></replaceable> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <replaceable><optional>rpath</optional></replaceable> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + この関数は、現在、PHP 3でのみ利用可能です。 </para> </refsect1> </refentry> - <refentry id="function.imap-ping"> + <refentry id="function.imap-mail-compose"> <refnamediv> - <refname>imap_ping</refname> - <refpurpose>IMAP ストリームの有効性チェック</refpurpose> + <refname>imap_mail_compose</refname> + <refpurpose> + +指定したエンベロープおよびボディーセクションに基づきMIMEメッセー + ジを作成 + </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_ping</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> + <funcdef>string <function>imap_mail_compose</function></funcdef> + <paramdef>array <parameter>envelope</parameter></paramdef> + <paramdef>array <parameter>body</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - ストリームがまだ有効であればtrueを、そうでなければfalseを返します。 </para> <para> - <function>imap_ping</function> 関数は、ストリームに ping を行い、 - まだ有効であるかどうかをチェックします。これにより新しいメールの到着 - を知る場合もあります。これは、有効時間のタイムアウトが設定 - してあるサーバに対して "接続を持続させる" ことに加え、定期的な - "新着メールのチェック" としてもよい方法です。 - (PHPスクリプトはこれほどの長時間実行されることはほとんどないので、 - この関数が実際に役に立つかどうかは定かではありません。) + <example> + <title><function>imap_mail_compose</function> の例</title> + <programlisting role="php"> +<?php + +$envelope["from"]="[EMAIL PROTECTED]"; +$envelope["to"]="musone@darkstar"; +$envelope["cc"]="[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)); + +?> + </programlisting> + </example> </para> </refsect1> </refentry> - <refentry id="function.imap-renamemailbox"> + <refentry id="function.imap-mail-copy"> <refnamediv> - <refname>imap_renamemailbox</refname> - <refpurpose>メールボックスの名前を変更する</refpurpose> + <refname>imap_mail_copy</refname> + +<refpurpose>指定されたメッセージをメールボックスにコピーする + </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_renamemailbox</function></funcdef> + <funcdef>int <function>imap_mail_copy</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>old_mbox</parameter></paramdef> - <paramdef>string <parameter>new_mbox</parameter></paramdef> + <paramdef>string <parameter>msglist</parameter></paramdef> + <paramdef>string <parameter>mbox</parameter></paramdef> + <paramdef>int + <parameter> + <replaceable><optional>flags</optional></replaceable> + </parameter> + </paramdef> </funcprototype> </funcsynopsis> - <para> - この関数は、古いメールボックスを新しいメールボックスにリネーム - します。 (<parameter>mbox</parameter>名のフォーマットについては - <function>imap_open</function>を参照下さい) - </para> <para> 成功するとtrue、失敗するとfalseを返します。 </para> <para> - <parameter>mbox</parameter>のフォーマットについては、 - <function>imap_createmailbox</function>, - <function>imap_deletemailbox</function>, - <function>imap_open</function>も参照下さい。 + <parameter>msglist</parameter> +で指定されたメッセージを、指定した + メールボックスにコピーします。<parameter>msglist</parameter> +は、 + (<ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>に記述されたよ + うに)ただのメッセージ番号ではなく、範囲を示します。 + </para> + <para> + flags はビットマスクであり、以下の組み合わせです。 + <itemizedlist> + <listitem> + <simpara> + CP_UID - UIDS を含む処理の数 + </simpara> + </listitem> + <listitem> + <simpara> + CP_MOVE - コピー後にメールボックスからメッセージを削除 + </simpara> + </listitem> + </itemizedlist> </para> </refsect1> </refentry> - <refentry id="function.imap-reopen"> + <refentry id="function.imap-mail-move"> <refnamediv> - <refname>imap_reopen</refname> - <refpurpose>新規メールボックスへのIMAP ストリームを再度オープンする + <refname>imap_mail_move</refname> + <refpurpose> + 指定されたメッセージをメールボックスに移動する </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_reopen</function></funcdef> + <funcdef>int <function>imap_mail_move</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>mailbox</parameter></paramdef> - <paramdef>string + <paramdef>string <parameter>msglist</parameter></paramdef> + <paramdef>string <parameter>mbox</parameter></paramdef> + <paramdef>int <parameter> - <replaceable><optional>flags</optional></replaceable> + <replaceable><optional>flags</optional></replaceable> </parameter> </paramdef> </funcprototype> </funcsynopsis> - <para> - 成功するとtrue、失敗するとfalseを返します。 - </para> <para> - この関数は、IMAPまたはNNTPサーバー上の新しいメールボックスに対して - 指定されたストリームを再オープンします。 + <parameter>msglist</parameter> +で指定されたメッセージを、指定された + メールボックスに移動します。<parameter>msglist</parameter> は + 単なるメッセージ番号でなく、 + (<ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>で解説された) + メッセージの範囲を指定します。 </para> <para> - オプションは、ビットマスクであり、以下の組み合わせとなります。 + +flagsはビットマスクであり、指定できるオプションは1つだけです。 <itemizedlist> <listitem> - <simpara> - OP_READONLY - メールボックスを読みこみのみ可でオープン - </simpara> - </listitem> - <listitem> - <simpara> - OP_ANONYMOUS - news に関して .newsrc の使用・更新をしない (NNTPのみ) - </simpara> - </listitem> - <listitem> <simpara> - OP_HALFOPEN - IMAP および NNTP 名について、接続をオープンするが - メールボックスをオープンしない - </simpara> - </listitem> - <listitem> - <simpara> - CL_EXPUNGE - メールボックスを閉じた際に、自動的にメールボック - スを削除する (<function>imap_delete</function>および - <function>imap_expunge</function>も参照下さい ) + CP_UID - シーケンス番号にUIDを含む </simpara> </listitem> </itemizedlist> </para> <para> - 成功時にtrue、エラー時にfalseを返します。 + 成功するとtrue、失敗するとfalseを返します。 </para> </refsect1> </refentry> - <refentry id="function.imap-set-quota"> + <refentry id="function.imap-mailboxmsginfo"> <refnamediv> - <refname>imap_set_quota</refname> - <refpurpose>指定したメールボックスにクオータを設定する</refpurpose> + <refname>imap_mailboxmsginfo</refname> + <refpurpose>現在のメールボックスに関する情報を得る</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_set_quota</function></funcdef> + <funcdef>array <function>imap_mailboxmsginfo</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>quota_root</parameter></paramdef> - <paramdef>int <parameter>quota_limit</parameter></paramdef> </funcprototype> </funcsynopsis> - <para> - メールボックス単位でクオータ上限(最大容量)を設定します。この関数 - は、メール管理者のアカウントでオープンされている - <parameter>imap_stream</parameter> を必要とします。他のユーザでオー - プンされている場合は、この関数は動作しません。 - </para> <para> - この関数は、c-client2000ライブラリのユーザのみ使用可能です。 + 現在のメールボックスに関する情報を返します。 + 失敗した場合にfalseを返します。 </para> - <para> - <parameter>imap_stream</parameter> は、 - <function>imap_open</function>コール時に返されたストリームポイン - タです。このストリームはメール管理者としてオープンする必要があり - ます。そうでない場合は、この関数は動作しません。 - <parameter>quota_root</parameter> は、クオータを設定するメールボッ - クスです。これは、メールボックスのIMAP標準フォーマット - 'user.name' に基づき指定する必要があります。 - <parameter>quota_limit</parameter> は、 - <parameter>quota_root</parameter> の最大サイズ(KB単位)です。 + <para> + <function>imap_mailboxmsginfo</function> 関数は、 + +サーバーにおける現在のメールボックスのステータスを調べ、 + 次のプロパティを有するオブジェクトの情報を返します。 + この関数は<function>imap_status</function>に似ていますが、 + +メールボックスの中の全てのメッセージのサイズを合計します。 + このため、実行時間は幾分余計にかかります。 </para> <para> - 成功時にtrue、エラー時にfalseを返します。 + <table> + <title>mailboxのプロパティ</title> + <tgroup cols="2"> + <tbody> + <row> + <entry>Date </entry> + <entry>最終変更日</entry> + </row> + <row> + <entry>Driver </entry> + <entry>ドライバ</entry> + </row> + <row> + <entry>Mailbox</entry> + <entry>メールボックスの名前</entry> + </row> + <row> + <entry>Nmsgs </entry> + <entry>メッセージ数</entry> + </row> + <row> + <entry>Recent </entry> + <entry>最近のメッセージの数</entry> + </row> + <row> + <entry>Unread </entry> + <entry>未読のメッセージの数</entry> + </row> + <row> + <entry>Size </entry> + <entry>メールボックスのサイズ</entry> + </row> + </tbody> + </tgroup> + </table> </para> <para> <example> - <title><function>imap_set_quota</function>の例</title> + <title><function>imap_mailboxmsginfo</function> の例</title> <programlisting role="php"> -$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); + +?> </programlisting> </example> </para> - <para> - <function>imap_open</function>, - <function>imap_set_quota</function> も参照下さい。 - </para> </refsect1> </refentry> - <refentry id="function.imap-subscribe"> + <refentry id="function.imap-mime-header-decode"> <refnamediv> - <refname>imap_subscribe</refname> - <refpurpose>メールボックスの購読</refpurpose> + <refname>imap_mime_header_decode</refname> + <refpurpose>MIMEヘッダーエレメントをデコードする</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_subscribe</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>mbox</parameter></paramdef> + <funcdef>array <function>imap_header_decode</function></funcdef> + <paramdef>string <parameter>text</parameter></paramdef> </funcprototype> </funcsynopsis> - <para> - 新規メールボックスを購読します。 - </para> <para> - 成功するとtrue、失敗するとfalseを返します。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-undelete"> - <refnamediv> - <refname>imap_undelete</refname> - <refpurpose>削除マークがついているメッセージのマークをはずす</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>imap_undelete</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>int <parameter>msg_number</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - この関数は、<function>imap_delete</function>または - <function>imap_mail_move</function>によりセットされた指定されたメッ - セージの削除フラグをはずします。 + 関数<function>imap_mime_header_decode</function>は、非ASCIIテキス + +トのMIMEメッセージヘッダエクステンションをデコードします。 + (<ulink url="&url.rfc;rfc2047.html">RFC2047</ulink>を参照下さい) + デコードされた要素は、オブジェクトの配列で返されます。 + +ただし、各オブジェクトは二つのプロパティ"charset"と"text"を有しています。 + +要素がエンコードされていない場合、言い替えるとプレーンなUS-ASCIIの場合、 + この要素の"charset"プロパティは"default"に設定されます。 </para> <para> - 成功するとtrue、失敗するとfalseを返します。 - </para> - </refsect1> - </refentry> + <example> + <title><function>imap_mime_header_decode</function>の例</title> + <programlisting role="php"> +$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <[EMAIL PROTECTED]>"; - <refentry id="function.imap-unsubscribe"> - <refnamediv> - <refname>imap_unsubscribe</refname> - <refpurpose>メールボックスの購読をやめる</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>imap_unsubscribe</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>mbox</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - 指定されたメールボックスの購読を中止します。 +$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"; +} + + </programlisting> + </example> </para> <para> - 成功するとtrue、失敗するとfalseを返します。 + 上の例には二つの要素があります。最初の要素はISO-8859-1、 + +2番目の要素はプレーンなUS-ASCIIで事前にエンコードされています。 </para> </refsect1> </refentry> - <refentry id="function.imap-qprint"> + <refentry id="function.imap-msgno"> <refnamediv> - <refname>imap_qprint</refname> - <refpurpose>quoted-printable 文字列を 8 ビット文字列に変換する - </refpurpose> + <refname>imap_msgno</refname> + <refpurpose>指定したUIDのメッセージ番号を返す</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_qprint</function></funcdef> - <paramdef>string <parameter>string</parameter></paramdef> + <funcdef>int <function>imap_msgno</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>int <parameter>uid</parameter></paramdef> </funcprototype> </funcsynopsis> - <para> - (<ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>, section 6.7 - に基づき)quoted-printable 文字列を 8 ビット文字列に変換します。 - </para> - <para> - 8ビット(バイナリ)文字列を返します。 - </para> <para> - <function>imap_8bit</function>も参照下さい。 + この関数は、指定したUIDnメッセージ番号を返します。 + これは、<function>imap_uid</function> の逆の動作となります。 </para> </refsect1> </refentry> - <refentry id="function.imap-8bit"> + <refentry id="function.imap-num-msg"> <refnamediv> - <refname>imap_8bit</refname> + <refname>imap_num_msg</refname> <refpurpose> - 8bit 文字列を quoted-printable 文字列に変換する + 現在のメールボックスのメッセージ数を取得する </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_8bit</function></funcdef> - <paramdef>string <parameter>string</parameter></paramdef> + <funcdef>int <function>imap_num_msg</function></funcdef> + <paramdef>int <parameter>stream_id</parameter></paramdef> </funcprototype> </funcsynopsis> - <para> - (<ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>, section 6.7 - に基づき)8bit 文字列をquoted-printable文字列に変換します。 - </para> <para> - quoted-printable文字列を返します。 + 現在のメールボックスにあるメッセージ数を返します。 </para> <para> - <function>imap_qprint</function>も参照下さい。 + <function>imap_num_recent</function> および + <function>imap_status</function> も参照下さい。 </para> </refsect1> </refentry> - <refentry id="function.imap-binary"> + <refentry id="function.imap-num-recent"> <refnamediv> - <refname>imap_binary</refname> - <refpurpose>8ビット文字列をbase64文字列に変換する</refpurpose> + <refname>imap_num_recent</refname> + +<refpurpose>現在のメールボックスにある新規メッセージの数の取得</refpurpose> </refnamediv> - <refsect1> + <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_binary</function></funcdef> - <paramdef>string <parameter>string</parameter></paramdef> + <funcdef>int <function>imap_num_recent</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> </funcprototype> </funcsynopsis> - <para> - (<ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>,Section 6.8に - 基づき)8ビット文字列をbase64文字列に変換します。 - </para> <para> - base64 文字列を返します。 + +現在のメールボックスにある新しいメッセージの数を返します。 </para> <para> - <function>imap_base64</function>も参照下さい。 + <function>imap_num_msg</function> および + <function>imap_status</function> も参照下さい。 </para> </refsect1> </refentry> - - <refentry id="function.imap-scanmailbox"> + + <refentry id="function.imap-open"> <refnamediv> - <refname>imap_scanmailbox</refname> + <refname>imap_open</refname> <refpurpose> - メールボックスのリストを読み、メールボックスのテキストにおいて - 文字列を検索する + メールボックスへのIMAPストリームをオープンする </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>array <function>imap_scanmailbox</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>content</parameter></paramdef> + <funcdef>int <function>imap_open</function></funcdef> + <paramdef>string <parameter>mailbox</parameter></paramdef> + <paramdef>string <parameter>username</parameter></paramdef> + <paramdef>string <parameter>password</parameter></paramdef> + <paramdef>int + <parameter> + <replaceable><optional>flags</optional></replaceable> + </parameter> + </paramdef> </funcprototype> </funcsynopsis> <para> - メールボックスのテキストに<parameter>content</parameter>があるメー - ルボックスの名前を有する配列を返します。この関数は - <function>imap_listmailbox</function>に似ていますが、メールボック - スのデータ中に文字列<parameter>content</parameter>が存在するかど - うかの確認も行います。 + +成功するとIMAPストリームを返し、失敗するとfalseを返します。この関 + +数は、POP3やNNTPサーバーへのストリームをオープンする際にも使用可 + +能です。しかし、いくつかの関数および機能はIMAPサーバーでは利用で + きません。 + </para> + <para> + +メールボックス名(mailbox)は、サーバー名の部分と使用するサーバーに + +おけるメールボックスへのパスから構成されます。特別な名前INBOXは、 + +カレントのユーザの個人メールボックスを意味します。サーバー部は'{' + +および'}'で括られ、サーバー名またはIPアドレス、('/'で始まる)プロ + +トコル指定、そして':'から始まるオプションのポート指定子から構成さ + +れます。サーバー部は、全てのmailboxパラメータで必須です。 + +ASCII空間で出力可能な文字以外の外国文字を含むメールボックス名は + <function>imap_utf7_encode</function>でエンコードする必要がありま + す。 + </para> + <para> + +オプションは、ビットマスクであり、以下の組み合わせとなります。 + <itemizedlist> + <listitem> + <simpara> + OP_READONLY - メールボックスを読みこみのみ可でオープン + </simpara> + </listitem> + <listitem> + <simpara> + OP_ANONYMOUS - news +に関して.newsrcの使用・更新をしない(NNTPのみ) + </simpara> + </listitem> + <listitem> + <simpara> + OP_HALFOPEN - +IMAPおよびNNTP名について、接続をオープンするがメールボックスをオープンしない + </simpara> + </listitem> + <listitem> + <simpara> + CL_EXPUNGE - +メールボックスを閉じた際に、自動的にメールボックスを削除する + </simpara> + </listitem> + </itemizedlist> + </para> + <para> + +ローカルマシンのポート143で実行しているIMAPサーバーに接続 + する際には、以下のようにします。 + <informalexample> + <programlisting role="php"> +$mbox = imap_open ("{localhost:143}INBOX","user_id","password"); + </programlisting> + </informalexample> + +ローカルマシンのポート110で実行しているPOP3サーバーに接続する際には、 + 以下のようにします。 + <informalexample> + <programlisting> +$mbox = imap_open ("{localhost/pop3:110}INBOX","user_id","password"); + </programlisting> + </informalexample> + +ローカルマシンのポート119で実行しているNNTPサーバーに接続する際には、 + 以下のようにします。 + <informalexample> + <programlisting> +$nntp = imap_open ("{localhost/nntp:119}comp.test","",""); + </programlisting> + </informalexample> + リモートサーバーに接続するには、"localhost" +を接続したいサーバーの + 名前または IP アドレスに代えてください。 + </para> + <para> + <example> + <title><function>imap_open</function>の例</title> + <programlisting> +$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); + </programlisting> + </example> </para> </refsect1> </refentry> - - <refentry id="function.imap-mailboxmsginfo"> + + <refentry id="function.imap-ping"> <refnamediv> - <refname>imap_mailboxmsginfo</refname> - <refpurpose>現在のメールボックスに関する情報を得る</refpurpose> + <refname>imap_ping</refname> + <refpurpose>IMAP ストリームの有効性チェック</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>array <function>imap_mailboxmsginfo</function></funcdef> + <funcdef>int <function>imap_ping</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - 現在のメールボックスに関する情報を返します。 - 失敗した場合にfalseを返します。 - </para> - <para> - <function>imap_mailboxmsginfo</function> 関数は、 - サーバーにおける現在のメールボックスのステータスを調べ、 - 次のプロパティを有するオブジェクトの情報を返します。 - この関数は<function>imap_status</function>に似ていますが、 - メールボックスの中の全てのメッセージのサイズを合計します。 - このため、実行時間は幾分余計にかかります。 + +ストリームがまだ有効であればtrueを、そうでなければfalseを返します。 </para> <para> - <table> - <title>mailboxのプロパティ</title> - <tgroup cols="2"> - <tbody> - <row> - <entry>Date </entry> - <entry>最終変更日</entry> - </row> - <row> - <entry>Driver </entry> - <entry>ドライバ</entry> - </row> - <row> - <entry>Mailbox</entry> - <entry>メールボックスの名前</entry> - </row> - <row> - <entry>Nmsgs </entry> - <entry>メッセージ数</entry> - </row> - <row> - <entry>Recent </entry> - <entry>最近のメッセージの数</entry> - </row> - <row> - <entry>Unread </entry> - <entry>未読のメッセージの数</entry> - </row> - <row> - <entry>Size </entry> - <entry>メールボックスのサイズ</entry> - </row> - </tbody> - </tgroup> - </table> + <function>imap_ping</function> 関数は、ストリームに ping を行い、 + +まだ有効であるかどうかをチェックします。これにより新しいメールの到着 + +を知る場合もあります。これは、有効時間のタイムアウトが設定 + してあるサーバに対して "接続を持続させる" +ことに加え、定期的な + "新着メールのチェック" としてもよい方法です。 + +(PHPスクリプトはこれほどの長時間実行されることはほとんどないので、 + +この関数が実際に役に立つかどうかは定かではありません。) </para> - <para> - <example> - <title><function>imap_mailboxmsginfo</function> の例</title> - <programlisting role="php"> -<?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); + </refsect1> + </refentry> -?> - </programlisting> - </example> + <refentry id="function.imap-qprint"> + <refnamediv> + <refname>imap_qprint</refname> + <refpurpose>quoted-printable 文字列を 8 ビット文字列に変換する + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>imap_qprint</function></funcdef> + <paramdef>string <parameter>string</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + (<ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>, section 6.7 + に基づき)quoted-printable 文字列を 8 +ビット文字列に変換します。 + </para> + <para> + 8ビット(バイナリ)文字列を返します。 + </para> + <para> + <function>imap_8bit</function>も参照下さい。 </para> </refsect1> </refentry> - - <refentry id="function.imap-rfc822-write-address"> + + <refentry id="function.imap-renamemailbox"> <refnamediv> - <refname>imap_rfc822_write_address</refname> - <refpurpose> - 指定したメールボックス、ホスト、個人情報を適当にフォーマットされ - た電子メールアドレスにして返す - </refpurpose> + <refname>imap_renamemailbox</refname> + <refpurpose>メールボックスの名前を変更する</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_rfc822_write_address</function></funcdef> - <paramdef>string <parameter>mailbox</parameter></paramdef> - <paramdef>string <parameter>host</parameter></paramdef> - <paramdef>string <parameter>personal</parameter></paramdef> + <funcdef>int <function>imap_renamemailbox</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>old_mbox</parameter></paramdef> + <paramdef>string <parameter>new_mbox</parameter></paramdef> </funcprototype> </funcsynopsis> + <para> + +この関数は、古いメールボックスを新しいメールボックスにリネーム + します。 (<parameter>mbox</parameter>名のフォーマットについては + <function>imap_open</function>を参照下さい) + </para> <para> - 指定したメールボックス、ホスト、個人情報を - <ulink url="&url.rfc;rfc822.html">RFC822</ulink>の定義に基づき - 適当にフォーマットされた電子メールアドレスにして返します。 + 成功するとtrue、失敗するとfalseを返します。 </para> <para> - <example> - <title><function>imap_rfc822_write_address</function> の例</title> - <programlisting role="php"> -print imap_rfc822_write_address("hartmut","cvs.php.net","Hartmut Holzgraefe")."\n"; - </programlisting> - </example> + <parameter>mbox</parameter>のフォーマットについては、 + <function>imap_createmailbox</function>, + <function>imap_deletemailbox</function>, + <function>imap_open</function>も参照下さい。 </para> </refsect1> </refentry> - - <refentry id="function.imap-rfc822-parse-adrlist"> + + <refentry id="function.imap-reopen"> <refnamediv> - <refname>imap_rfc822_parse_adrlist</refname> - <refpurpose>アドレス文字列を解釈します</refpurpose> + <refname>imap_reopen</refname> + <refpurpose>新規メールボックスへのIMAP +ストリームを再度オープンする + </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_rfc822_parse_adrlist</function></funcdef> - <paramdef>string <parameter>address</parameter></paramdef> - <paramdef>string <parameter>default_host</parameter></paramdef> + <funcdef>int <function>imap_reopen</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>mailbox</parameter></paramdef> + <paramdef>string + <parameter> + <replaceable><optional>flags</optional></replaceable> + </parameter> + </paramdef> </funcprototype> </funcsynopsis> <para> - この関数は、<ulink url="&url.rfc;rfc822.html">RFC822</ulink> - の定義に基づきアドレス文字列を解釈し、各アドレス毎にオブジェクトの - 配列を返します。4 つのオブジェクトは、以下のようになります。 + 成功するとtrue、失敗するとfalseを返します。 + </para> + <para> + +この関数は、IMAPまたはNNTPサーバー上の新しいメールボックスに対して + 指定されたストリームを再オープンします。 </para> <para> + +オプションは、ビットマスクであり、以下の組み合わせとなります。 <itemizedlist> <listitem> <simpara> - mailbox - メールボックス名 (ユーザ名) + OP_READONLY - メールボックスを読みこみのみ可でオープン </simpara> </listitem> <listitem> <simpara> - host - ホスト名 + OP_ANONYMOUS - news に関して .newsrc の使用・更新をしない +(NNTPのみ) </simpara> </listitem> <listitem> <simpara> - personal - 個人名 + OP_HALFOPEN - IMAP および NNTP +名について、接続をオープンするが + メールボックスをオープンしない </simpara> </listitem> <listitem> <simpara> - adl - ドメインソースルートからのパス + CL_EXPUNGE - +メールボックスを閉じた際に、自動的にメールボック + スを削除する (<function>imap_delete</function>および + <function>imap_expunge</function>も参照下さい ) </simpara> </listitem> </itemizedlist> </para> <para> - <example> - <title><function>imap_rfc822_parse_adrlist</function> の例</title> - <programlisting role="php"> -$address_string = "Hartmut Holzgraefe <[EMAIL PROTECTED]>, [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"; -} - </programlisting> - </example> + 成功時にtrue、エラー時にfalseを返します。 </para> </refsect1> </refentry> - - <refentry id="function.imap-setflag-full"> + + <refentry id="function.imap-rfc822-parse-adrlist"> <refnamediv> - <refname>imap_setflag_full</refname> - <refpurpose>メッセージにフラグをセットする</refpurpose> + <refname>imap_rfc822_parse_adrlist</refname> + <refpurpose>アドレス文字列を解釈します</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_setflag_full</function></funcdef> - <paramdef>int <parameter>stream</parameter></paramdef> - <paramdef>string <parameter>sequence</parameter></paramdef> - <paramdef>string <parameter>flag</parameter></paramdef> - <paramdef>string <parameter>options</parameter></paramdef> + <funcdef>string <function>imap_rfc822_parse_adrlist</function></funcdef> + <paramdef>string <parameter>address</parameter></paramdef> + <paramdef>string <parameter>default_host</parameter></paramdef> </funcprototype> </funcsynopsis> - <para> - この関数は、指定したシーケンスのメッセージのフラグに指定したフラグを - セットし、保存します。 - </para> <para> - 設定可能なフラグは、(RFC2060で定義された) "\\Seen", "\\Answered", - "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 + この関数は、<ulink url="&url.rfc;rfc822.html">RFC822</ulink> + +の定義に基づきアドレス文字列を解釈し、各アドレス毎にオブジェクトの + 配列を返します。4 +つのオブジェクトは、以下のようになります。 </para> <para> - オプションはビットマスクであり、以下の組み合わせとなります。 - <informalexample> - <literallayout> - ST_UID シーケンス引数はシーケンス番号の代わりに UID を - 含みます - </literallayout> - </informalexample> + <itemizedlist> + <listitem> + <simpara> + mailbox - メールボックス名 (ユーザ名) + </simpara> + </listitem> + <listitem> + <simpara> + host - ホスト名 + </simpara> + </listitem> + <listitem> + <simpara> + personal - 個人名 + </simpara> + </listitem> + <listitem> + <simpara> + adl - ドメインソースルートからのパス + </simpara> + </listitem> + </itemizedlist> </para> <para> <example> - <title><function>imap_setflag_full</function> の例</title> - <programlisting role="php"> -$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); - </programlisting> - </example> - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-clearflag-full"> - <refnamediv> - <refname>imap_clearflag_full</refname> - <refpurpose>メッセージのフラグをクリアする</refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>imap_clearflag_full</function></funcdef> - <paramdef>int <parameter>stream</parameter></paramdef> - <paramdef>string <parameter>sequence</parameter></paramdef> - <paramdef>string <parameter>flag</parameter></paramdef> - <paramdef>string <parameter>options</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - この関数は、指定したシーケンスのメッセージのフラグからに指定したフラグ - を削除します。設定可能なフラグは、(RFC2060で定義された) "\\Seen", - "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 - </para> - <para> - オプションはビットマスクであり、以下の組み合わせとなります。 - <informalexample> - <literallayout> - ST_UID シーケンス引数はシーケンス番号の代わりに UID を含みます - </literallayout> - </informalexample> - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-sort"> - <refnamediv> - <refname>imap_sort</refname> - <refpurpose></refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_sort</function></funcdef> - <paramdef>int <parameter>stream</parameter></paramdef> - <paramdef>int <parameter>criteria</parameter></paramdef> - <paramdef>int <parameter>reverse</parameter></paramdef> - <paramdef>int <parameter>options</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - 指定したパラメータによりソートされたメッセージ番号の配列を - 返します。 - </para> - <para> - 逆順にソートする場合は、reverse を 1 にします。 - </para> - <para> - criteria は、次のどれかとします。(一つのみ) - <informalexample> - <literallayout> -SORTDATE メッセージの日付 -SORTARRIVAL 到着日付 -SORTFROM 最初の From アドレスのメールボックス -SORTSUBJECT メッセージ Subject -SORTTO 最初の To アドレスのメールボックス -SORTCC 最初の cc アドレスのメールボックス -SORTSIZE メッセージのサイズ - </literallayout> - </informalexample> - </para> - <para> - フラグはビットマスクであり、次の組み合わせとjります。 - <informalexample> - <literallayout> -SE_UID シーケンス番号の変わりに UID を返す -SE_NOPREFETCH 検索したメッセージを事前取得しない - </literallayout> - </informalexample> + <title><function>imap_rfc822_parse_adrlist</function> の例</title> + <programlisting role="php"> +$address_string = "Hartmut Holzgraefe <[EMAIL PROTECTED]>, [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"; +} + </programlisting> + </example> </para> </refsect1> </refentry> - - <refentry id="function.imap-fetchheader"> + + <refentry id="function.imap-rfc822-parse-headers"> <refnamediv> - <refname>imap_fetchheader</refname> - <refpurpose>メッセージのヘッダを返す</refpurpose> + <refname>imap_rfc822_parse_headers</refname> + <refpurpose>文字列からメールヘッダを解釈する</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string<function>imap_fetchheader</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>int <parameter>msgno</parameter></paramdef> - <paramdef>int <parameter>flags</parameter></paramdef> + <funcdef>object <function>imap_rfc822_parse_headers</function></funcdef> + <paramdef>string <parameter>headers</parameter></paramdef> + <paramdef>string + <parameter> + <replaceable><optional>defaulthost</optional></replaceable> + </parameter> + </paramdef> </funcprototype> </funcsynopsis> - <para> - この関数は、指定したメッセージのヘッダーを完全でフィルターリング - されていない<ulink url="&url.rfc;rfc822.html">RFC822</ulink>フォー - マットのテキスト文字列として取得し、テキスト文字列を返します。 - </para> <para> - オプションは次のようになります。 - <informalexample> - <literallayout> -FT_UID msgno 引数は UID である -FT_INTERNAL 返される文字列を "internal" フォーマットとする。 - ただし、CRLF 改行は例外とする。 -FT_PREFETCHTEXT RFC822.TEXT は同時に事前に取得する必要があります。 - これは、メッセージテキスト全体を取得したい場合にIMAP - 接続において別の RTT を回避します。 - (例えば、"ローカルファイルに保存する"操作) - </literallayout> - </informalexample> + +この関数は複数のヘッダ要素を有するオブジェクトを返します。 + この関数は<function>imap_header</function>に似ていますが、 + +フラグおよび他の要素はIMAPサーバーから取得されるところが異なります。 </para> </refsect1> </refentry> - - <refentry id="function.imap-uid"> + + <refentry id="function.imap-rfc822-write-address"> <refnamediv> - <refname>imap_uid</refname> + <refname>imap_rfc822_write_address</refname> <refpurpose> - 指定したメッセージシーケンス番号の UID を返す + +指定したメールボックス、ホスト、個人情報を適当にフォーマットされ + た電子メールアドレスにして返す </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_uid</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>int <parameter>msgno</parameter></paramdef> + <funcdef>string <function>imap_rfc822_write_address</function></funcdef> + <paramdef>string <parameter>mailbox</parameter></paramdef> + <paramdef>string <parameter>host</parameter></paramdef> + <paramdef>string <parameter>personal</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - この関数は、指定したメッセージシーケンス番号の UID を返します。 - メッセージ番号はメールボックスの内容を変更する度に変わる可能性が - ありますが、UIDはユニークなIDであり時間が経過しても変わりません。 - この関数は、<function>imap_msgno</function> の逆関数です。 + 指定したメールボックス、ホスト、個人情報を + <ulink url="&url.rfc;rfc822.html">RFC822</ulink>の定義に基づき + +適当にフォーマットされた電子メールアドレスにして返します。 + </para> + <para> + <example> + <title><function>imap_rfc822_write_address</function> の例</title> + <programlisting role="php"> +print imap_rfc822_write_address("hartmut","cvs.php.net","Hartmut Holzgraefe")."\n"; + + </programlisting> + </example> </para> </refsect1> - </refentry> - - <refentry id="function.imap-msgno"> + </refentry> + + <refentry id="function.imap-scanmailbox"> <refnamediv> - <refname>imap_msgno</refname> - <refpurpose>指定したUIDのメッセージ番号を返す</refpurpose> + <refname>imap_scanmailbox</refname> + <refpurpose> + +メールボックスのリストを読み、メールボックスのテキストにおいて + 文字列を検索する + </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>imap_msgno</function></funcdef> + <funcdef>array <function>imap_scanmailbox</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>int <parameter>uid</parameter></paramdef> + <paramdef>string <parameter>content</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - この関数は、指定したUIDnメッセージ番号を返します。 - これは、<function>imap_uid</function> の逆の動作となります。 + +メールボックスのテキストに<parameter>content</parameter>があるメー + ルボックスの名前を有する配列を返します。この関数は + <function>imap_listmailbox</function>に似ていますが、メールボック + スのデータ中に文字列<parameter>content</parameter>が存在するかど + うかの確認も行います。 </para> </refsect1> - </refentry> - + </refentry> + <refentry id="function.imap-search"> <refnamediv> <refname>imap_search</refname> @@ -2318,535 +2417,449 @@ </simpara> </listitem> <listitem> - <simpara> - UNKEYWORD "string" - キーワード "string" を有さないメッセージにマッチ - </simpara> - </listitem> - <listitem> - <simpara> - UNSEEN - 未読のメッセージにマッチ - </simpara> - </listitem> - </itemizedlist> - </para> - <para> - 例えば、Mom から送られた全ての未回答のメッセージにマッチするには、 - "UNANSWERED FROM mom"を使用する必要があります。 - 検索は、大文字小文字が区別されずに行われます。 - 検索条件のリストは、UWクライアントのCソースコードからのものであり、 - 不完全または不正確である可能性があります。 - (RFC2060, section 6.4.4も参照下さい) - </para> - <para> - SE_UID が有効なフラグとして設定されている場合、 - メッセージ番号の変わりに UID を有する配列が返されます。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-last-error"> - <refnamediv> - <refname>imap_last_error</refname> - <refpurpose> - ページリクエスト時に生じた直近の IMAP エラーを返す - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>imap_last_error</function></funcdef> - <paramdef>void </paramdef> - </funcprototype> - </funcsynopsis> - <para> - この関数は、カレントページに生じた直近のIMAPエラーメッセージの - 全文を返します。エラースタックは変更されません。 - <function>imap_last_error</function> を続けてコールした際、 - コール間に新規エラーが生じていない場合は、同じエラーが返されます。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-errors"> - <refnamediv> - <refname>imap_errors</refname> - <refpurpose> - ページのリクエストの間かエラースタックがリセットされて以来 - 生じた全てのIMAPエラーを返す - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_errors</function></funcdef> - <paramdef>void </paramdef> - </funcprototype> - </funcsynopsis> - <para> - この関数は、最後に <function>imap_errors</function> コールを - 行ってからまたはそのページの処理を開始してから - 発生した全ての IMAP エラーメッセージの配列を返します。 - <function>imap_errors</function> がコールされた場合、エラースタックは - 処理後にクリアされます。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-alerts"> - <refnamediv> - <refname>imap_alerts</refname> - <refpurpose> - ページリクエストの間または最後にスタックがリセットされて以来発生した - 全てのIMAP警告メッセージを返す - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>imap_alerts</function></funcdef> - <paramdef>void </paramdef> - </funcprototype> - </funcsynopsis> - <para> - この関数は、直近に <function>imap_alerts</function> をコールして - 以来、またはページ処理を開始して以来生成された 全 IMAP 警告メッセー - ジの配列を得ます。<function>imap_alerts</function> がコールされた - 場合、カレントのスタックは、処理後にクリアされます。IMAP 規約では、 - これらのメッセージをユーザに渡すことが規定されています。 - </para> - </refsect1> - </refentry> - - <refentry id="function.imap-status"> - <refnamediv> - <refname>imap_status</refname> - <refpurpose> - 現在のメールボックス以外のメールボックスのステータス情報を返す - </refpurpose> - </refnamediv> - <refsect1> - <title>説明</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>imap_status</function></funcdef> - <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>mailbox</parameter></paramdef> - <paramdef>int <parameter>options</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - この関数は、ステータス情報を有するオブジェクトを返します。 - 有効なフラグは次のようになります。 - <itemizedlist> - <listitem> - <simpara> - SA_MESSAGES - status->messages にメールボックスのメッセージ数を設定する - </simpara> - </listitem> - <listitem> - <simpara> - SA_RECENT - status->recent にメールボックスの最近のメッセージ数を設定する - </simpara> - </listitem> - <listitem> - <simpara> - SA_UNSEEN - status->unseen にメールボックスの未読の(新規)メッセージ数を - 設定する - </simpara> - </listitem> - <listitem> - <simpara> - SA_UIDNEXT - status->uidnext にメールボックスの次のUIDを設定する - </simpara> - </listitem> - <listitem> <simpara> - SA_UIDVALIDITY - メールボックスのUIDがもはや有効ではない場合に変化する - 定数を status->uidvalidity に設定する + UNKEYWORD "string" - キーワード "string" +を有さないメッセージにマッチ </simpara> </listitem> <listitem> <simpara> - SA_ALL - 上記のものを全f設定する + UNSEEN - 未読のメッセージにマッチ </simpara> </listitem> </itemizedlist> </para> <para> - status->flags にも上記の各定数に対するビットマスクが - 設定されます。 + 例えば、Mom +から送られた全ての未回答のメッセージにマッチするには、 + "UNANSWERED FROM mom"を使用する必要があります。 + 検索は、大文字小文字が区別されずに行われます。 + +検索条件のリストは、UWクライアントのCソースコードからのものであり、 + 不完全または不正確である可能性があります。 + (RFC2060, section 6.4.4も参照下さい) </para> <para> - <example> - <title><function>imap_status</function> の例</title> - <programlisting role="php"> -$mbox = imap_open("{your.imap.host}","username","password",OP_HALFOPEN) - || die("can't connect: ".imap_last_error()); - -$status = imap_status($mbox,"{your.imap.host}INBOX",SA_ALL); -if($status) { - print("Messages: ". $status->messages )."<br>\n"; - print("Recent: ". $status->recent )."<br>\n"; - print("Unseen: ". $status->unseen )."<br>\n"; - print("UIDnext: ". $status->uidnext )."<br>\n"; - print("UIDvalidity:". $status->uidvalidity)."<br>\n"; -} else - print "imap_status failed: ".imap_lasterror()."\n"; - -imap_close($mbox); - </programlisting> - </example> + SE_UID が有効なフラグとして設定されている場合、 + メッセージ番号の変わりに UID を有する配列が返されます。 </para> </refsect1> </refentry> - <refentry id="function.imap-utf7-decode"> + <refentry id="function.imap-set-quota"> <refnamediv> - <refname>imap_utf7_decode</refname> - <refpurpose> - 修正版UTF-7 エンコードされた文字列をデコードする - </refpurpose> + <refname>imap_set_quota</refname> + +<refpurpose>指定したメールボックスにクオータを設定する</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_utf7_decode</function></funcdef> - <paramdef>string <parameter>text</parameter></paramdef> + <funcdef>int <function>imap_set_quota</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>quota_root</parameter></paramdef> + <paramdef>int <parameter>quota_limit</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - 修正版UTF-7の<parameter>text</parameter>を8ビットデータにデコード - します。 + +メールボックス単位でクオータ上限(最大容量)を設定します。この関数 + は、メール管理者のアカウントでオープンされている + <parameter>imap_stream</parameter> +を必要とします。他のユーザでオー + プンされている場合は、この関数は動作しません。 </para> <para> - デコードされた8ビットデータを返します。入力文字列が有効な修正版 - UTF-7文字列でない場合はfalseを返します。修正UTF-7エンコーディング - は、<ulink url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section - 5.1.3 で定義されています。 - (元のUTF-7は<ulink url="&url.rfc;rfc1642.html">RFC1642</ulink>で - 定義されています) + +この関数は、c-client2000ライブラリのユーザのみ使用可能です。 + </para> + <para> + <parameter>imap_stream</parameter> は、 + <function>imap_open</function>コール時に返されたストリームポイン + +タです。このストリームはメール管理者としてオープンする必要があり + ます。そうでない場合は、この関数は動作しません。 + <parameter>quota_root</parameter> +は、クオータを設定するメールボッ + クスです。これは、メールボックスのIMAP標準フォーマット + 'user.name' に基づき指定する必要があります。 + <parameter>quota_limit</parameter> は、 + <parameter>quota_root</parameter> の最大サイズ(KB単位)です。 + </para> + <para> + 成功時にtrue、エラー時にfalseを返します。 + </para> + <para> + <example> + <title><function>imap_set_quota</function>の例</title> + <programlisting role="php"> +$mbox = imap_open ("{your.imap.host:143}", "mailadmin", "password"); + +if(!imap_set_quota($mbox, "user.kalowsky", 3000)) { + print "Error in setting quota\n"; + return; +} + +imap_close($mbox); + </programlisting> + </example> + </para> + <para> + <function>imap_open</function>, + <function>imap_set_quota</function> も参照下さい。 </para> </refsect1> </refentry> - <refentry id="function.imap-utf7-encode"> + <refentry id="function.imap-setflag-full"> <refnamediv> - <refname>imap_utf7_encode</refname> - <refpurpose> - 8ビットデータを修正版UTF-7テキストにに変換する - </refpurpose> + <refname>imap_setflag_full</refname> + <refpurpose>メッセージにフラグをセットする</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_utf7_encode</function></funcdef> - <paramdef>string <parameter>data</parameter></paramdef> + <funcdef>string <function>imap_setflag_full</function></funcdef> + <paramdef>int <parameter>stream</parameter></paramdef> + <paramdef>string <parameter>sequence</parameter></paramdef> + <paramdef>string <parameter>flag</parameter></paramdef> + <paramdef>string <parameter>options</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - 8ビットデータの<parameter>data</parameter>を修正版UTF-7テキスト - に変換します。修正版UTF-7エンコードは - <ulink url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section 5.1.3 - で定義されています。(オリジナルのUTF-7は<ulink - url="&url.rfc;rfc1642.html">RFC1642</ulink>で定義されています) + +この関数は、指定したシーケンスのメッセージのフラグに指定したフラグを + セットし、保存します。 </para> <para> - 修正版UTF-7のテキストを返します。 + 設定可能なフラグは、(RFC2060で定義された) "\\Seen", "\\Answered", + "\\Flagged", "\\Deleted", "\\Draft", "\\Recent" です。 + </para> + <para> + +オプションはビットマスクであり、以下の組み合わせとなります。 + <informalexample> + <literallayout> + ST_UID シーケンス引数はシーケンス番号の代わりに +UID を + 含みます + </literallayout> + </informalexample> </para> + <para> + <example> + <title><function>imap_setflag_full</function> の例</title> + <programlisting role="php"> +$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); + </programlisting> + </example> + </para> </refsect1> </refentry> - <refentry id="function.imap-utf8"> + <refentry id="function.imap-sort"> <refnamediv> - <refname>imap_utf8</refname> - <refpurpose> - テキストをUTF8に変換する - </refpurpose> + <refname>imap_sort</refname> + <refpurpose></refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_utf8</function></funcdef> - <paramdef>string <parameter>text</parameter></paramdef> + <funcdef>array <function>imap_sort</function></funcdef> + <paramdef>int <parameter>stream</parameter></paramdef> + <paramdef>int <parameter>criteria</parameter></paramdef> + <paramdef>int <parameter>reverse</parameter></paramdef> + <paramdef>int <parameter>options</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - 指定した<parameter>text</parameter>を - (<ulink url="&url.rfc;rfc2044.html">RFC2044</ulink>で定義された) - UTF8に変換します。 + +指定したパラメータによりソートされたメッセージ番号の配列を + 返します。 + </para> + <para> + 逆順にソートする場合は、reverse を 1 にします。 + </para> + <para> + criteria は、次のどれかとします。(一つのみ) + <informalexample> + <literallayout> +SORTDATE メッセージの日付 +SORTARRIVAL 到着日付 +SORTFROM 最初の From アドレスのメールボックス +SORTSUBJECT メッセージ Subject +SORTTO 最初の To アドレスのメールボックス +SORTCC 最初の cc アドレスのメールボックス +SORTSIZE メッセージのサイズ + </literallayout> + </informalexample> + </para> + <para> + フラグはビットマスクであり、次の組み合わせとjります。 + <informalexample> + <literallayout> +SE_UID シーケンス番号の変わりに UID を返す +SE_NOPREFETCH 検索したメッセージを事前取得しない + </literallayout> + </informalexample> </para> </refsect1> </refentry> - <refentry id="function.imap-fetch-overview"> + <refentry id="function.imap-status"> <refnamediv> - <refname>imap_fetch_overview</refname> + <refname>imap_status</refname> <refpurpose> - 指定したメッセージのヘッダ情報の概要を読む + +現在のメールボックス以外のメールボックスのステータス情報を返す </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>array <function>imap_fetch_overview</function></funcdef> + <funcdef>object <function>imap_status</function></funcdef> <paramdef>int <parameter>imap_stream</parameter></paramdef> - <paramdef>string <parameter>sequence</parameter></paramdef> + <paramdef>string <parameter>mailbox</parameter></paramdef> + <paramdef>int <parameter>options</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - この関数はメールヘッダを取得し、その内容の概要を返します。 - オブジェクトの配列を返します。 - 各ヘッダを次のように記述するオブジェクトの配列を返します。 + +この関数は、ステータス情報を有するオブジェクトを返します。 + 有効なフラグは次のようになります。 <itemizedlist> <listitem> - <simpara> - subject - メッセージの題名(subject) - </simpara> - </listitem> - <listitem> - <simpara> - from - 送信者 - </simpara> - </listitem> - <listitem> - <simpara> - date - 送信日 - </simpara> - </listitem> - <listitem> - <simpara> - message_id - メッセージID - </simpara> - </listitem> - <listitem> - <simpara> - references - このメッセージIDへのリファレンス - </simpara> - </listitem> - <listitem> - <simpara> - size - サイズ(バイト数) - </simpara> - </listitem> - <listitem> - <simpara> - uid - メールボックスにおけるこのメッセージのUID - </simpara> - </listitem> - <listitem> - <simpara> - msgno - メールボックスにおけるこのメッセージのメッセージ番号 - </simpara> - </listitem> - <listitem> <simpara> - recent - このメッセージのrecentフラグの有無 + SA_MESSAGES - status->messages +にメールボックスのメッセージ数を設定する </simpara> </listitem> <listitem> <simpara> - flagged - このメッセージのフラグの有無 + SA_RECENT - status->recent +にメールボックスの最近のメッセージ数を設定する </simpara> </listitem> <listitem> <simpara> - answered - このメッセージの返信済フラグの有無 + SA_UNSEEN - status->unseen +にメールボックスの未読の(新規)メッセージ数を + 設定する </simpara> </listitem> <listitem> <simpara> - deleted - このメッセージの削除フラグの有無 + SA_UIDNEXT - status->uidnext +にメールボックスの次のUIDを設定する </simpara> </listitem> <listitem> <simpara> - seen - こ?áッセージの既読フラグの有無 + SA_UIDVALIDITY - +メールボックスのUIDがもはや有効ではない場合に変化する + 定数を status->uidvalidity に設定する </simpara> </listitem> <listitem> <simpara> - draft - このメッセージのドラフトフラグの有無 + SA_ALL - 上記のものを全f設定する </simpara> </listitem> </itemizedlist> </para> <para> + status->flags にも上記の各定数に対するビットマスクが + 設定されます。 + </para> + <para> <example> - <title><function>imap_fetch_overview</function> の例</title> + <title><function>imap_status</function> の例</title> <programlisting role="php"> -$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); +$mbox = imap_open("{your.imap.host}","username","password",OP_HALFOPEN) + || die("can't connect: ".imap_last_error()); -if(is_array($overview)) { - reset($overview); - while( list($key,$val) = each($overview)) { - print $val->msgno - . " - " . $val->date - . " - " . $val->subject - . "\n"; - } -} +$status = imap_status($mbox,"{your.imap.host}INBOX",SA_ALL); +if($status) { + print("Messages: ". $status->messages )."<br>\n"; + print("Recent: ". $status->recent )."<br>\n"; + print("Unseen: ". $status->unseen )."<br>\n"; + print("UIDnext: ". $status->uidnext )."<br>\n"; + print("UIDvalidity:". $status->uidvalidity)."<br>\n"; +} else + print "imap_status failed: ".imap_lasterror()."\n"; -imap_close ($mbox); +imap_close($mbox); </programlisting> </example> </para> </refsect1> </refentry> - <refentry id="function.imap-mime-header-decode"> + <refentry id="function.imap-subscribe"> <refnamediv> - <refname>imap_mime_header_decode</refname> - <refpurpose>MIMEヘッダーエレメントをデコードする</refpurpose> + <refname>imap_subscribe</refname> + <refpurpose>メールボックスの購読</refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>array <function>imap_header_decode</function></funcdef> - <paramdef>string <parameter>text</parameter></paramdef> + <funcdef>int <function>imap_subscribe</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>mbox</parameter></paramdef> </funcprototype> </funcsynopsis> + <para> + 新規メールボックスを購読します。 + </para> <para> - 関数<function>imap_mime_header_decode</function>は、非ASCIIテキス - トのMIMEメッセージヘッダエクステンションをデコードします。 - (<ulink url="&url.rfc;rfc2047.html">RFC2047</ulink>を参照下さい) - デコードされた要素は、オブジェクトの配列で返されます。 - ただし、各オブジェクトは二つのプロパティ"charset"と"text"を有しています。 - 要素がエンコードされていない場合、言い替えるとプレーンなUS-ASCIIの場合、 - この要素の"charset"プロパティは"default"に設定されます。 + 成功するとtrue、失敗するとfalseを返します。 </para> + </refsect1> + </refentry> + + <refentry id="function.imap-uid"> + <refnamediv> + <refname>imap_uid</refname> + <refpurpose> + 指定したメッセージシーケンス番号の UID を返す + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>imap_uid</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>int <parameter>msgno</parameter></paramdef> + </funcprototype> + </funcsynopsis> <para> - <example> - <title><function>imap_mime_header_decode</function>の例</title> - <programlisting role="php"> -$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <[EMAIL PROTECTED]>"; + この関数は、指定したメッセージシーケンス番号の UID +を返します。 + +メッセージ番号はメールボックスの内容を変更する度に変わる可能性が + +ありますが、UIDはユニークなIDであり時間が経過しても変わりません。 + この関数は、<function>imap_msgno</function> の逆関数です。 + </para> + </refsect1> + </refentry> -$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"; -} + <refentry id="function.imap-undelete"> + <refnamediv> + <refname>imap_undelete</refname> + +<refpurpose>削除マークがついているメッセージのマークをはずす</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>imap_undelete</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>int <parameter>msg_number</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + この関数は、<function>imap_delete</function>または + +<function>imap_mail_move</function>によりセットされた指定されたメッ + セージの削除フラグをはずします。 + </para> + <para> + 成功するとtrue、失敗するとfalseを返します。 + </para> + </refsect1> + </refentry> - </programlisting> - </example> + <refentry id="function.imap-unsubscribe"> + <refnamediv> + <refname>imap_unsubscribe</refname> + <refpurpose>メールボックスの購読をやめる</refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>imap_unsubscribe</function></funcdef> + <paramdef>int <parameter>imap_stream</parameter></paramdef> + <paramdef>string <parameter>mbox</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + 指定されたメールボックスの購読を中止します。 </para> <para> - 上の例には二つの要素があります。最初の要素はISO-8859-1、 - 2番目の要素はプレーンなUS-ASCIIで事前にエンコードされています。 + 成功するとtrue、失敗するとfalseを返します。 + </para> + </refsect1> + </refentry> + + <refentry id="function.imap-utf7-decode"> + <refnamediv> + <refname>imap_utf7_decode</refname> + <refpurpose> + 修正版UTF-7 エンコードされた文字列をデコードする + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>imap_utf7_decode</function></funcdef> + <paramdef>string <parameter>text</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + 修正版UTF-7の<parameter>text</parameter>を8ビットデータにデコード + します。 + </para> + <para> + +デコードされた8ビットデータを返します。入力文字列が有効な修正版 + +UTF-7文字列でない場合はfalseを返します。修正UTF-7エンコーディング + は、<ulink url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section + 5.1.3 で定義されています。 + (元のUTF-7は<ulink url="&url.rfc;rfc1642.html">RFC1642</ulink>で + 定義されています) </para> </refsect1> </refentry> - <refentry id="function.imap-mail-compose"> + <refentry id="function.imap-utf7-encode"> <refnamediv> - <refname>imap_mail_compose</refname> + <refname>imap_utf7_encode</refname> <refpurpose> - 指定したエンベロープおよびボディーセクションに基づきMIMEメッセー - ジを作成 + 8ビットデータを修正版UTF-7テキストにに変換する </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_mail_compose</function></funcdef> - <paramdef>array <parameter>envelope</parameter></paramdef> - <paramdef>array <parameter>body</parameter></paramdef> + <funcdef>string <function>imap_utf7_encode</function></funcdef> + <paramdef>string <parameter>data</parameter></paramdef> </funcprototype> </funcsynopsis> <para> + 8ビットデータの<parameter>data</parameter>を修正版UTF-7テキスト + に変換します。修正版UTF-7エンコードは + <ulink url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section 5.1.3 + で定義されています。(オリジナルのUTF-7は<ulink + url="&url.rfc;rfc1642.html">RFC1642</ulink>で定義されています) </para> <para> - <example> - <title><function>imap_mail_compose</function> の例</title> - <programlisting role="php"> -<?php - -$envelope["from"]="[EMAIL PROTECTED]"; -$envelope["to"]="musone@darkstar"; -$envelope["cc"]="[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)); - -?> - </programlisting> - </example> + 修正版UTF-7のテキストを返します。 </para> </refsect1> </refentry> - <refentry id="function.imap-mail"> + <refentry id="function.imap-utf8"> <refnamediv> - <refname>imap_mail</refname> + <refname>imap_utf8</refname> <refpurpose> - e-mailメッセージを送信する + テキストをUTF8に変換する </refpurpose> </refnamediv> <refsect1> <title>説明</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>imap_mail</function></funcdef> - <paramdef>string <parameter>to</parameter></paramdef> - <paramdef>string <parameter>subject</parameter></paramdef> - <paramdef>string <parameter>message</parameter></paramdef> - <paramdef>string - <parameter> - <replaceable><optional>additional_headers</optional></replaceable> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <replaceable><optional>cc</optional></replaceable> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <replaceable><optional>bcc</optional></replaceable> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <replaceable><optional>rpath</optional></replaceable> - </parameter> - </paramdef> + <funcdef>string <function>imap_utf8</function></funcdef> + <paramdef>string <parameter>text</parameter></paramdef> </funcprototype> </funcsynopsis> <para> - この関数は、現在、PHP 3でのみ利用可能です。 + 指定した<parameter>text</parameter>を + (<ulink url="&url.rfc;rfc2044.html">RFC2044</ulink>で定義された) + UTF8に変換します。 </para> </refsect1> </refentry> Index: phpdoc/ja/functions/strings.xml diff -u phpdoc/ja/functions/strings.xml:1.31 phpdoc/ja/functions/strings.xml:1.32 --- phpdoc/ja/functions/strings.xml:1.31 Wed Mar 28 05:45:34 2001 +++ phpdoc/ja/functions/strings.xml Thu Apr 12 08:30:00 2001 @@ -1947,8 +1947,52 @@ </listitem> </orderedlist> </para> + <para> + PHP バージョン 4.0.6 +でフォーマット文字列で引数の番号付け/交換が + サポートされました。以下に例を示します。 + <example> + <title>引数の交換</title> + <programlisting role="php"> +$format = "There are %d monkeys in the %s"; +printf($format,$num,$location); + </programlisting> + </example> + この出力は、"There are 5 monkeys in the tree" のようになります。 + +ここで、フォーマット文字列が別のファイルにある場合を考えてみましょ + +う。これは、出力を国際化したりする場合に行われる可能性があります。 + この場合、次の書き変えられます。 + <example> + <title>引数の交換</title> + <programlisting role="php"> +$format = "The %s contains %d monkeys"; +printf($format,$num,$location); + </programlisting> + </example> + +ここで、問題が発生します。フォーマット文字列における置換指示子の + +順番は、コードにおける引数の順番と一致していません。コードは変更 + +せず、置換指示子が参照するフォーマット文字列で指示を行う方が望ま + +しいと言えます。フォーマット文字列を次のように書き換えてみましょ + う。 + <example> + <title>引数の交換</title> + <programlisting role="php"> +$format = "The %2\$s contains %1\$d monkeys"; +printf($format,$num,$location); + </programlisting> + </example> + +加えて、これによりコードに引数を追加せずに置換指示子を複数回使用 + することも可能になります。例えば、次のようになります。 + <example> + <title>引数の交換</title> + <programlisting role="php"> +$format = "The %2\$s contains %1\$d monkeys. That's a nice %2\$s full of %1\$d +monkeys."; +printf($format,$num,$location); + </programlisting> + </example> + </para> <simpara> - <function>printf</function>, <function>number_format</function> + <function>printf</function>, <function>sscanf</function>, + <function>fscanf</function>, <function>number_format</function> も参照下さい。 </simpara> </refsect1> @@ -1963,7 +2007,7 @@ </programlisting> </example> <example> - <title>sprintf: 貨幣をフォーマットする例</title> + <title>sprintf: 通貨をフォーマットする例</title> <programlisting role="php"> $money1 = 68.75; $money2 = 54.35; Index: phpdoc/ja/language/control-structures.xml diff -u phpdoc/ja/language/control-structures.xml:1.16 phpdoc/ja/language/control-structures.xml:1.17 --- phpdoc/ja/language/control-structures.xml:1.16 Sun Mar 18 08:36:45 2001 +++ phpdoc/ja/language/control-structures.xml Thu Apr 12 08:30:01 2001 @@ -450,21 +450,29 @@ <note> <para> <literal>foreach</literal>は、指定した配列自体に対してではなく、 - そのコピーに対して処理を行うことに注意して下さい。このため、each - 文のように配列のポインタ位置が変更されることはありません。 + +そのコピーに対して処理を行うことに注意して下さい。このため、 + <function>each</function> +文のように配列のポインタ位置が変更され + +ることはなく、返される配列要素への変更は、元の配列には反映されま + せん。 </para> </note> </para> + <note> + <para> + <literal>foreach</literal> は、'@' +によりエラーメッセージ出力を抑 + 制する機能をサポートしていません。 + </para> + </note> <para> 既にご存知かと思いますが、以下の文は機能的に等価です。 <informalexample> <programlisting role="php"> -reset( $arr ); -while( list( , $value ) = each( $arr ) ) { +reset ($arr); +while (list(, $value) = each ($arr)) { echo "Value: $value<br>\n"; } -foreach( $arr as $value ) { +foreach ($arr as $value) { echo "Value: $value<br>\n"; } </programlisting> @@ -472,31 +480,32 @@ 以下の文も機能的に等価です。 <informalexample> <programlisting role="php"> -reset( $arr ); -while( list( $key, $value ) = each( $arr ) ) { +reset ($arr); +while (list($key, $value) = each ($arr)) { echo "Key: $key; Value: $value<br>\n"; } -foreach( $arr as $key => $value ) { +foreach ($arr as $key => $value) { echo "Key: $key; Value: $value<br>\n"; } </programlisting> </informalexample> </para> - <para> 使用法を示すためにその他の例を示します。 <informalexample> <programlisting role="php"> /* foreach の例 1: 値のみ */ -$a = array(1, 2, 3, 17); + +$a = array (1, 2, 3, 17); -foreach($a as $v) { +foreach ($a as $v) { print "Current value of \$a: $v.\n"; } /* foreachの例2: 値 (説明用にキーを出力) */ -$a = array(1, 2, 3, 17); + +$a = array (1, 2, 3, 17); $i = 0; /* 説明用 */ @@ -505,6 +514,7 @@ } /* foreachの例3: キーと値 */ + $a = array( "one" => 1, "two" => 2, @@ -515,6 +525,25 @@ foreach($a as $k => $v) { print "\$a[$k] => $v.\n"; } + +/* foreach の例4: 多次元配列 */ + +$a[0][0] = "a"; +$a[0][1] = "b"; +$a[1][0] = "y"; +$a[1][1] = "z"; + +foreach($a as $v1) { + foreach ($v1 as $v2) { + print "$v2\n"; + } +} + +/* foreach の例5: 動的配列 + +foreach(array(1, 2, 3, 4, 5) as $v) { + print "$v\n"; +} </programlisting> </informalexample> </para> @@ -522,18 +551,16 @@ <sect1 id="control-structures.break"> <title><literal>break</literal></title> - <simpara> <literal>break</literal>が現在実行中の <literal>for</literal>, <literal>while</literal>, - <literal>switch</literal>構造の実行を終了します。 + <literal>foreach</literal>, <literal>switch</literal>構造の実行を + 終了します。 </simpara> - <simpara> <literal>break</literal>では、オプションの引数で ネストしたループ構造を抜ける数を指定することができます。 </simpara> - <para> <informalexample> <programlisting role="php">