+function export_mailbox($mbox, $filename)
+{
+ global $IMAP;
+
+ $IMAP->set_mailbox($mbox);
+
+ vputs("Getting message list of {$mbox}...");
+ vputs($IMAP->messagecount()." messages\n");
+
+ if ($filename)
+ {
+ if (!($out = fopen($filename, 'w')))
+ {
+ vputs("Cannot write to output file\n");
+ return;
+ }
+ vputs("Writing to $filename\n");
+ }
+ else
+ $out = STDOUT;
+
+ for ($count = $IMAP->messagecount(), $i=1; $i <= $count; $i++)
+ {
+ $headers = $IMAP->get_headers($i, null, false);
+ $from = current($IMAP->decode_address_list($headers->from, 1, false));
+
+ fwrite($out, sprintf("From %s %s UID %d\n", $from['mailto'], $headers->date, $headers->uid));
+ fwrite($out, $IMAP->conn->fetchPartHeader($mbox, $i));
+ fwrite($out, $IMAP->conn->handlePartBody($mbox, $i));
+ fwrite($out, "\n\n\n");
+
+ progress_update($i, $count);
+ }
+ vputs("\ncomplete.\n");
+
+ if ($filename)
+ fclose($out);
+}
+