with [] because HTML uses <> as tags, thus not printing what's in <> */ $read = ereg_replace("<", "[", $read); $read = ereg_replace(">", "]", $read); while ((substr($read, 0, 15) != "messageFetch OK") && (substr($read, 0, 16) != "messageFetch BAD")) { if (substr($read, 0, 5) == "From:") { $read = ereg_replace("<", "EMAILSTART--", $read); $read = ereg_replace(">", "--EMAILEND", $read); $from = substr($read, 5, strlen($read) - 6); } else if (substr($read, 0, 5) == "Date:") { $read = ereg_replace("<", "[", $read); $read = ereg_replace(">", "]", $read); $date = substr($read, 5, strlen($read) - 6); } else if (substr($read, 0, 8) == "Subject:") { $read = ereg_replace("<", "[", $read); $read = ereg_replace(">", "]", $read); $subject = substr($read, 8, strlen($read) - 9); } $read = fgets($imapConnection, 1024); } } function setMessageFlag($imapConnection, $i, $flag) { fputs($imapConnection, "messageStore STORE $i:$i +FLAGS (\\$flag)\n"); } function getMessageFlags($imapConnection, $i, &$flags) { /** * 2 FETCH (FLAGS (\Answered \Seen)) */ fputs($imapConnection, "messageFetch FETCH $i:$i FLAGS\n"); $read = fgets($imapConnection, 1024); while ((substr($read, 0, 15) != "messageFetch OK") && (substr($read, 0, 16) != "messageFetch BAD")) { if (strpos($read, "FLAGS")) { $read = ereg_replace("\(", "", $read); $read = ereg_replace("\)", "", $read); $read = substr($read, strpos($read, "FLAGS")+6, strlen($read)); $read = trim($read); $flags = explode(" ", $read);; $s = 0; while ($s < count($flags)) { $flags[$s] = substr($flags[$s], 1, strlen($flags[$s])); $s++; } } else { $flags[0] = "None"; } $read = fgets($imapConnection, 1024); } } function getEmailAddr($sender) { if (strpos($sender, "EMAILSTART--") == false) return ""; $start = strpos($sender, "EMAILSTART--"); $emailAddr = substr($sender, $start, strlen($sender)); return $emailAddr; } function getSender($sender) { if (strpos($sender, "EMAILSTART--") == false) return ""; $first = substr($sender, 0, strpos($sender, "EMAILSTART--")); $second = substr($sender, strpos($sender, "--EMAILEND") +10, strlen($sender)); return "$first$second"; } function getSenderName($sender) { $name = getSender($sender); $emailAddr = getEmailAddr($sender); $emailStart = strpos($emailAddr, "EMAILSTART--"); $emailEnd = strpos($emailAddr, "--EMAILEND") - 10; if (($emailAddr == "") && ($name == "")) { $from = $sender; } else if ((strstr($name, "?") != false) || (strstr($name, "$") != false) || (strstr($name, "%") != false)){ $emailAddr = ereg_replace("EMAILSTART--", "", $emailAddr); $emailAddr = ereg_replace("--EMAILEND", "", $emailAddr); $from = $emailAddr; } else if (strlen($name) > 0) { $from = $name; } else if (strlen($emailAddr > 0)) { $emailAddr = ereg_replace("EMAILSTART--", "", $emailAddr); $emailAddr = ereg_replace("--EMAILEND", "", $emailAddr); $from = $emailAddr; } $from = trim($from); // strip out any quotes if they exist if ((strlen($from) > 0) && ($from[0] == "\"") && ($from[strlen($from) - 1] == "\"")) $from = substr($from, 1, strlen($from) - 2); return $from; } /** returns "true" if the copy was completed successfully. ** returns "false" with an error message if unsuccessful. **/ function copyMessages($imapConnection, $from_id, $to_id, $folder) { fputs($imapConnection, "mailboxStore COPY $from_id:$to_id \"$folder\"\n"); $read = fgets($imapConnection, 1024); while ((substr($read, 0, 15) != "mailboxStore OK") && (substr($read, 0, 15) != "mailboxStore NO")) { $read = fgets($imapConnection, 1024); } if (substr($read, 0, 15) == "mailboxStore NO") { echo "ERROR... $read
"; return false; } else if (substr($read, 0, 15) == "mailboxStore OK") { return true; } echo "UNKNOWN ERROR copying messages $from_id to $to_id to folder $folder.
"; return false; } ?>