===== IMAP Copy ===== kopiert alle Mails von einem IMAP Postfach in ein anderes. Habe das Script noch gefunden - bitte unbedingt vorher testen, da ich nicht mehr weiss ob es funktioniert hat. "; $sourceUser = ""; $sourcePass = ""; $destHost = ""; $destUser = ""; $destPass = ""; // ---- ab hier nicht mehr ändern ---- // echo "IMAP Copy
"; /* // TEST $mbox = imap_open($sourceHost, $sourceUser, $sourcePass, OP_READONLY); echo "

Postfächer

\n"; $folders = imap_listmailbox($mbox, $sourceHost, "*") or die("can't connect: ".imap_last_error()); if ($folders == false) { echo "Abruf fehlgeschlagen
\n"; } else { foreach ($folders as $val) { echo $val . "
\n"; } } echo "

Nachrichten in INBOX

\n"; $headers = imap_headers($mbox); if ($headers == false) { echo "Abruf fehlgeschlagen
\n"; } else { foreach ($headers as $val) { echo $val . "
\n"; } } imap_close($mbox); */ // ---------------------------------------------------------------------------- // $mailbox = "INBOX"; $sourcestream = imap_open("{".$sourceHost."}", $sourceUser, $sourcePass, OP_READONLY) or die(" can't connect: ".imap_last_error()); $deststream = imap_open("{".$destHost."}", $destUser, $destPass) or die(" can't connect: ".imap_last_error()); if ($sourcestream && $deststream) { $sourcelist = imap_list($sourcestream, "{".$sourceHost."}", "*"); $destlist = imap_list($deststream, "{".$destHost."}", "*"); echo "Quelle:
"; print_r($sourcelist); echo "
Ziel:
"; print_r($destlist); // if (0) { if (is_array($sourcelist)) { foreach($sourcelist as $mailbox) { $pos = strpos($mailbox,"}"); $mailbox = substr($mailbox,$pos+1); if (! stristr($mailbox,"Shared")) { // if ($mailbox == "INBOX") { echo "
".$mailbox."
"; $sourcembox = imap_open("{".$sourceHost."}".$mailbox, $sourceUser, $sourcePass) or die("Quelle can't connect: ".imap_last_error()); // $sourcembox = false; // debug if ($sourcembox) { if (! array_search("{".$destHost."}".$mailbox,$destlist)) { echo "Creating mailbox $mailbox on $destHost "; if (imap_createmailbox($deststream, imap_utf7_encode("{".$destHost."}".$mailbox))) { echo "done
"; } else { echo "NOT done
"; } } $destmbox = imap_open("{".$destHost."}".$mailbox, $destUser, $destPass); //---------- if ($destmbox) { $headers = imap_headers($sourcembox); $total = count($headers); $n = 1; echo "$total items in $mailbox
"; if ($headers) { foreach ($headers as $key => $thisHeader) { echo "copying $n of $total... "; $header = imap_headerinfo($sourcembox, $key+1); $is_unseen = $header->Unseen; echo "is_unseen = $is_unseen"; // $is_recent = $header->Recent; // echo "is_recent = $is_recent"; $messageHeader = imap_fetchheader($sourcembox, $key+1); //$body = imap_body($sourcembox, $key+1); $body = "test"; flush();/* if (imap_append($destmbox,"{".$destHost."}".$mailbox,$messageHeader."\r\n".$body)) { echo "done\n"; } else { echo "NOT done\n"; } echo imap_last_error(); */ $n++; } } } //---------- imap_close($destmbox); } imap_close($sourcembox); } } } imap_close($sourcestream); imap_close($deststream); }