le);
return $msg;
}
function pop_dele_msg($mnum,$mid,$msize,$send_to_trash = 1) { //删除邮件
global $userfolder,$error_retrieving;
$this->pop_send_command("TOP $mnum 0");
$buffer = $this->pop_get_line();
if(ereg("^(\+OK)",$buffer)) {
unset($header);
while (!feof($this->pop_connection)) {
$buffer = $this->pop_get_line();
if(trim($buffer) == ".") break;
if(strlen($buffer) > 3)
$header .= "$buffer\r\n";
}
$md = new mime_decode();
$mail_info = $md->get_mail_info($header);
if($mid != md5($mail_info["message-id"])) {
$this->pop_error_msg = $error_retrieving;
return 0;
}
$filename = md5($mail_info["subject"].$mail_info["message-id"].$mail_info["date"]).".eml";
$flocalname = $userfolder."inbox/$filename";
$flocaltrashname = $userfolder."trash/$filename";
if ($send_to_trash && !file_exists($flocalname)) {
$tempmail = $this->pop_retr_msg($mnum,$mid,$msize,0);
$tempmail = $md->set_as($tempmail,0);
$tmpfile = fopen($flocalname,"wb+");
fwrite($tmpfile,$tempmail);
fclose($tmpfile);
}
if($send_to_trash)
@copy($flocalname,$flocaltrashname);
@unlink($flocalname);
$this->pop_send_command("DELE $mnum");
$buffer = $this->pop_get_line();
if(!ereg("^(\+OK)",$buffer)) {
$this->pop_error_msg = $buffer;
return 0;
} else return 1;
}
$this->pop_error_msg = $buffer;
return 0;
}
function pop_list_msgs() { //显示邮件
列表 global $userfolder,$use_progress_bar;
$msglist = Array();
$this->pop_send_command("LIST");
unset($buffer);
$buffer = $this->pop_get_line();
if(ereg("^(\+OK)",$buffer)) {
$counter = 0;
while (!feof($this->pop_connection)) {
$buffer = $this->pop_get_line();
if(trim($buffer) == ".") break;
$msgs = split(" ",$buffer);
if(is_numeric($msgs[0])) {
$msglist[$counter]["id"] = $counter+1; //$msgs[0];
$msglist[$counter]["msg"] = $msgs[0];
$msglist[$counter]["size"] = $msgs[1];
$counter++;
}
}
if(count($msglist) == 0) return $msglist;
$md = new mime_decode();
for($i=0;$i<count($msglist);$i++) {
$this->pop_send_command("TOP ".$msglist[$i]["msg"]." 0");
$buffer = $this->pop_get_line();
if(ereg("^(\+OK)",$buffer)) {
while (!feof($this->pop_connection)) {
$buffer = $this->pop_get_line();
if(trim($buffer) == ".") break;
if(strlen($buffer) > 3)
$header .= "$buffer\r\n";
}
$mail_info = $md->get_mail_info($header);
$msglist[$i]["date"] = $mail_info["date"];
$msglist[$i]["subject"] = $mail_info["subject"];
$msglist[$i]["message-id"] = $mail_info["message-id"];
$msglist[$i]["from"] = $mail_info["from"];
$msglist[$i]["fromname"] = $mail_info["from"][0]["name"];
$msglist[$i]["to"] = $mail_info["to"];
$msglist[$i]["cc"] = $mail_info["cc"];
$msglist[$i]["headers"] = $header;
$msglist[$i]["attach"] = (eregi("(multipart/mixed|multipart/related|application)",$mail_info["content-type"]))?1:0;
$flocalname = $userfolder."inbox/".md5($mail_info["subject"].$mail_info["message-id"].$mail_info["date"]).".eml";
$msglist[$i]["localname"] = $flocalname;
$msglist[$i]["read"] = file_exists($flocalname)?1:0;
}
$header = "";
}
}
return $msglist;
}
function pop_disconnect() { //断开与服务器的连接
$this->pop_send_command("QUIT");
$tmp = $this->pop_get_line();
fclose($this->pop_connection);
return 1;
}
}
?>