ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> phpdoc
phpdoc
[PHP-DOC] cvs: phpdoc /en/functions imap.xml
by Daniel Beckham other posts by this author
Apr 6 2001 12:14AM messages near this date
[PHP-DOC] cvs: phpdoc /en/appendices resources.xml | [PHP-DOC] "YourName.BEST321.com" FREE §K¶O°ì¦W !!!!!
This is a MIME encoded message

--danbeck986516094
Content-Type: text/plain

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
  
--danbeck986516094
Content-Type: text/plain
Content-Disposition: attachment; filename="danbeck-20010405171454.txt"

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"]="musone@afterfive.com";
+$envelope["to"]="musone@darkstar";
+$envelope["cc"]="musone@edgeglobal.com";
+
+$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;keld@[...].dk> ";
+
+$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;hartmut@[...].net> , postmaster@[...].net, 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;keld@[...].dk> ";
+     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"]="musone@afterfive.com";
-$envelope["to"]="musone@darkstar";
-$envelope["cc"]="musone@edgeglobal.com";
-
-$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> 

--danbeck986516094--
Attachments:
unknown1


Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved