danbeck         Thu Apr  5 17:14:54 2001 EDT

  Modified files:              
    /phpdoc/en/functions        imap.xml 
  Log:
  rearranged the imap functions to be in alphanumeric order
  
Index: phpdoc/en/functions/imap.xml
diff -u phpdoc/en/functions/imap.xml:1.32 phpdoc/en/functions/imap.xml:1.33
--- phpdoc/en/functions/imap.xml:1.32   Tue Feb 27 17:01:42 2001
+++ phpdoc/en/functions/imap.xml        Thu Apr  5 17:14:54 2001
@@ -83,6 +83,63 @@
    </para>
   </partintro>
 
+  <refentry id="function.imap-8bit">
+   <refnamediv>
+    <refname>imap_8bit</refname>
+    <refpurpose>
+     Convert an 8bit string to a quoted-printable string
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>imap_8bit</function></funcdef>
+      <paramdef>string <parameter>string</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>  
+     Convert an 8bit string to a quoted-printable string (according to
+     <ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>, section
+     6.7).
+    </para>
+    <para>
+     Returns a quoted-printable string.
+    </para>
+    <para>
+     See also <function>imap_qprint</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-alerts">
+   <refnamediv>
+    <refname>imap_alerts</refname>
+    <refpurpose>
+     This function returns all IMAP alert messages (if any) that have
+     occurred during this page request or since the alert stack was
+     reset
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>imap_alerts</function></funcdef>
+      <paramdef>void </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     This function returns an array of all of the IMAP alert messages
+     generated since the last <function>imap_alerts</function> call,
+     or the beginning of the page. When
+     <function>imap_alerts</function> is called, the alert stack is
+     subsequently cleared. The IMAP specification requires that these
+     messages be passed to the user.
+    </para>
+   </refsect1>
+  </refentry>
+
   <refentry id="function.imap-append">
    <refnamediv>
     <refname>imap_append</refname> 
@@ -168,6 +225,33 @@
    </refsect1>
   </refentry>
 
+  <refentry id="function.imap-binary">
+   <refnamediv>
+    <refname>imap_binary</refname>
+    <refpurpose>
+     Convert an 8bit string to a base64 string
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>imap_binary</function></funcdef>
+      <paramdef>string <parameter>string</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>  
+     Convert an 8bit string to a base64 string (according to <ulink
+     url="&url.rfc;rfc2045.html">RFC2045</ulink>, Section 6.8).
+    </para>
+    <para>
+     Returns a base64 string.
+    </para>
+    <para>
+     See also <function>imap_base64</function>.
+    </para>
+   </refsect1>
+  </refentry>
 
   <refentry id="function.imap-body">
    <refnamediv>
@@ -272,6 +356,45 @@
    </refsect1>
   </refentry>
 
+
+  <refentry id="function.imap-clearflag-full">
+   <refnamediv>
+    <refname>imap_clearflag_full</refname>
+    <refpurpose>Clears flags on messages</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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>
+     This function causes a store to delete the specified flag to the
+     flags set for the messages in the specified sequence.
+     The flags which you can unset are "\\Seen", "\\Answered",
+     "\\Flagged", "\\Deleted", "\\Draft", and "\\Recent" (as defined
+     by RFC2060).
+    </para>
+    <para>
+     The options are a bit mask with one or more of the following:
+     <informalexample>
+      <literallayout>
+ST_UID          The sequence argument contains UIDs instead of
+                sequence numbers
+      </literallayout>
+     </informalexample>
+    </para>
+   </refsect1>
+  </refentry>
+
+
   <refentry id="function.imap-close">
    <refnamediv>
     <refname>imap_close</refname>
@@ -465,6 +588,34 @@
    </refsect1>
   </refentry>
 
+  <refentry id="function.imap-errors">
+   <refnamediv>
+    <refname>imap_errors</refname>
+    <refpurpose>
+     This function returns all of the IMAP errors (if any) that have
+     occurred during this page request or since the error stack was
+     reset.
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>imap_errors</function></funcdef>
+      <paramdef>void </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     This function returns an array of all of the IMAP error messages
+     generated since the last <function>imap_errors</function> call,
+     or the beginning of the page. When
+     <function>imap_errors</function> is called, the error stack is
+     subsequently cleared.  
+    </para>
+   </refsect1>
+  </refentry>
+
+
   <refentry id="function.imap-expunge">
    <refnamediv>
     <refname>imap_expunge</refname>
@@ -490,68 +641,233 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-fetchbody">
+  <refentry id="function.imap-fetch-overview">
    <refnamediv>
-    <refname>imap_fetchbody</refname>
+    <refname>imap_fetch_overview</refname>
     <refpurpose>
-     Fetch a particular section of the body of the message
+     Read an overview of the information in the headers of the given message
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>string <function>imap_fetchbody</function></funcdef>
+      <funcdef>array <function>imap_fetch_overview</function></funcdef>
       <paramdef>int <parameter>imap_stream</parameter></paramdef>
-      <paramdef>int <parameter>msg_number</parameter></paramdef>
-      <paramdef>string <parameter>part_number</parameter></paramdef>
-      <paramdef>flags 
-       <parameter><optional>flags</optional></parameter>
-      </paramdef>
+      <paramdef>string <parameter>sequence</parameter></paramdef>
+      <paramdef>int <parameter><optional>flags</optional></parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
-    <para>
-     This function causes a fetch of a particular section of the body
-     of the specified messages as a text string and returns that text
-     string. The section specification is a string of integers
-     delimited by period which index into a body part list as per the
-     IMAP4 specification. Body parts are not decoded by this function.
-    </para>
     <para>
-     The options for <function>imap_fetchbody</function> is a bitmask
-     with one or more of the following:
+     This function fetches mail headers for the given
+     <parameter>sequence</parameter> and returns an overview of their
+     contents. <parameter>sequence</parameter> will contain a sequence
+     of message indices or UIDs, if <parameter>flags</parameter>
+     contains FT_UID. The returned value is an array of objects
+     describing one message header each:
      <itemizedlist>
       <listitem>
        <simpara>
-       FT_UID - The <parameter>msg_number</parameter> is a UID
+        subject - the messages subject
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       FT_PEEK - Do not set the \Seen flag if not already set
+        from - who sent it
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       FT_INTERNAL - The return string is in "internal" format,
-       without any attempt to canonicalize CRLF.
+        date - when was it sent
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        message_id - Message-ID 
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        references - is a reference to this message id
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        size - size in bytes
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        uid - UID the message has in the mailbox
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        msgno - message sequence number in the maibox
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        recent - this message is flagged as recent
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        flagged -  this message is flagged
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        answered -  this message is flagged as answered
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        deleted -  this message is flagged for deletion
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        seen -  this message is flagged as already read
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        draft -  this message is flagged as being a draft
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-fetchstructure">
-   <refnamediv>
-    <refname>imap_fetchstructure</refname> 
-    <refpurpose>
-     Read the structure of a particular message
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
+    <para>
+     <example>
+      <title><function>imap_fetch_overview</function> example</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>
+    <refpurpose>
+     Fetch a particular section of the body of the message
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>imap_fetchbody</function></funcdef>
+      <paramdef>int <parameter>imap_stream</parameter></paramdef>
+      <paramdef>int <parameter>msg_number</parameter></paramdef>
+      <paramdef>string <parameter>part_number</parameter></paramdef>
+      <paramdef>flags 
+       <parameter><optional>flags</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     This function causes a fetch of a particular section of the body
+     of the specified messages as a text string and returns that text
+     string. The section specification is a string of integers
+     delimited by period which index into a body part list as per the
+     IMAP4 specification. Body parts are not decoded by this function.
+    </para>
+    <para>
+     The options for <function>imap_fetchbody</function> is a bitmask
+     with one or more of the following:
+     <itemizedlist>
+      <listitem>
+       <simpara>
+       FT_UID - The <parameter>msg_number</parameter> is a UID
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       FT_PEEK - Do not set the \Seen flag if not already set
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       FT_INTERNAL - The return string is in "internal" format,
+       without any attempt to canonicalize CRLF.
+       </simpara>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-fetchheader">
+   <refnamediv>
+    <refname>imap_fetchheader</refname>
+    <refpurpose>Returns header for a message</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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>
+     This function causes a fetch of the complete, unfiltered 
+     <ulink url="&url.rfc;rfc822.html">RFC822</ulink>
+     format header of the specified message as a text string and
+     returns that text string.
+    </para>
+    <para>
+     The options are:
+     <informalexample>
+      <literallayout>
+FT_UID          The msgno argument is a UID 
+FT_INTERNAL     The return string is in "internal" format,
+                without any attempt to canonicalize to CRLF
+                newlines
+FT_PREFETCHTEXT The RFC822.TEXT should be pre-fetched at the
+                same time.  This avoids an extra RTT on an
+                IMAP connection if a full message text is
+                desired (e.g. in a "save to local file"
+                operation)
+      </literallayout>
+     </informalexample>
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-fetchstructure">
+   <refnamediv>
+    <refname>imap_fetchstructure</refname> 
+    <refpurpose>
+     Read the structure of a particular message
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
      <funcprototype>
       <funcdef>object
        <function>imap_fetchstructure</function>
@@ -710,234 +1026,60 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-headerinfo">
+  <refentry id="function.imap-get-quota">
    <refnamediv>
-    <refname>imap_headerinfo</refname>
-    <refpurpose>Read the header of the message</refpurpose>
+    <refname>imap_get_quota</refname>
+    <refpurpose>
+     Retrieve the quota level settings, and usage statics per mailbox
+    </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
-     <funcdef>object <function>imap_headerinfo</function></funcdef>
-     <paramdef>int <parameter>imap_stream</parameter></paramdef>
-     <paramdef>int <parameter>msg_number</parameter></paramdef>
-     <paramdef>int 
-      <parameter><optional>fromlength</optional></parameter>
-     </paramdef>
-     <paramdef>int 
-      <parameter><optional>subjectlength</optional></parameter>
-     </paramdef>
-     <paramdef>string 
-      <parameter><optional>defaulthost</optional></parameter>
-     </paramdef>
+     <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>
-     This function returns an object of various header elements.
+     Returns an array with integer values limit and usage for the given 
+     mailbox.  The value of limit represents the total amount of space
+     allowed for this mailbox.  The usage value represents the mailboxes
+     current level of capacity.  Will return FALSE in the case of failure.
     </para>
-    <para>  
-     <informalexample>
-      <literallayout>
-       remail, date, Date, subject, Subject, in_reply_to, message_id,
-       newsgroups, followup_to, references
-
-message flags:
-   Recent -  'R' if recent and seen, 
-             'N' if recent and not seen, 
-             ' ' if not recent
-   Unseen -  'U' if not seen AND not recent, 
-             ' ' if seen OR not seen and recent
-   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
-
-NOTE that the Recent/Unseen behavior is a little odd. If you want to
-know if a message is Unseen, you must check for
-
-Unseen == 'U' || Recent == 'N'
-
-toaddress (full to: line, up to 1024 characters)
-
-to[] (returns an array of objects from the To line, containing):
-   personal
-   adl
-   mailbox
-   host
-
-fromaddress (full from: line, up to 1024 characters)
-
-from[] (returns an array of objects from the From line, containing):
-   personal
-   adl
-   mailbox
-   host
-
-ccaddress (full cc: line, up to 1024 characters)
-cc[] (returns an array of objects from the Cc line, containing):
-   personal
-   adl
-   mailbox
-   host
-
-bccaddress (full bcc line, up to 1024 characters)
-bcc[] (returns an array of objects from the Bcc line, containing):
-   personal
-   adl
-   mailbox
-   host
-
-reply_toaddress (full reply_to: line, up to 1024 characters)
-reply_to[] (returns an array of objects from the Reply_to line,
-containing):
-   personal
-   adl
-   mailbox
-   host
-
-senderaddress (full sender: line, up to 1024 characters)
-sender[] (returns an array of objects from the sender line, containing):
-   personal
-   adl
-   mailbox
-   host
-
-return_path (full return-path: line, up to 1024 characters)
-return_path[] (returns an array of objects from the return_path line,
-containing):
-   personal
-   adl
-   mailbox
-   host
-
-udate (mail message date in unix time)
-
-fetchfrom (from line formatted to fit <parameter>fromlength</parameter> 
-characters)
-
-fetchsubject (subject line formatted to fit <parameter>subjectlength</parameter> 
characters)
-      </literallayout>
-     </informalexample>
+    <para>
+     This function is currently only available to users of the c-client2000
+     library.
     </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-header">
-   <refnamediv>
-    <refname>imap_header</refname>
-    <refpurpose>Read the header of the message</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcdef>object <function>imap_header</function></funcdef>
-     <paramdef>int <parameter>imap_stream</parameter></paramdef>
-     <paramdef>int <parameter>msg_number</parameter></paramdef>
-     <paramdef>int 
-      <parameter><optional>fromlength</optional></parameter>
-     </paramdef>
-     <paramdef>int 
-      <parameter><optional>subjectlength</optional></parameter>
-     </paramdef>
-     <paramdef>string 
-      <parameter><optional>defaulthost</optional></parameter>
-     </paramdef>
-    </funcsynopsis>
-    <para>
-     This is an alias to <function>imap_headerinfo</function>
-     and is identical to this in any way.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-rfc822-parse-headers">
-   <refnamediv>
-    <refname>imap_rfc822_parse_headers</refname>
-    <refpurpose>Parse mail headers from a string</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>object <function>imap_rfc822_parse_headers</function></funcdef>
-      <paramdef>string <parameter>headers</parameter></paramdef>
-      <paramdef>string 
-       <parameter><optional>defaulthost</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function returns an object of various header elements,
-     similar to <function>imap_header</function>, except without the
-     flags and other elements that come from the IMAP server.
-    </para>
-   </refsect1>
-  </refentry>
-
-<refentry id="function.imap-headers">
-   <refnamediv>
-    <refname>imap_headers</refname>
-    <refpurpose>
-     Returns headers for all messages in a mailbox
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>imap_headers</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns an array of string formatted with header info. One
-     element per mail message.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-listmailbox">
-   <refnamediv>
-    <refname>imap_listmailbox</refname>
-    <refpurpose>Read the list of mailboxes</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     Returns an array containing the names of the mailboxes.
-     See <function>imap_getmailboxes</function> for a description
-     of <parameter>ref</parameter> and <parameter>pattern</parameter>.
+     <parameter>imap_stream</parameter> should be the value returned from
+     an <function>imap_status</function> call.  This stream is required to
+     be opened as the mail admin user for the quota function to work.
+     <parameter>quota_root</parameter> should normally be in the form of
+     user.name where name is the mailbox you wish to retrieve information
+     about.
     </para>
     <para>
      <example>
-      <title><function>imap_listmailbox</function> example</title>
+      <title><function>imap_get_quota</function> example</title>
       <programlisting role="php">
-$mbox = imap_open("{your.imap.host}","username","password",OP_HALFOPEN)
+$mbox = imap_open("{your.imap.host}","mailadmin","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)."&lt;br>\n";
-} else
-  print "imap_listmailbox failed: ".imap_last_error()."\n";
+$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_close($mbox); 
       </programlisting>
      </example>
     </para>
+    <para>
+     See also <function>imap_open</function>, <function>imap_set_quota</function>.
+    </para>
    </refsect1>
   </refentry>
 
@@ -1046,87 +1188,6 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-get-quota">
-   <refnamediv>
-    <refname>imap_get_quota</refname>
-    <refpurpose>
-     Retrieve the quota level settings, and usage statics per mailbox
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     Returns an array with integer values limit and usage for the given 
-     mailbox.  The value of limit represents the total amount of space
-     allowed for this mailbox.  The usage value represents the mailboxes
-     current level of capacity.  Will return FALSE in the case of failure.
-    </para>
-    <para>
-     This function is currently only available to users of the c-client2000
-     library.
-    </para>
-    <para>
-     <parameter>imap_stream</parameter> should be the value returned from
-     an <function>imap_status</function> call.  This stream is required to
-     be opened as the mail admin user for the quota function to work.
-     <parameter>quota_root</parameter> should normally be in the form of
-     user.name where name is the mailbox you wish to retrieve information
-     about.
-    </para>
-    <para>
-     <example>
-      <title><function>imap_get_quota</function> example</title>
-      <programlisting role="php">
-$mbox = imap_open("{your.imap.host}","mailadmin","password",OP_HALFOPEN)
-      || die("can't connect: ".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>
-     See also <function>imap_open</function>, <function>imap_set_quota</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-listsubscribed">
-   <refnamediv>
-    <refname>imap_listsubscribed</refname>
-    <refpurpose>List all the subscribed mailboxes</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     Returns an array of all the mailboxes that you have
-     subscribed. This is almost identical to 
-     <function>imap_listmailbox</function>, but will only return
-     mailboxes the user you logged in as has subscribed.
-    </para>
-   </refsect1>
-  </refentry>
-
   <refentry id="function.imap-getsubscribed">
    <refnamediv>
     <refname>imap_getsubscribed</refname>
@@ -1150,61 +1211,420 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-mail-copy">
+
+  <refentry id="function.imap-header">
    <refnamediv>
-    <refname>imap_mail_copy</refname>
-    <refpurpose>Copy specified messages to a mailbox</refpurpose>
+    <refname>imap_header</refname>
+    <refpurpose>Read the header of the message</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>imap_mail_copy</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-      <paramdef>string <parameter>msglist</parameter></paramdef>
-      <paramdef>string <parameter>mbox</parameter></paramdef>
-      <paramdef>int 
-       <parameter><optional>flags</optional></parameter>
-      </paramdef>
-     </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><optional>fromlength</optional></parameter>
+     </paramdef>
+     <paramdef>int 
+      <parameter><optional>subjectlength</optional></parameter>
+     </paramdef>
+     <paramdef>string 
+      <parameter><optional>defaulthost</optional></parameter>
+     </paramdef>
     </funcsynopsis>
     <para>
-     Returns true on success and false on error.
-    </para>  
-    <para> 
-     Copies mail messages specified by <parameter>msglist</parameter>
-     to specified mailbox. <parameter>msglist</parameter> is a range
-     not just message numbers (as described in 
-     <ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>).
-    </para>
-    <para>
-     Flags is a bitmask of one or more of
-     <itemizedlist>
-      <listitem>
-       <simpara>
-       CP_UID - the sequence numbers contain UIDS
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       CP_MOVE - Delete the messages from the current mailbox after
-       copying
-       </simpara>
-      </listitem>
-     </itemizedlist>
+     This is an alias to <function>imap_headerinfo</function>
+     and is identical to this in any way.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-mail-move">
+  <refentry id="function.imap-headerinfo">
    <refnamediv>
-    <refname>imap_mail_move</refname>
-    <refpurpose>Move specified messages to a mailbox</refpurpose>
+    <refname>imap_headerinfo</refname>
+    <refpurpose>Read the header of the message</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
-     <funcprototype>
+     <funcdef>object <function>imap_headerinfo</function></funcdef>
+     <paramdef>int <parameter>imap_stream</parameter></paramdef>
+     <paramdef>int <parameter>msg_number</parameter></paramdef>
+     <paramdef>int 
+      <parameter><optional>fromlength</optional></parameter>
+     </paramdef>
+     <paramdef>int 
+      <parameter><optional>subjectlength</optional></parameter>
+     </paramdef>
+     <paramdef>string 
+      <parameter><optional>defaulthost</optional></parameter>
+     </paramdef>
+    </funcsynopsis>
+    <para>
+     This function returns an object of various header elements.
+    </para>
+    <para>  
+     <informalexample>
+      <literallayout>
+       remail, date, Date, subject, Subject, in_reply_to, message_id,
+       newsgroups, followup_to, references
+
+message flags:
+   Recent -  'R' if recent and seen, 
+             'N' if recent and not seen, 
+             ' ' if not recent
+   Unseen -  'U' if not seen AND not recent, 
+             ' ' if seen OR not seen and recent
+   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
+
+NOTE that the Recent/Unseen behavior is a little odd. If you want to
+know if a message is Unseen, you must check for
+
+Unseen == 'U' || Recent == 'N'
+
+toaddress (full to: line, up to 1024 characters)
+
+to[] (returns an array of objects from the To line, containing):
+   personal
+   adl
+   mailbox
+   host
+
+fromaddress (full from: line, up to 1024 characters)
+
+from[] (returns an array of objects from the From line, containing):
+   personal
+   adl
+   mailbox
+   host
+
+ccaddress (full cc: line, up to 1024 characters)
+cc[] (returns an array of objects from the Cc line, containing):
+   personal
+   adl
+   mailbox
+   host
+
+bccaddress (full bcc line, up to 1024 characters)
+bcc[] (returns an array of objects from the Bcc line, containing):
+   personal
+   adl
+   mailbox
+   host
+
+reply_toaddress (full reply_to: line, up to 1024 characters)
+reply_to[] (returns an array of objects from the Reply_to line,
+containing):
+   personal
+   adl
+   mailbox
+   host
+
+senderaddress (full sender: line, up to 1024 characters)
+sender[] (returns an array of objects from the sender line, containing):
+   personal
+   adl
+   mailbox
+   host
+
+return_path (full return-path: line, up to 1024 characters)
+return_path[] (returns an array of objects from the return_path line,
+containing):
+   personal
+   adl
+   mailbox
+   host
+
+udate (mail message date in unix time)
+
+fetchfrom (from line formatted to fit <parameter>fromlength</parameter> 
+characters)
+
+fetchsubject (subject line formatted to fit <parameter>subjectlength</parameter> 
+characters)
+      </literallayout>
+     </informalexample>
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-headers">
+   <refnamediv>
+    <refname>imap_headers</refname>
+    <refpurpose>
+     Returns headers for all messages in a mailbox
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>imap_headers</function></funcdef>
+      <paramdef>int <parameter>imap_stream</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Returns an array of string formatted with header info. One
+     element per mail message.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-last-error">
+   <refnamediv>
+    <refname>imap_last_error</refname>
+    <refpurpose>
+     This function returns the last IMAP error (if any) that occurred
+     during this page request
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>imap_last_error</function></funcdef>
+      <paramdef>void </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     This function returns the full text of the last IMAP error
+     message that occurred on the current page. The error stack is
+     untouched; calling <function>imap_last_error</function>
+     subsequently, with no intervening errors, will return the same
+     error.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-listmailbox">
+   <refnamediv>
+    <refname>imap_listmailbox</refname>
+    <refpurpose>Read the list of mailboxes</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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>
+     Returns an array containing the names of the mailboxes.
+     See <function>imap_getmailboxes</function> for a description
+     of <parameter>ref</parameter> and <parameter>pattern</parameter>.
+    </para>
+    <para>
+     <example>
+      <title><function>imap_listmailbox</function> example</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)."&lt;br>\n";
+} else
+  print "imap_listmailbox failed: ".imap_last_error()."\n";
+ 
+imap_close($mbox);                                                                
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-listsubscribed">
+   <refnamediv>
+    <refname>imap_listsubscribed</refname>
+    <refpurpose>List all the subscribed mailboxes</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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>
+     Returns an array of all the mailboxes that you have
+     subscribed. This is almost identical to 
+     <function>imap_listmailbox</function>, but will only return
+     mailboxes the user you logged in as has subscribed.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-mail">
+   <refnamediv>
+    <refname>imap_mail</refname>
+    <refpurpose>
+     Send an email message
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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><optional>additional_headers</optional></parameter>
+      </paramdef>
+      <paramdef>string 
+       <parameter><optional>cc</optional></parameter>
+      </paramdef>
+      <paramdef>string 
+       <parameter><optional>bcc</optional></parameter>
+      </paramdef>
+      <paramdef>string 
+       <parameter><optional>rpath</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     This function is currently only available in PHP 3. 
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.imap-mail-compose">
+   <refnamediv>
+    <refname>imap_mail_compose</refname>
+    <refpurpose>
+     Create a MIME message based on given envelope and body sections 
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>imap_mail_compose</function></funcdef>
+      <paramdef>array <parameter>envelope</parameter></paramdef>
+      <paramdef>array <parameter>body</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+    </para>
+    <para>
+     <example>
+      <title><function>imap_mail_compose</function> example</title>
+      <programlisting role="php">
+&lt;?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));
+
+?&gt;
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-mail-copy">
+   <refnamediv>
+    <refname>imap_mail_copy</refname>
+    <refpurpose>Copy specified messages to a mailbox</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>imap_mail_copy</function></funcdef>
+      <paramdef>int <parameter>imap_stream</parameter></paramdef>
+      <paramdef>string <parameter>msglist</parameter></paramdef>
+      <paramdef>string <parameter>mbox</parameter></paramdef>
+      <paramdef>int 
+       <parameter><optional>flags</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Returns true on success and false on error.
+    </para>  
+    <para> 
+     Copies mail messages specified by <parameter>msglist</parameter>
+     to specified mailbox. <parameter>msglist</parameter> is a range
+     not just message numbers (as described in 
+     <ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>).
+    </para>
+    <para>
+     Flags is a bitmask of one or more of
+     <itemizedlist>
+      <listitem>
+       <simpara>
+       CP_UID - the sequence numbers contain UIDS
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       CP_MOVE - Delete the messages from the current mailbox after
+       copying
+       </simpara>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-mail-move">
+   <refnamediv>
+    <refname>imap_mail_move</refname>
+    <refpurpose>Move specified messages to a mailbox</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
       <funcdef>int <function>imap_mail_move</function></funcdef>
       <paramdef>int <parameter>imap_stream</parameter></paramdef>
       <paramdef>string <parameter>msglist</parameter></paramdef>
@@ -1220,22 +1640,192 @@
      not just message numbers (as described in 
      <ulink url="&url.rfc;rfc2060.html">RFC2060</ulink>).
     </para>
+    <para>
+     Flags is a bitmask and may contain the single option
+     <itemizedlist>
+      <listitem>
+       <simpara>
+       CP_UID - the sequence numbers contain UIDS
+       </simpara>
+      </listitem>
+     </itemizedlist>
+    </para>
+    <para>
+     Returns true on success and false on error.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-mailboxmsginfo">
+   <refnamediv>
+    <refname>imap_mailboxmsginfo</refname>
+    <refpurpose>Get information about the current mailbox</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>object <function>imap_mailboxmsginfo</function></funcdef>
+      <paramdef>int <parameter>imap_stream</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Returns information about the current mailbox. Returns FALSE on
+     failure.
+    </para> 
+    <para> 
+     The <function>imap_mailboxmsginfo</function> function checks the
+     current mailbox status on the server. It is similar to 
+     <function>imap_status</function>, but will additionally sum up the
+     size of all messages in the mailbox, which will take some additional
+     time to execute. It returns the information
+     in an object with following properties.
+    </para>
+    <para>
+     <table>
+      <title>Mailbox properties</title>
+      <tgroup cols="2">
+       <tbody>
+        <row>
+        <entry>Date</entry>
+        <entry>date of last change</entry>
+       </row>
+        <row>
+        <entry>Driver</entry>
+        <entry>driver</entry>
+       </row>
+        <row>
+        <entry>Mailbox</entry>
+        <entry>name of the mailbox</entry>
+       </row>
+        <row>
+        <entry>Nmsgs</entry>
+        <entry>number of messages</entry>
+       </row>
+        <row>
+        <entry>Recent</entry>
+        <entry>number of recent messages</entry>
+       </row>
+        <row>
+        <entry>Unread</entry>
+        <entry>number of unread messages</entry>
+       </row>
+        <row>
+        <entry>Deleted</entry>
+        <entry>number of deleted messages</entry>
+       </row>
+        <row>
+        <entry>Size</entry>
+        <entry>mailbox size</entry>
+       </row>
+       </tbody>
+      </tgroup>
+     </table>
+    </para>
+    <para>
+     <example>
+      <title><function>imap_mailboxmsginfo</function> example</title>
+      <programlisting role="php">
+&lt;?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    ."&lt;br>\n" ;
+    print "Driver: "  . $check->Driver  ."&lt;br>\n" ;
+    print "Mailbox: " . $check->Mailbox ."&lt;br>\n" ;
+    print "Messages: ". $check->Nmsgs   ."&lt;br>\n" ;
+    print "Recent: "  . $check->Recent  ."&lt;br>\n" ;
+    print "Unread: "  . $check->Unread  ."&lt;br>\n" ;
+    print "Deleted: " . $check->Deleted ."&lt;br>\n" ;
+    print "Size: "    . $check->Size    ."&lt;br>\n" ;
+} else {
+    print "imap_check() failed: ".imap_last_error(). "&lt;br>\n";
+}
+ 
+imap_close($mbox);
+
+?&gt;
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-mime-header-decode">
+   <refnamediv>
+    <refname>imap_mime_header_decode</refname>
+    <refpurpose>Decode MIME header elements</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>imap_header_decode</function></funcdef>
+      <paramdef>string <parameter>text</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     <function>imap_mime_header_decode</function> function decodes 
+     MIME message header extensions that are non ASCII text 
+     (see <ulink url="&url.rfc;rfc2047.html">RFC2047</ulink>) 
+     The decoded elements are returned in an array of objects, 
+     where each object has two properties, "charset" &amp; "text".
+     If the element hasn't been encoded, and in other words is in 
+     plain US-ASCII,the "charset" property of that element is set to 
+     "default".
+    </para>
     <para>
-     Flags is a bitmask and may contain the single option
-     <itemizedlist>
-      <listitem>
-       <simpara>
-       CP_UID - the sequence numbers contain UIDS
-       </simpara>
-      </listitem>
-     </itemizedlist>
+     <example>
+      <title><function>imap_mime_header_decode</function> example</title>
+      <programlisting role="php">
+$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= &lt;[EMAIL PROTECTED]>";
+
+$elements=imap_mime_header_decode($text);
+for($i=0;$i&lt;count($elements);$i++) {
+       echo "Charset: {$elements[$i]->charset}\n";
+       echo "Text: {$elements[$i]->text}\n\n";
+}
+
+      </programlisting>
+     </example>
     </para>
     <para>
-     Returns true on success and false on error.
+     In the above example we would have two elements, whereas the first
+     element had previously been encoded with ISO-8859-1, and the second
+     element would be plain US-ASCII.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-msgno">
+   <refnamediv>
+    <refname>imap_msgno</refname>
+    <refpurpose>
+     This function returns the message sequence number for the given
+     UID
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>imap_msgno</function></funcdef>
+      <paramdef>int <parameter>imap_stream</parameter></paramdef>
+      <paramdef>int <parameter>uid</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     This function returns the message sequence number for the given
+     UID. It is the inverse of <function>imap_uid</function>.
     </para>
    </refsect1>
   </refentry>
 
+
   <refentry id="function.imap-num-msg">
    <refnamediv>
     <refname>imap_num_msg</refname>
@@ -1355,290 +1945,71 @@
      </informalexample>
      To connect to an NNTP server on port 119 on the local server, use:
      <informalexample>
-      <programlisting role="php">
-$nntp = imap_open ("{localhost/nntp:119}comp.test", "", "");
-      </programlisting>
-     </informalexample>
-     To connect to a remote server replace "localhost" with the name
-     or the IP address of the server you want to connect to.
-    </para>
-    <para>
-     <example>
-      <title><function>imap_open</function> example</title>
-      <programlisting role="php">
-$mbox = imap_open ("{your.imap.host:143}", "username", "password");
-
-echo "&lt;p>&lt;h1>Mailboxes&lt;/h1>\n";
-$folders = imap_listmailbox ($mbox, "{your.imap.host:143}", "*");
-
-if ($folders == false) {
-    echo "Call failed&lt;br>\n";
-} else {
-    while (list ($key, $val) = each ($folders)) {
-        echo $val."&lt;br>\n";
-    }
-}
-
-echo "&lt;p>&lt;h1>Headers in INBOX&lt;/h1>\n";
-$headers = imap_headers ($mbox);
-
-if ($headers == false) {
-    echo "Call failed&lt;br>\n";
-} else {
-    while (list ($key,$val) = each ($headers)) {
-        echo $val."&lt;br>\n";
-    }
-}
-
-imap_close($mbox);
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-ping">
-   <refnamediv>
-    <refname>imap_ping</refname>
-    <refpurpose>Check if the IMAP stream is still active</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>imap_ping</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>  
-     Returns true if the stream is still alive, false otherwise.
-    </para>
-    <para>
-     <function>imap_ping</function> function pings the stream to see
-     it is still active. It may discover new mail; this is the
-     preferred method for a periodic "new mail check" as well as a
-     "keep alive" for servers which have inactivity timeout.
-     (As PHP scripts do not tend to run that long, i can hardly
-     imagine that this function will be usefull to anyone.)
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-renamemailbox">
-   <refnamediv>
-    <refname>imap_renamemailbox</refname>
-    <refpurpose>Rename an old mailbox to new mailbox</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <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> 
-     This function renames on old mailbox to new mailbox (see
-     <function>imap_open</function> for the format of
-     <parameter>mbox</parameter> names).
-    </para>
-    <para>
-     Returns true on success and false on error.
-    </para>
-    <para>
-     See also <function>imap_createmailbox</function>,
-     <function>imap_deletemailbox</function>, and
-     <function>imap_open</function> for the format of
-     <parameter>mbox</parameter>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-reopen">
-   <refnamediv>
-    <refname>imap_reopen</refname>
-    <refpurpose>Reopen IMAP stream to new mailbox</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>imap_reopen</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-      <paramdef>string <parameter>mailbox</parameter></paramdef>
-      <paramdef>string
-       <parameter><optional>flags</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>  
-     This function reopens the specified stream to a new mailbox on
-     an IMAP or NNTP server.
-    </para>
-    <para>
-     The options are a bit mask with one or more of the following:
-     <itemizedlist>
-      <listitem>
-       <simpara>
-       OP_READONLY - Open mailbox read-only
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       OP_ANONYMOUS - Dont use or update a
-       <filename>.newsrc</filename> for news (NNTP only)
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       OP_HALFOPEN - For IMAP and NNTP names, open a connection but
-       dont open a mailbox.
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       CL_EXPUNGE - Expunge mailbox automatically upon mailbox close
-       (see also <function>imap_delete</function> and
-       <function>imap_expunge</function>)
-       </simpara>
-      </listitem>
-     </itemizedlist>
-    </para>  
-    <para>
-     Returns true on success and false on error.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-set-quota">
-   <refnamediv>
-    <refname>imap_set_quota</refname>
-    <refpurpose>Sets a quota for a given mailbox</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <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>  
-     Sets an upper limit quota on a per mailbox basis.  This function
-     requires the <parameter>imap_stream</parameter> to have been opened
-     as the mail administrator account.  It will not work if opened as
-     any other user. 
-    </para>
-    <para>
-     This function is currently only available to users of the c-client2000
-     library.
-    </para>
-    <para>
-    <parameter>imap_stream</parameter> is the stream pointer returned from
-    a <function>imap_open</function> call.  This stream must be opened as
-    the mail administrator, other wise this function will fail.
-    <parameter>quota_root</parameter> is the mailbox to have a quota set.  This 
-    should follow the IMAP standard format for a mailbox, 'user.name'.
-    <parameter>quota_limit</parameter> is the maximum size (in KB) for 
-    the <parameter>quota_root</parameter>. 
-    </para>
-    <para>
-     Returns true on success and false on error.
+      <programlisting role="php">
+$nntp = imap_open ("{localhost/nntp:119}comp.test", "", "");
+      </programlisting>
+     </informalexample>
+     To connect to a remote server replace "localhost" with the name
+     or the IP address of the server you want to connect to.
     </para>
     <para>
      <example>
-      <title><function>imap_set_quota</function> example</title>
+      <title><function>imap_open</function> example</title>
       <programlisting role="php">
-$mbox = imap_open ("{your.imap.host:143}", "mailadmin", "password");
+$mbox = imap_open ("{your.imap.host:143}", "username", "password");
 
-if(!imap_set_quota($mbox, "user.kalowsky", 3000)) {
-       print "Error in setting quota\n";
-       return;
+echo "&lt;p>&lt;h1>Mailboxes&lt;/h1>\n";
+$folders = imap_listmailbox ($mbox, "{your.imap.host:143}", "*");
+
+if ($folders == false) {
+    echo "Call failed&lt;br>\n";
+} else {
+    while (list ($key, $val) = each ($folders)) {
+        echo $val."&lt;br>\n";
+    }
+}
+
+echo "&lt;p>&lt;h1>Headers in INBOX&lt;/h1>\n";
+$headers = imap_headers ($mbox);
+
+if ($headers == false) {
+    echo "Call failed&lt;br>\n";
+} else {
+    while (list ($key,$val) = each ($headers)) {
+        echo $val."&lt;br>\n";
+    }
 }
 
 imap_close($mbox);
       </programlisting>
      </example>
     </para>
-    <para>
-     See also <function>imap_open</function>, <function>imap_set_quota</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-subscribe">
-   <refnamediv>
-    <refname>imap_subscribe</refname>
-    <refpurpose>Subscribe to a mailbox</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>imap_subscribe</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-      <paramdef>string <parameter>mbox</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>  
-     Subscribe to a new mailbox.
-    </para>
-    <para>
-     Returns true on success and false on error.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-undelete">
-   <refnamediv>
-    <refname>imap_undelete</refname> 
-    <refpurpose>
-     Unmark the message which is marked deleted
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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> 
-     This function removes the deletion flag for a specified message,
-     which is set by <function>imap_delete</function> or
-     <function>imap_mail_move</function>.
-    </para>
-    <para>
-     Returns true on success and false on error.
-    </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-unsubscribe">
+  <refentry id="function.imap-ping">
    <refnamediv>
-    <refname>imap_unsubscribe</refname>
-    <refpurpose>Unsubscribe from a mailbox</refpurpose>
+    <refname>imap_ping</refname>
+    <refpurpose>Check if the IMAP stream is still active</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>imap_unsubscribe</function></funcdef>
+      <funcdef>int <function>imap_ping</function></funcdef>
       <paramdef>int <parameter>imap_stream</parameter></paramdef>
-      <paramdef>string <parameter>mbox</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     <para>  
-     Unsubscribe from a specified mailbox.
+     Returns true if the stream is still alive, false otherwise.
     </para>
     <para>
-     Returns true on success and false on error.
+     <function>imap_ping</function> function pings the stream to see
+     it is still active. It may discover new mail; this is the
+     preferred method for a periodic "new mail check" as well as a
+     "keep alive" for servers which have inactivity timeout.
+     (As PHP scripts do not tend to run that long, i can hardly
+     imagine that this function will be usefull to anyone.)
     </para>
    </refsect1>
   </refentry>
@@ -1671,225 +2042,91 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-8bit">
-   <refnamediv>
-    <refname>imap_8bit</refname>
-    <refpurpose>
-     Convert an 8bit string to a quoted-printable string
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>string <function>imap_8bit</function></funcdef>
-      <paramdef>string <parameter>string</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>  
-     Convert an 8bit string to a quoted-printable string (according to
-     <ulink url="&url.rfc;rfc2045.html">RFC2045</ulink>, section
-     6.7).
-    </para>
-    <para>
-     Returns a quoted-printable string.
-    </para>
-    <para>
-     See also <function>imap_qprint</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-binary">
-   <refnamediv>
-    <refname>imap_binary</refname>
-    <refpurpose>
-     Convert an 8bit string to a base64 string
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>string <function>imap_binary</function></funcdef>
-      <paramdef>string <parameter>string</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>  
-     Convert an 8bit string to a base64 string (according to <ulink
-     url="&url.rfc;rfc2045.html">RFC2045</ulink>, Section 6.8).
-    </para>
-    <para>
-     Returns a base64 string.
-    </para>
-    <para>
-     See also <function>imap_base64</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-scanmailbox">
-   <refnamediv>
-    <refname>imap_scanmailbox</refname>
-    <refpurpose>
-     Read the list of mailboxes, takes a string to search for in the
-     text of the mailbox
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>imap_scanmailbox</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-      <paramdef>string <parameter>ref</parameter></paramdef>
-      <paramdef>string <parameter>pattern</parameter></paramdef>   
-      <paramdef>string <parameter>content</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns an array containing the names of the mailboxes that have
-     <parameter>string</parameter> in the text of the mailbox.
-     This function is similar to <function>imap_listmailbox</function>,
-     but it will additionally check for the presence of the string 
-     <parameter>content</parameter> inside the mailbox data.
-     See <function>imap_getmailboxes</function> for a description
-     of <parameter>ref</parameter> and <parameter>pattern</parameter>.
-    </para>
-   </refsect1>
-  </refentry>
 
-  <refentry id="function.imap-mailboxmsginfo">
+  <refentry id="function.imap-renamemailbox">
    <refnamediv>
-    <refname>imap_mailboxmsginfo</refname>
-    <refpurpose>Get information about the current mailbox</refpurpose>
+    <refname>imap_renamemailbox</refname>
+    <refpurpose>Rename an old mailbox to new mailbox</refpurpose>
    </refnamediv>
    <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>object <function>imap_mailboxmsginfo</function></funcdef>
-      <paramdef>int <parameter>imap_stream</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns information about the current mailbox. Returns FALSE on
-     failure.
-    </para> 
-    <para> 
-     The <function>imap_mailboxmsginfo</function> function checks the
-     current mailbox status on the server. It is similar to 
-     <function>imap_status</function>, but will additionally sum up the
-     size of all messages in the mailbox, which will take some additional
-     time to execute. It returns the information
-     in an object with following properties.
-    </para>
-    <para>
-     <table>
-      <title>Mailbox properties</title>
-      <tgroup cols="2">
-       <tbody>
-        <row>
-        <entry>Date</entry>
-        <entry>date of last change</entry>
-       </row>
-        <row>
-        <entry>Driver</entry>
-        <entry>driver</entry>
-       </row>
-        <row>
-        <entry>Mailbox</entry>
-        <entry>name of the mailbox</entry>
-       </row>
-        <row>
-        <entry>Nmsgs</entry>
-        <entry>number of messages</entry>
-       </row>
-        <row>
-        <entry>Recent</entry>
-        <entry>number of recent messages</entry>
-       </row>
-        <row>
-        <entry>Unread</entry>
-        <entry>number of unread messages</entry>
-       </row>
-        <row>
-        <entry>Deleted</entry>
-        <entry>number of deleted messages</entry>
-       </row>
-        <row>
-        <entry>Size</entry>
-        <entry>mailbox size</entry>
-       </row>
-       </tbody>
-      </tgroup>
-     </table>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <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> 
+     This function renames on old mailbox to new mailbox (see
+     <function>imap_open</function> for the format of
+     <parameter>mbox</parameter> names).
     </para>
     <para>
-     <example>
-      <title><function>imap_mailboxmsginfo</function> example</title>
-      <programlisting role="php">
-&lt;?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    ."&lt;br>\n" ;
-    print "Driver: "  . $check->Driver  ."&lt;br>\n" ;
-    print "Mailbox: " . $check->Mailbox ."&lt;br>\n" ;
-    print "Messages: ". $check->Nmsgs   ."&lt;br>\n" ;
-    print "Recent: "  . $check->Recent  ."&lt;br>\n" ;
-    print "Unread: "  . $check->Unread  ."&lt;br>\n" ;
-    print "Deleted: " . $check->Deleted ."&lt;br>\n" ;
-    print "Size: "    . $check->Size    ."&lt;br>\n" ;
-} else {
-    print "imap_check() failed: ".imap_last_error(). "&lt;br>\n";
-}
- 
-imap_close($mbox);
-
-?&gt;
-      </programlisting>
-     </example>
+     Returns true on success and false on error.
+    </para>
+    <para>
+     See also <function>imap_createmailbox</function>,
+     <function>imap_deletemailbox</function>, and
+     <function>imap_open</function> for the format of
+     <parameter>mbox</parameter>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-rfc822-write-address">
+  <refentry id="function.imap-reopen">
    <refnamediv>
-    <refname>imap_rfc822_write_address</refname>
-    <refpurpose>
-     Returns a properly formatted email address given the mailbox,
-     host, and personal info.
-    </refpurpose>
+    <refname>imap_reopen</refname>
+    <refpurpose>Reopen IMAP stream to new mailbox</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>string 
-       <function>imap_rfc822_write_address</function>
-      </funcdef>
+      <funcdef>int <function>imap_reopen</function></funcdef>
+      <paramdef>int <parameter>imap_stream</parameter></paramdef>
       <paramdef>string <parameter>mailbox</parameter></paramdef>
-      <paramdef>string <parameter>host</parameter></paramdef>
-      <paramdef>string <parameter>personal</parameter></paramdef>
+      <paramdef>string
+       <parameter><optional>flags</optional></parameter>
+      </paramdef>
      </funcprototype>
     </funcsynopsis>
-    <para>
-     Returns a properly formatted email address as defined in 
-     <ulink url="&url.rfc;rfc822.html">RFC822</ulink>
-     given the mailbox, host, and personal info.
+    <para>  
+     This function reopens the specified stream to a new mailbox on
+     an IMAP or NNTP server.
     </para>
     <para>
-     <example>
-      <title><function>imap_rfc822_write_address</function> example</title>
-      <programlisting role="php">
-print imap_rfc822_write_address("hartmut","cvs.php.net","Hartmut Holzgraefe")."\n";   
   
-      </programlisting>
-     </example>
+     The options are a bit mask with one or more of the following:
+     <itemizedlist>
+      <listitem>
+       <simpara>
+       OP_READONLY - Open mailbox read-only
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       OP_ANONYMOUS - Dont use or update a
+       <filename>.newsrc</filename> for news (NNTP only)
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       OP_HALFOPEN - For IMAP and NNTP names, open a connection but
+       dont open a mailbox.
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       CL_EXPUNGE - Expunge mailbox automatically upon mailbox close
+       (see also <function>imap_delete</function> and
+       <function>imap_expunge</function>)
+       </simpara>
+      </listitem>
+     </itemizedlist>
+    </para>  
+    <para>
+     Returns true on success and false on error.
     </para>
    </refsect1>
   </refentry>
@@ -1947,246 +2184,107 @@
 $address_string = "Hartmut Holzgraefe &lt;[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."&lt;br>\n";
-  print "host    : ".$val->host."&lt;br>\n";
-  print "personal: ".$val->personal."&lt;br>\n";
-  print "adl     : ".$val->adl."&lt;p>\n";
-} 
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-setflag-full">
-   <refnamediv>
-    <refname>imap_setflag_full</refname>
-    <refpurpose>Sets flags on messages</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function causes a store to add the specified flag to the
-     flags set for the messages in the specified sequence.
-    </para>
-    <para>
-     The flags which you can set are "\\Seen", "\\Answered",
-     "\\Flagged", "\\Deleted", "\\Draft", and "\\Recent" (as defined
-     by RFC2060).
-    </para>
-    <para>
-     The options are a bit mask with one or more of the following:
-     <informalexample>
-      <literallayout>
-ST_UID          The sequence argument contains UIDs instead of
-                sequence numbers
-      </literallayout>
-     </informalexample>
-    </para>
-    <para>
-     <example>
-      <title><function>imap_setflag_full</function> example</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>Clears flags on messages</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     This function causes a store to delete the specified flag to the
-     flags set for the messages in the specified sequence.
-     The flags which you can unset are "\\Seen", "\\Answered",
-     "\\Flagged", "\\Deleted", "\\Draft", and "\\Recent" (as defined
-     by RFC2060).
-    </para>
-    <para>
-     The options are a bit mask with one or more of the following:
-     <informalexample>
-      <literallayout>
-ST_UID          The sequence argument contains UIDs instead of
-                sequence numbers
-      </literallayout>
-     </informalexample>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-sort">
-   <refnamediv>
-    <refname>imap_sort</refname>
-    <refpurpose>Sort an array of message headers</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     Returns an array of message numbers sorted by the given
-     parameters.
-    </para>
-    <para>
-     <parameter>Reverse</parameter> is 1 for reverse-sorting.
-    </para>
-    <para>
-     Criteria can be one (and only one) of the following:
-     <informalexample>
-      <literallayout>
-SORTDATE        message Date
-SORTARRIVAL     arrival date
-SORTFROM        mailbox in first From address
-SORTSUBJECT     message Subject
-SORTTO          mailbox in first To address 
-SORTCC          mailbox in first cc address 
-SORTSIZE        size of message in octets
-      </literallayout>
-     </informalexample>
-    </para>
-    <para>
-     The flags are a bitmask of one or more of the following:
-     <informalexample>
-      <literallayout>
-SE_UID          Return UIDs instead of sequence numbers
-SE_NOPREFETCH   Don't prefetch searched messages.
-      </literallayout>
-     </informalexample>
+reset($address_array);
+while(list($key,$val)=each($address_array)){
+  print "mailbox : ".$val->mailbox."&lt;br>\n";
+  print "host    : ".$val->host."&lt;br>\n";
+  print "personal: ".$val->personal."&lt;br>\n";
+  print "adl     : ".$val->adl."&lt;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>Returns header for a message</refpurpose>
+    <refname>imap_rfc822_parse_headers</refname>
+    <refpurpose>Parse mail headers from a string</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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><optional>defaulthost</optional></parameter>
+      </paramdef>
      </funcprototype>
     </funcsynopsis>
     <para>
-     This function causes a fetch of the complete, unfiltered 
-     <ulink url="&url.rfc;rfc822.html">RFC822</ulink>
-     format header of the specified message as a text string and
-     returns that text string.
-    </para>
-    <para>
-     The options are:
-     <informalexample>
-      <literallayout>
-FT_UID          The msgno argument is a UID 
-FT_INTERNAL     The return string is in "internal" format,
-                without any attempt to canonicalize to CRLF
-                newlines
-FT_PREFETCHTEXT The RFC822.TEXT should be pre-fetched at the
-                same time.  This avoids an extra RTT on an
-                IMAP connection if a full message text is
-                desired (e.g. in a "save to local file"
-                operation)
-      </literallayout>
-     </informalexample>
+     This function returns an object of various header elements,
+     similar to <function>imap_header</function>, except without the
+     flags and other elements that come from the IMAP server.
     </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>
-     This function returns the UID for the given message sequence
-     number
+     Returns a properly formatted email address given the mailbox,
+     host, and personal info.
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>
-     This function returns the UID for the given message sequence
-     number. An UID is an unique identifier that will not change over
-     time while a message sequence number may change whenever the
-     content of the mailbox changes.  This function is the inverse of
-     <function>imap_msgno</function>.
+     Returns a properly formatted email address as defined in 
+     <ulink url="&url.rfc;rfc822.html">RFC822</ulink>
+     given the mailbox, host, and personal info.
+    </para>
+    <para>
+     <example>
+      <title><function>imap_rfc822_write_address</function> example</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 id="function.imap-scanmailbox">
    <refnamediv>
-    <refname>imap_msgno</refname>
+    <refname>imap_scanmailbox</refname>
     <refpurpose>
-     This function returns the message sequence number for the given
-     UID
+     Read the list of mailboxes, takes a string to search for in the
+     text of the mailbox
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>ref</parameter></paramdef>
+      <paramdef>string <parameter>pattern</parameter></paramdef>   
+      <paramdef>string <parameter>content</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     <para>
-     This function returns the message sequence number for the given
-     UID. It is the inverse of <function>imap_uid</function>.
+     Returns an array containing the names of the mailboxes that have
+     <parameter>string</parameter> in the text of the mailbox.
+     This function is similar to <function>imap_listmailbox</function>,
+     but it will additionally check for the presence of the string 
+     <parameter>content</parameter> inside the mailbox data.
+     See <function>imap_getmailboxes</function> for a description
+     of <parameter>ref</parameter> and <parameter>pattern</parameter>.
     </para>
    </refsect1>
   </refentry>
@@ -2345,381 +2443,255 @@
      use: "UNANSWERED FROM mom". Searches appear to be case
      insensitive. This list of criteria is from a reading of the UW
      c-client source code and may be uncomplete or
-     inaccurate (see also RFC2060, section 6.4.4).
-    </para>
-    <para>
-     Valid values for flags are SE_UID, which causes the returned
-     array to contain UIDs instead of messages sequence numbers.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-last-error">
-   <refnamediv>
-    <refname>imap_last_error</refname>
-    <refpurpose>
-     This function returns the last IMAP error (if any) that occurred
-     during this page request
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>string <function>imap_last_error</function></funcdef>
-      <paramdef>void </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function returns the full text of the last IMAP error
-     message that occurred on the current page. The error stack is
-     untouched; calling <function>imap_last_error</function>
-     subsequently, with no intervening errors, will return the same
-     error.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-errors">
-   <refnamediv>
-    <refname>imap_errors</refname>
-    <refpurpose>
-     This function returns all of the IMAP errors (if any) that have
-     occurred during this page request or since the error stack was
-     reset.
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>imap_errors</function></funcdef>
-      <paramdef>void </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function returns an array of all of the IMAP error messages
-     generated since the last <function>imap_errors</function> call,
-     or the beginning of the page. When
-     <function>imap_errors</function> is called, the error stack is
-     subsequently cleared.  
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-alerts">
-   <refnamediv>
-    <refname>imap_alerts</refname>
-    <refpurpose>
-     This function returns all IMAP alert messages (if any) that have
-     occurred during this page request or since the alert stack was
-     reset
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>imap_alerts</function></funcdef>
-      <paramdef>void </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function returns an array of all of the IMAP alert messages
-     generated since the last <function>imap_alerts</function> call,
-     or the beginning of the page. When
-     <function>imap_alerts</function> is called, the alert stack is
-     subsequently cleared. The IMAP specification requires that these
-     messages be passed to the user.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.imap-status">
-   <refnamediv>
-    <refname>imap_status</refname>
-    <refpurpose>
-     This function returns status information on a mailbox other than
-     the current one
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</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>
-     This function returns an object containing status
-     information. Valid flags are:
-     <itemizedlist>
-      <listitem>
-       <simpara>
-       SA_MESSAGES - set status->messages to the number of messages
-       in the mailbox
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       SA_RECENT - set status->recent to the number of recent
-       messages in the mailbox
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       SA_UNSEEN - set status->unseen to the number of unseen (new)
-       messages in the mailbox
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       SA_UIDNEXT - set status->uidnext to the next uid to be used in
-       the mailbox
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       SA_UIDVALIDITY - set status->uidvalidity to a constant that
-       changes when uids for the mailbox may no longer be valid
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-       SA_ALL - set all of the above
-       </simpara>
-      </listitem>
-     </itemizedlist>
-    </para>
-    <para>
-     status->flags is also set, which contains a bitmask which can be
-     checked against any of the above constants.
+     inaccurate (see also RFC2060, section 6.4.4).
     </para>
     <para>
-     <example>
-      <title><function>imap_status</function> example</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   )."&lt;br>\n";
-  print("Recent:     ". $status->recent     )."&lt;br>\n";
-  print("Unseen:     ". $status->unseen     )."&lt;br>\n";
-  print("UIDnext:    ". $status->uidnext    )."&lt;br>\n";
-  print("UIDvalidity:". $status->uidvalidity)."&lt;br>\n"; 
-} else
-  print "imap_status failed: ".imap_lasterror()."\n";
- 
-imap_close($mbox);
-      </programlisting>
-     </example>
+     Valid values for flags are SE_UID, which causes the returned
+     array to contain UIDs instead of messages sequence numbers.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-utf7-decode">
+  <refentry id="function.imap-set-quota">
    <refnamediv>
-    <refname>imap_utf7_decode</refname>
-    <refpurpose>
-     Decodes a modified UTF-7 encoded string.
-    </refpurpose>
+    <refname>imap_set_quota</refname>
+    <refpurpose>Sets a quota for a given mailbox</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>  
-     Decodes modified UTF-7 <parameter>text</parameter> into 8bit data.
+     Sets an upper limit quota on a per mailbox basis.  This function
+     requires the <parameter>imap_stream</parameter> to have been opened
+     as the mail administrator account.  It will not work if opened as
+     any other user. 
     </para>
     <para>
-     Returns the decoded 8bit data, or false if the input string was
-     not valid modified UTF-7. This function is needed to decode
-     mailbox names that contain international characters outside of
-     the printable ASCII range. The modified UTF-7 encoding is defined
-     in <ulink url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section
-     5.1.3 (original UTF-7 was defned in <ulink
-     url="&url.rfc;rfc1642.html">RFC1642</ulink>).
+     This function is currently only available to users of the c-client2000
+     library.
+    </para>
+    <para>
+    <parameter>imap_stream</parameter> is the stream pointer returned from
+    a <function>imap_open</function> call.  This stream must be opened as
+    the mail administrator, other wise this function will fail.
+    <parameter>quota_root</parameter> is the mailbox to have a quota set.  This 
+    should follow the IMAP standard format for a mailbox, 'user.name'.
+    <parameter>quota_limit</parameter> is the maximum size (in KB) for 
+    the <parameter>quota_root</parameter>. 
+    </para>
+    <para>
+     Returns true on success and false on error.
+    </para>
+    <para>
+     <example>
+      <title><function>imap_set_quota</function> example</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>
+     See also <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>
-     Converts 8bit data to modified UTF-7 text.
-    </refpurpose>
+    <refname>imap_setflag_full</refname>
+    <refpurpose>Sets flags on messages</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>
-     Converts 8bit <parameter>data</parameter> to modified UTF-7
-     text. This is needed to encode mailbox names that contain
-     international characters outside of the printable ASCII
-     range. The modified UTF-7 encoding is defined in <ulink
-     url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section 5.1.3
-     (original UTF-7 was defned in <ulink
-     url="&url.rfc;rfc1642.html">RFC1642</ulink>).
+     This function causes a store to add the specified flag to the
+     flags set for the messages in the specified sequence.
     </para>
     <para>
-     Returns the modified UTF-7 text.
+     The flags which you can set are "\\Seen", "\\Answered",
+     "\\Flagged", "\\Deleted", "\\Draft", and "\\Recent" (as defined
+     by RFC2060).
+    </para>
+    <para>
+     The options are a bit mask with one or more of the following:
+     <informalexample>
+      <literallayout>
+ST_UID          The sequence argument contains UIDs instead of
+                sequence numbers
+      </literallayout>
+     </informalexample>
     </para>
+    <para>
+     <example>
+      <title><function>imap_setflag_full</function> example</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>
-      Converts text to UTF8
-    </refpurpose>
+    <refname>imap_sort</refname>
+    <refpurpose>Sort an array of message headers</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>
-     Converts the given <parameter>text</parameter> to 
-     UTF8 (as defined in 
-     <ulink url="&url.rfc;rfc2044.html">RFC2044</ulink>).
+     Returns an array of message numbers sorted by the given
+     parameters.
+    </para>
+    <para>
+     <parameter>Reverse</parameter> is 1 for reverse-sorting.
+    </para>
+    <para>
+     Criteria can be one (and only one) of the following:
+     <informalexample>
+      <literallayout>
+SORTDATE        message Date
+SORTARRIVAL     arrival date
+SORTFROM        mailbox in first From address
+SORTSUBJECT     message Subject
+SORTTO          mailbox in first To address 
+SORTCC          mailbox in first cc address 
+SORTSIZE        size of message in octets
+      </literallayout>
+     </informalexample>
+    </para>
+    <para>
+     The flags are a bitmask of one or more of the following:
+     <informalexample>
+      <literallayout>
+SE_UID          Return UIDs instead of sequence numbers
+SE_NOPREFETCH   Don't prefetch searched messages.
+      </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>
-     Read an overview of the information in the headers of the given message
+     This function returns status information on a mailbox other than
+     the current one
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>int <parameter><optional>flags</optional></parameter></paramdef>
+      <paramdef>string <parameter>mailbox</parameter></paramdef>
+      <paramdef>int <parameter>options</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     <para>
-     This function fetches mail headers for the given
-     <parameter>sequence</parameter> and returns an overview of their
-     contents. <parameter>sequence</parameter> will contain a sequence
-     of message indices or UIDs, if <parameter>flags</parameter>
-     contains FT_UID. The returned value is an array of objects
-     describing one message header each:
+     This function returns an object containing status
+     information. Valid flags are:
      <itemizedlist>
       <listitem>
-       <simpara>
-        subject - the messages subject
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        from - who sent it
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        date - when was it sent
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        message_id - Message-ID 
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        references - is a reference to this message id
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        size - size in bytes
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        uid - UID the message has in the mailbox
-       </simpara>
-      </listitem>
-      <listitem>
-       <simpara>
-        msgno - message sequence number in the maibox
-       </simpara>
-      </listitem>
-      <listitem>
        <simpara>
-        recent - this message is flagged as recent
+       SA_MESSAGES - set status->messages to the number of messages
+       in the mailbox
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-        flagged -  this message is flagged
+       SA_RECENT - set status->recent to the number of recent
+       messages in the mailbox
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-        answered -  this message is flagged as answered
+       SA_UNSEEN - set status->unseen to the number of unseen (new)
+       messages in the mailbox
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-        deleted -  this message is flagged for deletion
+       SA_UIDNEXT - set status->uidnext to the next uid to be used in
+       the mailbox
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-        seen -  this message is flagged as already read
+       SA_UIDVALIDITY - set status->uidvalidity to a constant that
+       changes when uids for the mailbox may no longer be valid
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-        draft -  this message is flagged as being a draft
+       SA_ALL - set all of the above
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
     <para>
+     status->flags is also set, which contains a bitmask which can be
+     checked against any of the above constants.
+    </para>
+    <para>
      <example>
-      <title><function>imap_fetch_overview</function> example</title>
+      <title><function>imap_status</function> example</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   )."&lt;br>\n";
+  print("Recent:     ". $status->recent     )."&lt;br>\n";
+  print("Unseen:     ". $status->unseen     )."&lt;br>\n";
+  print("UIDnext:    ". $status->uidnext    )."&lt;br>\n";
+  print("UIDvalidity:". $status->uidvalidity)."&lt;br>\n"; 
+} else
+  print "imap_status failed: ".imap_lasterror()."\n";
  
 imap_close($mbox);
       </programlisting>
@@ -2728,143 +2700,186 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-mime-header-decode">
+
+  <refentry id="function.imap-subscribe">
    <refnamediv>
-    <refname>imap_mime_header_decode</refname>
-    <refpurpose>Decode MIME header elements</refpurpose>
+    <refname>imap_subscribe</refname>
+    <refpurpose>Subscribe to a mailbox</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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>  
+     Subscribe to a new mailbox.
+    </para>
     <para>
-     <function>imap_mime_header_decode</function> function decodes 
-     MIME message header extensions that are non ASCII text 
-     (see <ulink url="&url.rfc;rfc2047.html">RFC2047</ulink>) 
-     The decoded elements are returned in an array of objects, 
-     where each object has two properties, "charset" &amp; "text".
-     If the element hasn't been encoded, and in other words is in 
-     plain US-ASCII,the "charset" property of that element is set to 
-     "default".
+     Returns true on success and false on error.
     </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.imap-uid">
+   <refnamediv>
+    <refname>imap_uid</refname>
+    <refpurpose>
+     This function returns the UID for the given message sequence
+     number
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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> example</title>
-      <programlisting role="php">
-$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= &lt;[EMAIL PROTECTED]>";
+     This function returns the UID for the given message sequence
+     number. An UID is an unique identifier that will not change over
+     time while a message sequence number may change whenever the
+     content of the mailbox changes.  This function is the inverse of
+     <function>imap_msgno</function>.
+    </para>
+   </refsect1>
+  </refentry>
 
-$elements=imap_mime_header_decode($text);
-for($i=0;$i&lt;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>
+     Unmark the message which is marked deleted
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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> 
+     This function removes the deletion flag for a specified message,
+     which is set by <function>imap_delete</function> or
+     <function>imap_mail_move</function>.
+    </para>
+    <para>
+     Returns true on success and false on error.
+    </para>
+   </refsect1>
+  </refentry>
 
-      </programlisting>
-     </example>
+  <refentry id="function.imap-unsubscribe">
+   <refnamediv>
+    <refname>imap_unsubscribe</refname>
+    <refpurpose>Unsubscribe from a mailbox</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</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>  
+     Unsubscribe from a specified mailbox.
     </para>
     <para>
-     In the above example we would have two elements, whereas the first
-     element had previously been encoded with ISO-8859-1, and the second
-     element would be plain US-ASCII.
+     Returns true on success and false on error.
     </para>
    </refsect1>
   </refentry>
-  
-  <refentry id="function.imap-mail-compose">
+
+  <refentry id="function.imap-utf7-decode">
    <refnamediv>
-    <refname>imap_mail_compose</refname>
+    <refname>imap_utf7_decode</refname>
     <refpurpose>
-     Create a MIME message based on given envelope and body sections 
+     Decodes a modified UTF-7 encoded string.
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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_decode</function></funcdef>
+      <paramdef>string <parameter>text</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
-    <para>
+    <para>  
+     Decodes modified UTF-7 <parameter>text</parameter> into 8bit data.
     </para>
     <para>
-     <example>
-      <title><function>imap_mail_compose</function> example</title>
-      <programlisting role="php">
-&lt;?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));
+     Returns the decoded 8bit data, or false if the input string was
+     not valid modified UTF-7. This function is needed to decode
+     mailbox names that contain international characters outside of
+     the printable ASCII range. The modified UTF-7 encoding is defined
+     in <ulink url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section
+     5.1.3 (original UTF-7 was defned in <ulink
+     url="&url.rfc;rfc1642.html">RFC1642</ulink>).
+    </para>
+   </refsect1>
+  </refentry>
 
-?&gt;
-      </programlisting>
-     </example>
+  <refentry id="function.imap-utf7-encode">
+   <refnamediv>
+    <refname>imap_utf7_encode</refname>
+    <refpurpose>
+     Converts 8bit data to modified UTF-7 text.
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>imap_utf7_encode</function></funcdef>
+      <paramdef>string <parameter>data</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Converts 8bit <parameter>data</parameter> to modified UTF-7
+     text. This is needed to encode mailbox names that contain
+     international characters outside of the printable ASCII
+     range. The modified UTF-7 encoding is defined in <ulink
+     url="&url.rfc;rfc2060.html">RFC 2060</ulink>, section 5.1.3
+     (original UTF-7 was defned in <ulink
+     url="&url.rfc;rfc1642.html">RFC1642</ulink>).
+    </para>
+    <para>
+     Returns the modified UTF-7 text.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.imap-mail">
+  <refentry id="function.imap-utf8">
    <refnamediv>
-    <refname>imap_mail</refname>
+    <refname>imap_utf8</refname>
     <refpurpose>
-     Send an email message
+      Converts text to UTF8
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</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><optional>additional_headers</optional></parameter>
-      </paramdef>
-      <paramdef>string 
-       <parameter><optional>cc</optional></parameter>
-      </paramdef>
-      <paramdef>string 
-       <parameter><optional>bcc</optional></parameter>
-      </paramdef>
-      <paramdef>string 
-       <parameter><optional>rpath</optional></parameter>
-      </paramdef>
+      <funcdef>string <function>imap_utf8</function></funcdef>
+      <paramdef>string <parameter>text</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     <para>
-     This function is currently only available in PHP 3. 
+     Converts the given <parameter>text</parameter> to 
+     UTF8 (as defined in 
+     <ulink url="&url.rfc;rfc2044.html">RFC2044</ulink>).
     </para>
    </refsect1>
   </refentry>

Reply via email to