sess_chk()) { $sess_info->sess_kill(); header("Location: index.html"); } ############ # CLASS LIST class mbox_user { var $domain; var $userid; var $passwd; var $usernm; var $home; var $quota; var $rows; var $sign; var $signflag; var $saveflag; var $spamflag; var $fwdd; var $fwddflag; var $vaca; var $vacadurg; var $vacacont; var $vacaflag; var $lastdate; function mbox_user() { global $mysql, $sess; $mysql["conn"] = mysql_connect($mysql["host"], $mysql["user"], $mysql["pass"]); mysql_select_db($mysql["data"], $mysql["conn"]); $result = mysql_query("select * from $mysql[tusr] where mbox_host = '$sess[domain]' and id = '$sess[userid]'", $mysql["conn"]); $row = mysql_fetch_array($result); $this->domain = $row["mbox_host"]; $this->userid = $row["id"]; $this->passwd = $row["passwd"]; $this->usernm = $row["usernm"]; $this->home = $row["home"]; $this->rows = $row["rows"]; $this->sign = $row["sign"]; $this->signflag = $row["sign_flag"]; $this->saveflag = $row["save_flag"]; $this->spamflag = $row["spam_flag"]; $this->fwdd = $row["forward"]; $this->fwddflag = $row["forward_flag"]; $this->vaca = $row["vaca"]; $this->vacadurg = $row["vaca_during"]; $this->vacacont = $row["vaca_count"]; $this->vacaflag = $row["vaca_flag"]; $this->quota = $row["quota_size"]; $this->lastdate = $row["login_date"]; // mysql_close($mysql["conn"]); } function replace_qmail() { global $mysql, $phpmail; $result = mysql_query("select * from $mysql[tusr] where mbox_host = '$this->domain' and id = '$this->userid'", $mysql["conn"]); $rcuser = mysql_fetch_array($result); $file = fopen($rcuser["home"]."/.qmail", "w"); if($phpmail["mtype"] == "lfs") flock($file, LOCK_EX); fwrite($file, "|".$phpmail["qhome"]."/bin/qmail-quota\n"); if($rcuser["vaca_flag"] == "Y") { fwrite($file, "|".$phpmail["qhome"]."/bin/qmail-autorespond ".$rcuser["vaca_during"]." ".$rcuser["vaca_count"]." ".$rcuser["home"]."/.autorespond ".$phpmail["lhome"]."/vaca 0 \$\n"); } fwrite($file, "|".$phpmail["qhome"]."/bin/preline /usr/bin/procmail -p -m ".$rcuser["home"]."/.procmailrc\n"); if($phpmail["mtype"] == "lfs") flock($file, LOCK_UN); fclose($file); $file = fopen($rcuser["home"]."/.autorespond", "w"); if($phpmail["mtype"] == "lfs") flock($file, LOCK_EX); if($rcuser["vaca_flag"] == "Y") fwrite($file, $rcuser["vaca"]); else fwrite($file, ""); if($phpmail["mtype"] == "lfs") flock($file, LOCK_UN); fclose($file); } function replace_rc() { global $mysql, $phpmail, $spam, $defbox; $result = mysql_query("select * from $mysql[tusr] where mbox_host = '$this->domain' and id = '$this->userid'", $mysql["conn"]); $rcuser = mysql_fetch_array($result); $file = fopen($rcuser["home"]."/.procmailrc", "w"); if($phpmail["mtype"] == "lfs") flock($file, LOCK_EX); fwrite($file, "PATH=/bin:/usr/bin:/usr/bin\n"); fwrite($file, "DEFAULT=".$rcuser["home"]."/Maildir/\n"); fwrite($file, "MAILDIR=".$rcuser["home"]."/Maildir/\n"); fwrite($file, "LOGFILE=".$phpmail["lhome"]."/procmail\n"); fwrite($file, "VERBOSE=no\n"); fwrite($file, "SHELL=/bin/sh\n"); fwrite($file, "\n"); fwrite($file, ":0 Efhw\n"); fwrite($file, "*^(Subject|From|Cc):.*=\\?EUC-KR\\?(B|Q)\\?\n"); fwrite($file, "|formail -c | hcode -dk -m\n"); fwrite($file, "\n"); fwrite($file, ":0 Efhw\n"); fwrite($file, "*^(Subject|From|Cc):.*=\\?ks_c_5601-1987\\?(B|Q)\\?\n"); fwrite($file, "|formail -c | hcode -dk -m\n"); // SPAM PROCESS switch($rcuser["spam_flag"]) { case "1": fwrite($file, "\n"); fwrite($file, ":0\n"); fwrite($file, "* ^Subject:.*(".$spam["low"].")\n"); fwrite($file, "\"".$rcuser["home"]."/".$defbox["esort"][3]."/cur\"\n"); break; case "3": fwrite($file, "\n"); fwrite($file, ":0\n"); fwrite($file, "* ^Subject:.*(".$spam["mid"].")\n"); fwrite($file, "\"".$rcuser["home"]."/".$defbox["esort"][3]."/cur\"\n"); break; case "5": fwrite($file, "\n"); fwrite($file, ":0\n"); fwrite($file, "* ^Subject:.*(".$spam["hig"].")\n"); fwrite($file, "\"".$rcuser["home"]."/".$defbox["esort"][3]."/cur\"\n"); break; default: break; } // NULL PROCESS $result = mysql_query("select * from $mysql[trul] where mbox_host = '$this->domain' and id = '$this->userid' and priority = 00 and active = 'Y' order by priority asc", $mysql["conn"]); $rcnull = mysql_fetch_array($result); if($rcnull["rule"] != "") { fwrite($file, "\n"); fwrite($file, ":0\n"); fwrite($file, "*^".$rcnull["rulehead"].":.*(".str_replace("\r\n", "|", $rcnull["rule"]).")\n"); fwrite($file, $rcnull["ruleebox"]."\n"); } // RULE PROCESS $result = mysql_query("select * from $mysql[trul] where mbox_host = '$this->domain' and id = '$this->userid' and priority != 00 and active = 'Y' order by priority asc", $mysql["conn"]); while($rcrule = mysql_fetch_array($result)) { fwrite($file, "\n"); fwrite($file, ":0\n"); fwrite($file, "*^(".$rcrule["rulehead"]."):.*(".str_replace("\r\n", "|", addcslashes($rcrule["rule"], "^$?+*$[]()|")).")\n"); fwrite($file, "\"".$rcuser["home"]."/".$rcrule["ruleebox"]."/cur\"\n"); } // FORWARD PROCESS switch($rcuser["forward_flag"]) { case "R": fwrite($file, "\n"); fwrite($file, ":0c\n"); fwrite($file, "! ".$rcuser["forward"]."\n"); break; case "D": fwrite($file, "\n"); fwrite($file, ":0\n"); fwrite($file, "! ".$rcuser["forward"]."\n"); break; default: break; } if($phpmail["mtype"] == "lfs") flock($file, LOCK_UN); fclose($file); } } class mbox_mbox { function mbox_mbox() { global $imap, $defbox; $status = imap_listmailbox($imap["conn"], "{".$imap["host"].":".$imap["port"]."}", "*"); if(is_array($status)) { reset($status); sort($status); while(list($key, $val) = each($status)) { $mbox_filter = eregi_replace("{".$imap["host"].":".$imap["port"]."}+", "", $val); for($i=0; $idate = $status->Date; $this->driver = $status->Driver; $this->mailbox = $status->Mailbox; $this->nmsgs = $status->Nmsgs; $this->recent = $status->Recent; $this->unread = $status->Unread; $this->deleted = $status->Deleted; $this->size = replace_size($status->Size); } } } class mbox_head_overview { var $subject; var $from_personal; var $from_address; var $date; var $msgid; var $references; var $size; var $dize; var $uid; var $msgno; var $flag_recent; var $flag_flagged; var $flag_answered; var $flag_deleted; var $flag_seen; var $flag_draft; var $flag_priority; var $flag_attached; function mbox_head_overview($mmsgs) { global $imap; $status = imap_fetch_overview($imap["conn"], "$mmsgs"); if(is_array($status)) { reset($status); for($i=0; $isubject == "") { $this->subject[$i] = "Á¦¸ñ¾øÀ½"; } else { $elements = imap_mime_header_decode($status[$i]->subject); for($j=0; $jsubject[$i] .= $elements[$j]->text; } $array = imap_rfc822_parse_adrlist($status[$i]->from, ""); if(is_array($array)) { reset($array); while(list($key, $val) = each($array)) { $this->from_address[$i] = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jfrom_personal[$i] .= eregi_replace("\"", "", $elements[$j]->text); } } else { $this->from_address[$i] = $status[$i]->from; $this->from_personal[$i] = $status[$i]->from; } $this->date[$i] = replace_date($status[$i]->date); $this->msgid[$i] = $status[$i]->message_id; $this->references[$i] = $status[$i]->references; $this->size[$i] = replace_size($status[$i]->size); $this->dize[$i] = $status[$i]->size; $this->uid[$i] = $status[$i]->uid; $this->msgno[$i] = $status[$i]->msgno; $this->flag_recent[$i] = $status[$i]->recent; $this->flag_flagged[$i] = $status[$i]->flagged; $this->flag_answered[$i] = $status[$i]->answered; $this->flag_deleted[$i] = $status[$i]->deleted; $this->flag_seen[$i] = $status[$i]->seen; $this->flag_draft[$i] = $status[$i]->draft; $this->flag_priority[$i] = $this->check_priority(imap_fetchheader($imap["conn"], $status[$i]->msgno)); $this->flag_attached[$i] = $this->check_attached(imap_fetchstructure($imap["conn"], $status[$i]->msgno)); } } } function check_priority($headinfo) { $priority = "3"; $array = explode("\n", $headinfo); for($i=0; $iparts); $i++) { // echo("[".$mimeinfo->parts[$i]->type."][".$mimeinfo->parts[$i]->encoding."][".$mimeinfo->parts[$i]->subtype."][".$mimeinfo->parts[$i]->id."][".$mimeinfo->parts[$i]->lines."][".$mimeinfo->parts[$i]->bytes."][".$mimeinfo->parts[$i]->disposition."][".$mimeinfo->parts[$i]->dparameters."][".$mimeinfo->parts[$i]->parameters."][".$mimeinfo->parts[$i]->parts."]
"); if($mimeinfo->parts[$i]->disposition == "ATTACHMENT") return TRUE; } return FALSE; } } class mbox_head_detail { var $date; var $udate; var $subject; var $msgid; var $flag_recent; var $flag_unseen; var $flag_answered; var $flag_deleted; var $flag_draft; var $flag_flagged; var $flag_priority; var $flag_attached; var $to_personal; var $to_address; var $from_personal; var $from_address; var $cc_personal; var $cc_address; var $bcc_personal; var $bcc_address; var $reply_personal; var $reply_address; var $sender_personal; var $sender_address; var $return_personal; var $return_address; function mbox_head_detail($mmsg) { global $imap; $status = imap_headerinfo($imap["conn"], $mmsg); if($status) { $this->date = replace_date($status->date); $this->udate = strftime("%Y-%m-%d %H:%M:%S", $status->udate); if($status->subject == "") { $this->subject = "Á¦¸ñ¾øÀ½"; } else { $array = imap_mime_header_decode($status->subject); for($i=0; $isubject .= $array[$i]->text; } $this->msgid = $status->message_id; $this->flag_recent = $status->Recent; $this->flag_unseen = $status->Unseen; $this->flag_answered = $status->Answered; $this->flag_deleted = $status->Deleted; $this->flag_draft = $status->Draft; $this->flag_flagged = $status->Flagged; $this->flag_priority = $this->check_priority(imap_fetchheader($imap["conn"], $mmsg)); $this->flag_attached = $this->check_attached(imap_fetchstructure($imap["conn"], $mmsg)); $array = imap_rfc822_parse_adrlist($status->toaddress, ""); if(is_array($array)) { reset($array); $i = 0; while(list($key, $val) = each($array)) { $this->to_address[$i] = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jto_personal[$i] .= eregi_replace("\"", "", $elements[$j]->text); } $i++; } } else { $this->to_address = $status->toaddress; $this->to_personal = $status->toaddress; } $array = imap_rfc822_parse_adrlist($status->fromaddress, ""); if(is_array($array)) { reset($array); while(list($key, $val) = each($array)) { $this->from_address = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jfrom_personal .= eregi_replace("\"", "", $elements[$j]->text); } } else { $this->from_address = $status->fromaddress; $this->from_personal = $status->fromaddress; } $array = imap_rfc822_parse_adrlist($status->ccaddress, ""); if(is_array($array)) { reset($array); $i = 0; while(list($key, $val) = each($array)) { $this->cc_address[$i] = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jcc_personal[$i] .= eregi_replace("\"", "", $elements[$j]->text); $i++; } } else { $this->cc_address = $status->ccaddress; $this->cc_personal = $status->ccaddress; } $array = imap_rfc822_parse_adrlist($status->bccaddress, ""); if(is_array($array)) { reset($array); while(list($key, $val) = each($array)) { $this->bcc_address = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jbcc_personal .= eregi_replace("\"", "", $elements[$j]->text); } } else { $this->bcc_address = $status->bccaddress; $this->bcc_personal = $status->bccaddress; } $array = imap_rfc822_parse_adrlist($status->reply_address, ""); if(is_array($array)) { reset($array); while(list($key, $val) = each($array)) { $this->reply_address = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jreply_personal .= eregi_replace("\"", "", $elements[$j]->text); } } else { $this->reply_address = $status->reply_address; $this->reply_personal = $status->reply_address; } $array = imap_rfc822_parse_adrlist($status->senderaddress, ""); if(is_array($array)) { reset($array); while(list($key, $val) = each($array)) { $this->sender_address = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jsender_personal .= eregi_replace("\"", "", $elements[$j]->text); } } else { $this->sender_address = $status->senderaddress; $this->sender_personal = $status->senderaddress; } $array = imap_rfc822_parse_adrlist($status->return_path, ""); if(is_array($array)) { reset($array); while(list($key, $val) = each($array)) { $this->return_address = $val->mailbox."@".$val->host; $elements = imap_mime_header_decode($val->personal); for($j=0; $jreturn_personal .= eregi_replace("\"", "", $elements[$j]->text); } } else { $this->return_address = $status->return_path; $this->return_personal = $status->return_path; } } } function check_priority($headinfo) { $priority = "3"; $array = explode("\n", $headinfo); for($i=0; $iparts); $i++) { // echo("[".$mimeinfo->parts[$i]->type."][".$mimeinfo->parts[$i]->encoding."][".$mimeinfo->parts[$i]->subtype."][".$mimeinfo->parts[$i]->id."][".$mimeinfo->parts[$i]->lines."][".$mimeinfo->parts[$i]->bytes."][".$mimeinfo->parts[$i]->disposition."][".$mimeinfo->parts[$i]->dparameters."][".$mimeinfo->parts[$i]->parameters."][".$mimeinfo->parts[$i]->parts."]
"); if($mimeinfo->parts[$i]->disposition == "ATTACHMENT") return TRUE; } return FALSE; } } class mbox_body { var $body; var $body_att; var $body_cid; function mbox_body($mmsg, $msect = NULL) { global $imap; $this->body = array(); $this->body_att = array(); $this->body_cid = array(); $mbody = imap_fetchstructure($imap["conn"], $mmsg); if(sizeof($mbody->parts) > 0) $this->parse_body($mbody, $msect); else $this->parse_single_body($mbody, htmlspecialchars(imap_fetchheader($imap["conn"], $mmsg))); } function parse_body($mbody, $msect) { # DEBUG SS # echo("::SECTION::"); # echo($msect); # echo("
"); # echo("::TYPE::"); # print_r($mbody->type); # echo("
"); # echo("::SUBTYPE::"); # print_r($mbody->subtype); # echo("
"); # echo("::ENCODING::"); # print_r($mbody->encoding); # echo("
"); # echo("::DISPOSITION::"); # print_r($mbody->disposition); # echo("
"); # echo("::PARAMTERS::"); # print_r($mbody->parameters); # echo("
"); # echo("::DPARAMTERS::"); # print_r($mbody->dparameters); # echo("
"); # DEBUG EE $body_attname = ""; if($mbody->ifdisposition) { if($mbody->disposition == "ATTACHMENT") { for($i=0; $iparameters); $i++) { $mtemp = $mbody->parameters[$i]; if($mtemp->attribute == "NAME" || $mtemp->attribute == "name") { $body_attname = $mtemp->value; break; } } for($i=0; $idparameters); $i++) { $mtemp = $mbody->dparameters[$i]; if($mtemp->attribute == "FILENAME" || $mtemp->attribute == "filename") { $body_attname = $mtemp->value; break; } } } } switch($mbody->type) { case TYPETEXT: $body_type = "text"; break; case TYPEMULTIPART: $body_type = "multipart"; for($i=0; $iparts); $i++) { if($msect != "") $msect = $msect . "."; for($i=0; $iparts); $i++) { if($mbody->subtype == "ALTERNATIVE" && count($mbody->parts) > "1") $this->parse_body($mbody->parts[++$i], $msect . ($i+1)); else $this->parse_body($mbody->parts[$i], $msect . ($i+1)); } } break; case TYPEMESSAGE: $body_type = "message"; $mtemp = count($mbody->parts[0]->parts); if($mtemp > 0) { for($i=0; $i<$mtemp; $i++) $this->parse_body($mbody->parts[0]->parts[$i], $msect . "." . ($i+1)); } else { $this->parse_body($mbody->parts[0], $msect . ".1"); } break; case TYPEAPPLICATION: $body_type = "application"; break; case TYPEAUDIO: $body_type = "audio"; break; case TYPEIMAGE: $body_type = "image"; break; case TYPEVIDEO: $body_type = "video"; break; case TYPEMODEL: $body_type = "model"; break; default: $body_type = "unknown"; break; } $body_mime = $body_type . "/" . strtolower($mbody->subtype); switch($mbody->encoding) { case ENC7BIT: $body_encode = "7bit"; break; case ENC8BIT: $body_encode = "8bit"; break; case ENCBINARY: $body_encode = "binary"; break; case ENCBASE64: $body_encode = "base64"; break; case ENCQUOTEDPRINTABLE: $body_encode = "quoted-printable"; break; default: $body_encode = "none"; break; } if($body_mime == "message/rfc822" || ($body_type != "multipart" && $body_mime != "message/rfc822")) { for($i=0; $iparameters); $i++) { $mtemp = $mbody->parameters[$i]; if($mtemp->attribute == "CHARSET" || $mtemp->attribute == "charset") { $body_charset = $mtemp->value; break; } } $mtemp = array("sect" => ($msect != "" ? $msect : 1), "mime" => $body_mime, "encode" => $body_encode, "charset" => $body_charset, "cid" => eregi_replace("(<|>)", "", $mbody->id), "size" => replace_size($mbody->bytes), "dize" => $mbody->bytes, "name" => $body_attname); // array_unshift($this->body, $mtemp); if($mbody->id != "") array_unshift($this->body_cid, $mtemp); else if($body_attname != "") array_unshift($this->body_att, $mtemp); else array_unshift($this->body, $mtemp); } } function parse_single_body($mbody, $head) { if(eregi("text/html", $head)) $body_mime = "text/html"; else $body_mime = "text/plain"; switch($mbody->encoding) { case ENC7BIT: $body_encode = "7bit"; break; case ENC8BIT: $body_encode = "8bit"; break; case ENCBINARY: $body_encode = "binary"; break; case ENCBASE64: $body_encode = "base64"; break; case ENCQUOTEDPRINTABLE: $body_encode = "quoted-printable"; break; default: $body_encode = "none"; break; } for($i=0; $iparameters); $i++) { $mtemp = $mbody->parameters[$i]; if($mtemp->attribute == "CHARSET" || $mtemp->attribute == "charset") { $body_charset = $mtemp->value; break; } } $mtemp = array("sect" => 1, "mime" => $body_mime, "encode" => $body_encode, "charset" => $body_charset, "cid" => $mbody->id, "size" => replace_size($mbody->bytes), "name" => ""); array_unshift($this->body, $mtemp); } } ############### # FUNCTION LIST function mbox_utf7_decode($str) { $ret = '';$str = ' '.$str; $stpos = strpos($str,'&',1); while($stpos) { $edpos = strpos($str,'-',1); $ret .= substr($str,1,$stpos-1); $conv = '+'.substr($str,$stpos+1,$edpos); $conv = str_replace(',','/',$conv); $ret .= trim(@iconv('UTF-7','EUC-KR',$conv)); $str = ' '.substr($str,$edpos+1); $stpos = strpos($str,'&',1); } $ret .= substr($str,1); $ret = trim($ret); return $ret; } function mbox_utf7_encode_($str) { $str .= ' '; $str = @iconv("EUC-KR","UTF-7",$str); $chk = 0; $ret = ''; $len = strlen($str); for($i=0; $i<$len; $i++) { if(($str[$i] == '+') && (!$chk)) { $chk = -1; $str[$i] = '&'; } if(($str[$i] == ' ') && $chk) { $chk = 0; $ret .= '-'; } if($str[$i] == '-') { $chk = 0; } if(($str[$i] == '/') && $chk) { $str[$i] = ','; } $ret .= $str[$i]; } $ret = trim($ret); return $ret; } function mbox_utf7_encode($str) { $NOT_ENCODE_CHARS = "!\"#$%&-*;<=>@[]^-`{|}"; $len = strlen($str); $chars = strlen($NOT_ENCODE_CHARS); $retval = ""; $sub = ""; $flag = 0; for($i=0; $i<$len; $i++) { $c_flag = 1; for($j=0; $j<$chars; $j++) { if($str[$i] == $NOT_ENCODE_CHARS[$j]) { $c_flag = 0; break; } } if($flag == 0) { if($c_flag == 0) { $retval .= $str[$i]; } else { $flag = 1; $sub .= $str[$i]; } } else { if($c_flag == 0) { $flag = 0; $retval .= mbox_utf7_encode_($sub); $retval .= $str[$i]; $sub = ""; } else { $sub .= $str[$i]; } } } if($flag == 1) { $flag = 0; $retval .= mbox_utf7_encode_($sub); } return $retval; } function bom_utf7_decode($str) { $utf7 = array( 'A' => 0, 'B' => 1, 'C' => 2, 'D' => 3, 'E' => 4, 'F' => 5, 'G' => 6, 'H' => 7, 'I' => 8, 'J' => 9, 'K' => 10, 'L' => 11, 'M' => 12, 'N' => 13, 'O' => 14, 'P' => 15, 'Q' => 16, 'R' => 17, 'S' => 18, 'T' => 19, 'U' => 20, 'V' => 21, 'W' => 22, 'X' => 23, 'Y' => 24, 'Z' => 25, 'a' => 26, 'b' => 27, 'c' => 28, 'd' => 29, 'e' => 30, 'f' => 31, 'g' => 32, 'h' => 33, 'i' => 34, 'j' => 35, 'k' => 36, 'l' => 37, 'm' => 38, 'n' => 39, 'o' => 40, 'p' => 41, 'q' => 42, 'r' => 43, 's' => 44, 't' => 45, 'u' => 46, 'v' => 47, 'w' => 48, 'x' => 49, 'y' => 50, 'z' => 51, '0' => 52, '1' => 53, '2' => 54, '3' => 55, '4' => 56, '5' => 57, '6' => 58, '7' => 59, '8' => 60, '9' => 61, '+' => 62, '/' => 63); $utf7r = array( 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'); preg_match("/\+(\/.+)-/", $str, $match); $str_utf7 = $match[1]; for($i=0; $i < strlen($str_utf7); $i++) { $string = substr($str_utf7, $i, 1); $bin .= sprintf("%06b", $utf7[$string]); } $values = array(); for($i=0; $i < strlen($bin); $i+=8) { $values[] = bindec(substr($bin, $i, 8)); } $st = 0; for($i=$st; $i= 1048576) { $csize = $msize/1048576; $csize = number_format($csize, 1, ".", ""); $csize .= "M"; } else if($msize >= 1024) { $csize = $msize/1024; $csize = number_format($csize, 1, ".", ""); $csize .= "K"; } else { $csize = $msize; $csize = number_format($csize, 1, ".", ""); $csize .= "B"; } return $csize; } function replace_date($mdate) { if(eregi("^[A-Z]", $mdate)) $cdate = substr($mdate, 5); else $cdate = $mdate; $cdate = str_replace("Jan", "01", $cdate); $cdate = str_replace("Feb", "02", $cdate); $cdate = str_replace("Mar", "03", $cdate); $cdate = str_replace("Apr", "04", $cdate); $cdate = str_replace("May", "05", $cdate); $cdate = str_replace("Jun", "06", $cdate); $cdate = str_replace("Jul", "07", $cdate); $cdate = str_replace("Aug", "08", $cdate); $cdate = str_replace("Sep", "09", $cdate); $cdate = str_replace("Oct", "10", $cdate); $cdate = str_replace("Nov", "11", $cdate); $cdate = str_replace("Dec", "12", $cdate); list($day, $month, $year, $time, $gmt) = explode(" ", $cdate); list($hour, $minute, $second) = explode(":", $time); $cdate = mktime($hour, $minute, $second, $month, $day, $year); if(!eregi("0900", $gmt) && !eregi("KST", $gmt)) $cdate += 32400; return date("Y-m-d H:i", $cdate); } function replace_mbox($lname) { global $defbox; for($i=0; $i 127 ) $kor++; } if(($kor%2 != 0) && (ord($mstr[$mlen-1]) > 127)) { $mlen--; } return substr($mstr, 0, $mlen); } } function browse_page($count, $perno, $num, $mpage, $query) { if($count % $perno) $pages_all = intval($count / $perno) + 1; else $pages_all = intval($count / $perno); if($mpage) $pages_cur = $mpage; if(!$pages_cur) $pages_cur = 1; if($pages_cur > $pages_all) $paegs_cur = $pages_all; if(!$pages_no) $pages_no = ($pages_cur - 1) * $perno; if($pages_cur > 1) $pages_pre = $pages_cur - 1; if($pages_cur < $pages_all) $pages_nex = $pages_cur + 1; $d0 = $pages_cur - $num - 1; $d1 = $pages_all - ($pages_cur + $num); if($d0 < 1) { $num_p = $num - $d0; $num_m = $num_p - ($num * 2); } else if($d1 < 1) { $num_p = $num + $d1; $num_m = $num_p - ($num * 2); } else { $num_p = $num; $num_m = -$num; } if($pages_cur != "1") $str .= "[F]"; else $str .= "[F]"; if($pages_all < $num*2+1) { $pagechk = $num*2; for($co = $num_m; $co<=$num_p; $co++) { $repages = $pages_cur + $co; if($repages > "0" && $repages > $num_p - $num *2 && $repages <= $pages_all) { if($co) { $page = $pages_cur + $co; $str .= "[$page]"; } else $str .= "[$pages_cur]"; } } } else { $pagechk = $pages_all; for($co = $num_m; $co<=$num_p; $co++) { if($pages_cur + $co <= $pages_all) { if($co) { $page = $pages_cur + $co; $str .= "[$page]"; } else $str .= "[$pages_cur]"; } } } if($pages_cur != $pages_all) $str .= "[L]"; else $str .= "[L]"; return $str; } ################# # INITIALIZE FOOT $imap["conn"] = imap_open("{".$imap["host"].":".$imap["port"]."}", $sess["userid"]."@".$sess["domain"], $sess["passwd"]); $mbox_mbox = new mbox_mbox; if(!isset($mbox) || $mbox == "") { $selbox["pname"] = $defbox["psort"][0]; $selbox["ename"] = $defbox["esort"][0]; $selbox["lname"] = $defbox["lsort"][0]; } else { for($i=0; $i