【www.gdgbn.com--邮件】

-- php教程myadmin sql dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- host: localhost
-- generation time: jun 29, 2010 at 09:27 am
-- server version: 5.0.51
-- php version: 5.2.6

set sql_mode="no_auto_value_on_zero";


/*!40101 set @old_character_set_client=@@character_set_client */;
/*!40101 set @old_character_set_results=@@character_set_results */;
/*!40101 set @old_collation_connection=@@collation_connection */;
/*!40101 set names utf8 */;

--
-- database: `test`
--

-- --------------------------------------------------------

--
-- table structure for table `maillist`
--

create table if not exists `maillist` (
  `id` int(11) not null auto_increment,
  `title` text collate utf8_unicode_ci not null,
  `content` mediumtext collate utf8_unicode_ci not null,
  `senduser` varchar(50) collate utf8_unicode_ci not null,
  `sendmail` varchar(200) collate utf8_unicode_ci not null,
  `sendtime` int(11) not null,
  `accept_email` varchar(200) collate utf8_unicode_ci not null,
  `cc_email` varchar(200) collate utf8_unicode_ci not null,
  `bcc_email` varchar(200) collate utf8_unicode_ci not null,
  `msessage_id` varchar(200) collate utf8_unicode_ci not null,
  `msgno` int(11) not null comment "邮件的序号,为0表示已经下载结束",
  `is_download` tinyint(4) not null default "0",
  primary key  (`id`)
) engine=myisam default charset=utf8 collate=utf8_unicode_ci auto_increment=1 ;

--
-- dumping data for table `maillist`
--


-- --------------------------------------------------------

--
-- table structure for table `mail_account`
--

create table if not exists `mail_account` (
  `id` int(11) not null auto_increment,
  `username` varchar(100) not null,
  `password` varchar(50) not null,
  `emailaddress` varchar(100) not null,
  `mailserver` varchar(50) not null,
  `servertype` varchar(10) not null,
  `port` varchar(10) not null,
  primary key  (`id`)
) engine=myisam default charset=latin1 auto_increment=1 ;

--
-- dumping data for table `mail_account`
--


-- --------------------------------------------------------

--
-- table structure for table `mail_attach`
--

create table if not exists `mail_attach` (
  `id` int(11) not null auto_increment,
  `mail_id` int(11) not null,
  `filename` varchar(200) collate utf8_unicode_ci not null,
  `filename_tmp` varchar(200) collate utf8_unicode_ci not null,
  `download_time` datetime not null,
  primary key  (`id`)
) engine=myisam default charset=utf8 collate=utf8_unicode_ci auto_increment=1 ;

--
-- dumping data for table `mail_attach`
--

 

config.php文件

 $path = "d:/phpnow/htdocs/attach/";
 $urlpath = "http://localhost/attach/";
 
?>

list.php邮箱列表页面
 header("content-type: text/html; charset=utf-8");
 header("expires: ".date("d,d m y h:i:s",mktime(0,0,0,1,1,2000))." gmt");
 header("last-modified:".gmdate("d,d m y h:i:s")." gmt");
 header("cache-control: private, no-cache,must-revalidate");
 header("pragma: no-cache");
 
 include_once "dbconfig.php";
 $dblink = mysql教程_connect("localhost",$dbuser,$dbpasswd);
 mysql_query("set names "utf8"");
 mysql_select_db("test");
 $emailaddress = $_request["email"];
?>


list




 
 ">收邮件
 ">发邮件
 

 
 $sql = "select * from maillist where accept_email="".$emailaddress."" order by sendtime desc";
 $rlt = mysql_query($sql);
 while ($row = mysql_fetch_array($rlt)){
  $title = strips教程lashes($row["title"]);
  $senduser = stripslashes($row["senduser"]);
  $sendtime = $row["sendtime"];
  $senddate = date("y-m-d h:i:s",$sendtime+3600*8);
  $msessage_id = $row["msessage_id"];
  $msgno = $row["msgno"];
  $msgflag = "未读";
  if(!$msgno){
   $msgflag = "已读";
  }
  echo "";
  echo "$title";
  echo "$senduser";
  echo "$senddate";
  //echo "查看";
  echo "查看";
  echo "$msgflag";
  echo "";
 }
?>

receuv.php收邮件页面
 set_time_limit(0);
 include_once "imap.php";
 include_once "dbconfig.php";
 $dblink = mysql_connect("localhost",$dbuser,$dbpasswd);
 mysql_query("set names "utf8"");
 mysql_select_db("test");
 
 $emailaddress = $_request["email"];
 
 $sql = "select * from mail_account where emailaddress="".$emailaddress.""";
 $rlt = mysql_query($sql);
 $row = mysql_fetch_array($rlt);
 
 $username = $row["username"];
 $password = $row["password"];
 $emailaddress = $row["emailaddress"];
 $mailserver = $row["mailserver"];
 $servertype = $row["servertype"];
 $port = $row["port"];
 
 
 $mail = new imap($username,$password,$emailaddress,$mailserver,$servertype,$port,false);
 $mail->open();
 $mailnum = $mail->getmaillist();

 
 for($i=1;$i<=$mailnum;$i++){
  $mailheader = $mail->head($i);
  //echo "

";print_r($mailheader);echo "
";
  //echo "
";
  $msgno = $mailheader["id"];
  $size = $mailheader["size"];
  $messageid = $mailheader["message_id"];
  $udate = $mailheader["udate"];
  $subject = addslashes($mailheader["subject"]);
  $charset = $mailheader["charset"];
  $sendmail = $mailheader["from"];
  $senduser = addslashes($mailheader["frompersonal"]);
  if($senduser==""){
   $senduser = $sendmail;
  }
  $fromcharset = $mailheader["fromcharset"];
  if($fromcharset=="default"){
   $fromcharset = "gb2312";
  }
  if($charset=="default"){
   $charset = "gb2312";
  }
  $csql = "select * from maillist where msessage_id="".$messageid."" and sendtime="".$udate.""";
  $crlt = mysql_query($csql);
  if(mysql_num_rows($crlt)==0){
   $subject = iconv($charset,"utf-8",$subject);
   $senduser = iconv($fromcharset,"utf-8",$senduser);
   $sql = "insert into maillist set title="".$subject."",senduser="".$senduser."",sendmail="".$sendmail."",
     sendtime="".$udate."",msessage_id="".$messageid."",msgno="".$msgno."",accept_email="".$emailaddress.""";
   mysql_query($sql);
  }else{
   $sql = "update maillist set msgno="".$msgno."" where msessage_id="".$messageid."" and sendtime="".$udate.""";
   mysql_query($sql);
  }
  
 }
 
 $mail->close();
 header("location:list.php?email=".$emailaddress);
?>  

read_mail.php读取邮件页面
 include_once "dbconfig.php";
 $msessage_id = $_request["msessage_id"];
 $udate = $_request["udate"];
 $msgno = $_request["msgno"];
 $dblink = mysql_connect("localhost",$dbuser,$dbpasswd);
 mysql_query("set names "utf8"");
 mysql_select_db("test");
 $email = $_request["email"];
?>


list


 echo "返回收件箱
";
 $sql = "select * from maillist where sendtime="".$udate."" and msessage_id="".$msessage_id.""";
 $rlt = mysql_query($sql);
 $row = mysql_fetch_array($rlt);
 $mailid = $row["id"];
 $title = stripslashes($row["title"]);
 $senduser = stripslashes($row["senduser"]);
 $sendmail = stripslashes($row["sendmail"]);
 
 $senddate = date("y-m-d h:i:s",$udate+3600*8);
 
 echo "主题:".$title."
";
 echo "发件人:".$senduser."<".$sendmail.">
";
 echo "发件时间:".$senddate."
";
?>

getmailbody.php页面代码
 set_time_limit(0);
 header("content-type: text/html; charset=utf-8");
 include_once "imap.php";
 include_once "dbconfig.php";
 $dblink = mysql_connect("localhost",$dbuser,$dbpasswd);
 mysql_query("set names "utf8"");
 mysql_select_db("test");
 
 
 $msessage_id = $_request["msessage_id"];
 $udate = $_request["udate"];
 $msgno = $_request["msgno"];
 $emailaddress = $_request["email"];
 
 $sql = "select id,is_download from maillist where sendtime="".$udate."" and msessage_id="".$msessage_id.""";
 $rlt = mysql_query($sql);
 $row = mysql_fetch_array($rlt);
 $is_download = $row["is_download"];
 $mail_id = $row["id"];
 if($is_download==0){
  $d = 1;
  
  $sql = "select * from mail_account where emailaddress="".$emailaddress.""";
  $rlt = mysql_query($sql);
  $row = mysql_fetch_array($rlt);
  
  $username = $row["username"];
  $password = $row["password"];
  $emailaddress = $row["emailaddress"];
  $mailserver = $row["mailserver"];
  $servertype = $row["servertype"];
  $port = $row["port"];  
  
  $mail = new imap($username,$password,$emailaddress,$mailserver,$servertype,$port,false);
  $mail->open();
  
  $mail->settype();
  $mail->fetch_structure($msgno);
  
  $attacharr = $mail->getallattachment($msgno);
  $i = 1;
  $inlineattach = array();
  if(!empty($attacharr)){
   foreach ($attacharr as $rows){
    $filename = $rows["filename"];
    $details = $rows["details"];
    $attachtype = $rows["attachtype"];
    $filesize = $rows["filesize"];
    $inlineid = $rows["inline_id"];
    $downloadname = $mail->deliverattach($filename,$details,$path,$i);
    if($attachtype=="inline"){
     $inlineattach[$i-1]["filename"] = $filename;
     $inlineattach[$i-1]["downloadname"] = $downloadname;
     $inlineattach[$i-1]["filesize"] = $filesize;
     $inlineattach[$i-1]["attachtype"] = $attachtype;
     $inlineattach[$i-1]["inline_id"] = $inlineid;
    }
    
    $isql = "insert into mail_attach set mail_id="".$mail_id."",filename="".$filename."",
       filename_tmp="".$downloadname."",download_time=now()";
    mysql_query($isql);
    
    $i++;
   }
  }
  
  $content = $mail->getbody($msgno);
  $content = $mail->replaceimg($inlineattach,$content);
  
  $sql = "update maillist set content="".addslashes($content)."",is_download="".$d."" where sendtime="".$udate."" and msessage_id="".$msessage_id.""";
  mysql_query($sql);
  
  if($d){
   while(true){
    if($mail->deletemails($msgno)){
     if($mail->emptydeletebox()){
      $sql = "update maillist set msgno=0 where sendtime="".$udate."" and msessage_id="".$msessage_id.""";
      mysql_query($sql);
      
      $sql = "select id from maillist where msgno<>0 order by msgno asc";
      $rlt = mysql_query($sql);
      $i = 1;
      while ($row = mysql_fetch_array($rlt)){
       $id = $row["id"];
       $usql = "update maillist set msgno=".$i." where id="".$id.""";
       mysql_query($usql);
       $i++;
      }
      break;
     }
     
    }
   }
  }
  
  $mail->close();
 }
 
 $sql = "select * from maillist where sendtime="".$udate."" and msessage_id="".$msessage_id.""";
 $rlt = mysql_query($sql);
 $row = mysql_fetch_array($rlt);
 $content = $row["content"];
 
 $asql = "select * from mail_attach where mail_id="".$mail_id.""";
 $arlt = mysql_query($asql);
 if(mysql_num_rows($arlt)!=0){
  echo "附件:";
  while ($arow = mysql_fetch_array($arlt)){
   $filename = $arow["filename"];
   $filename_tmp = $arow["filename_tmp"];
   echo strtolower($filename)."  ";
   echo "查看
";
  }
 }
 
 echo $content;
?>

  imap.php页面代码

/**
 *+----------------------------------------------------------------------------------------------------+
  *| imap message class - recevie mailbox by imap              |
  *|                                                                                                    |
  *| author: tiger zhang                                                                                |
  *| mailto: tinamonkey113@163.com                                                                    |
  *|                                                                               |
  *|                                                                                                    |
  *| (c) copyright 2010, tiger zhang, all rights reseverd                                              |
  *+----------------------------------------------------------------------------------------------------+
  **
 */
class imap{

var $server="";
var $username="";
var $password="";

var $marubox="";     

var $email="";
 

var $linkserver;//email stream

var $error;

var $mailnum = 0;

var $partsary = array();

var $data_types;        // (array)(string)         various message part types
var $encoding_types; // (array)(string)         various encoding types

var $structure;         // (array)(object)         contains the complete body structure
var $pid;               // (array)(array)(str)     part id
var $file_type;         // (array)(array)(str)     mime type
var $disposition;       // (array)(array)(str)     inline | attachment
var $fsize;             // (array)(array)(int)     part size in bytes
var $encoding;          // (array)(array)(str)     message encoding
var $fname;             // (array)(array)(str)     original file name
var $inline_id;         // (array)(array)(str)     string containing the id for multipart/related
var $has_attachments;   // (array)(array)(bool)
var $file_code;         // (array)(array)(str)     charset

function imap($username,$password,$emailaddress,$mailserver="localhost",$servertype="pop",$port="110",$ssl = false){
 if($servertype=="imap")
 {
  if($port=="") $port="143";
  $strconnect="{".$mailserver.":".$port. "}inbox";
 }
 else
 {
  $strconnect="{".$mailserver.":".$port. "/pop3".($ssl ? "/ssl" : "")."}inbox";
 }
 $this->server   = $strconnect;
 $this->username   = $username;
 $this->password   = $password;
 $this->email   = $emailaddress;
}
function open(){
    //$this->linkserver = @imap_open($this->mailbox,$this->username,$this->password); 
 $this->linkserver=@imap_open($this->server,$this->username,$this->password) or die("connecting to mail server,refresh");
  
 if(!$this->linkserver)
 {
  echo "error: connecting to mail server,refresh";
  exit;
 } 
}

function checkopen(){
    if(imap_ping($this->linkserver) === false){
        $this->error = "imap_open的连接错误:".imap_last_error();
        return false;
    }else{
        $this->error = "ok";
        return true;
    }
}

function nd(){
    $checkresult = imap_check($this->linkserver);
    $nummsgs = $checkresult->nmsgs;
    $date = $checkresult->date;
    $checkreturn[] = $nummsgs;
    $checkreturn[] = $date;
    return $checkreturn;   
}  

function getmsgno($messageid){
 return imap_uid($this->linkserver,$messageid);
}

/**
 * 获取邮件总数
 *
 */
function getmaillist(){
 $checkresult = imap_check($this->linkserver);
 $nummsgs = $checkresult->nmsgs;
 return $nummsgs;
}

/**
 * 获取邮件头内容
 * @param unknown_type $id
 * @param unknown_type $all
 * @param unknown_type $several
 * @return array
 (
     [id] => 4
     [size] => 1697
     [message_id] =>
     [udate] => 1276687275
     [subject] => 测试
     [charset] => gbk
     [topersonal] => test
     [tocharset] => gbk
     [to] => test@ckichina.com
     [frompersonal] => 五月的饼干屋
     [fromcharset] => gbk
     [from] => 9900469@qq.com
 )
*/
function head($id = "",$allhead=false,$all = false,$several = array()){
    if($all == true){
        $checkreturn = imap::nd();
        $nummsgs = $checkreturn[0];
        for($i=0;$i<$nummsgs;$i++){
            $head_array[$i]["id"] = $i+1;
            $head = imap_header($this->linkserver,$i+1);
            if($head->udate == ""){
                $head_array[$i]["udate"] = "";
            }else{
                $head_array[$i]["udate"] = $head->udate;
            }
            if($head->subject == ""){
                $head_array[$i]["subject"] = "";
            }else{
                $head_array[$i]["subject"] = $head->subject;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["subject"]);
                //echo "

".print_r($analyze_charset);echo "
";
                $head_array[$i]["subject"] = $analyze_charset[0]->text;
            }
            if($head->to == ""){
                $head_array[$i]["to"] == "";
            }else{
                $to = $head->to;
                $to = $to[0]->mailbox."@".$to[0]->host;
                $head_array[$i]["to"] = $to;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["to"]);
                $head_array[$i]["to"] = $analyze_charset[0]->text;
            }
            if($head->from == ""){
                $head_array[$i]["personal"] == "";
                $head_array[$i]["from"] == "";
            }else{
                $from = $head->from;
               
                $head_array[$i]["personal"] = $from[0]->personal;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["personal"]);
                $head_array[$i]["personal"] = $analyze_charset[0]->text;
               
                $fromaddress = $from[0]->mailbox."@".$from[0]->host;
                $head_array[$i]["from"] = $fromaddress;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["from"]);
                $head_array[$i]["from"] = $analyze_charset[0]->text;
            }
        }
        return $head_array;
    }  
    if(count($several) > 0){
        $num = count($several);
        for($i=0;$i<$num;$i++){
            $head_array[$i]["id"] = $several[$i];
           
            $head = imap_header($this->linkserver,$several[$i]);
            if($head->udate == ""){
                $head_array[$i]["udate"] = "";
            }else{
                $head_array[$i]["udate"] = $head->udate;
            }
            if($head->subject == ""){
                $head_array[$i]["subject"] = "";
            }else{
                $head_array[$i]["subject"] = $head->subject;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["subject"]);
                $head_array[$i]["subject"] = $analyze_charset[0]->text;
            }
            if($head->to == ""){
                $head_array[$i]["to"] == "";
            }else{
                $to = $head->to;
                $to = $to[0]->mailbox."@".$to[0]->host;
                $head_array[$i]["to"] = $to;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["to"]);
                $head_array[$i]["to"] = $analyze_charset[0]->text;
            }
            if($head->from == ""){
                $head_array[$i]["personal"] == "";
                $head_array[$i]["from"] == "";
            }else{
                $from = $head->from;
               
                $head_array[$i]["personal"] = $from[0]->personal;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["personal"]);
                $head_array[$i]["personal"] = $analyze_charset[0]->text;
               
                $fromaddress = $from[0]->mailbox."@".$from[0]->host;
                $head_array[$i]["from"] = $fromaddress;
                $analyze_charset = imap_mime_header_decode($head_array[$i]["from"]);
                $head_array[$i]["from"] = $analyze_charset[0]->text;
            }
        }
        return $head_array;
    }
    $head = imap_header($this->linkserver,$id);
    if($allhead){
     return $head;
    }
    $head_array["id"] = $id;
    $head_array["size"] = $head->size;
    if($head->message_id == ""){
     $head_array["message_id"] = "";
    }else{
     $head_array["message_id"] = $head->message_id;
    }
    if($head->udate == ""){
        $head_array["udate"] = "";
    }else{
        $head_array["udate"] = $head->udate;
    }
    if($head->subject == ""){
        $head_array["subject"] = "";
    }else{
        $head_array["subject"] = $head->subject;
        $analyze_charset = imap_mime_header_decode($head_array["subject"]);
        $head_array["charset"] = $analyze_charset[0]->charset;
        $head_array["subject"] = $analyze_charset[0]->text;
    }
   
    if($head->to == ""){
        $head_array["topersonal"] == "";
        $head_array["tocharset"] == "";
        $head_array["to"] == "";
    }else{
        $to = $head->to;
        $head_array["topersonal"] = $to[0]->personal;
        $analyze_charset = imap_mime_header_decode($head_array["topersonal"]);
       
        $head_array["topersonal"] = $analyze_charset[0]->text;
        $head_array["tocharset"] = $analyze_charset[0]->charset;
        $to = $to[0]->mailbox."@".$to[0]->host;
       
        $head_array["to"] = $to;
        $analyze_charset = imap_mime_header_decode($head_array["to"]);
        $head_array["to"] = $analyze_charset[0]->text;
    }
    if($head->reply_to == ""){
     
    }
    if($head->from == ""){
        $head_array["frompersonal"] == "";
        $head_array["fromcharset"] == "";
        $head_array["from"] == "";
    }else{
        $from = $head->from;
               
        $head_array["frompersonal"] = $from[0]->personal;
        $analyze_charset = imap_mime_header_decode($head_array["frompersonal"]);
        $head_array["frompersonal"] = $analyze_charset[0]->text;
        $head_array["fromcharset"] = $analyze_charset[0]->charset;
               
        $fromaddress = $from[0]->mailbox."@".$from[0]->host;
        $head_array["from"] = $fromaddress;
        $analyze_charset = imap_mime_header_decode($head_array["from"]);
        $head_array["from"] = $analyze_charset[0]->text;
    }
    return $head_array;
}

function analyze_body($id){
    $structure = imap_fetchstructure($this->linkserver,$id);
    return $structure;
}

/**
 * 设置code和filetype
 *
 */
function settype()
{
     $this->data_types = array();

     $this->data_types[0] = "text";
     $this->data_types[1] = "multipart";
     $this->data_types[2] = "message";
     $this->data_types[3] = "application";
     $this->data_types[4] = "audio";
     $this->data_types[5] = "image";
     $this->data_types[6] = "video";
     $this->data_types[7] = "other";

     $this->encoding_types = array();

     $this->encoding_types[0] = "7bit";
     $this->encoding_types[1] = "8bit";
     $this->encoding_types[2] = "binary";
     $this->encoding_types[3] = "base64";
     $this->encoding_types[4] = "quoted-printable";
     $this->encoding_types[5] = "other";

     return;
}

 /**
 * * 遍历structure取出所有的相关信息
 *
 * @param unknown_type $mid
 * @param unknown_type $sub_part
 * @param unknown_type $sub_pid
 * @param unknown_type $n
 * @param unknown_type $is_sub_part
 * @param unknown_type $skip_part
 * @return unknown
  *+----------------------------------------------------------------------------------------------------+
  *| imap message scanner - scans information provided by imap_fetchstructure()                         |
  *|                                                                                                    |
  *| author: richard york                                                                               |
  *| mailto:richy at smilingsouls.net                                                                   |
  *| http://www.smilingsouls.net                                                                        |
  *| modified by:tiger zhang(2010-6-20)                                                                 |
  *|                                                                                                    |
  *| (c) copyright 2004, richard york, all rights reseverd                                              |
  *+----------------------------------------------------------------------------------------------------+
  **
 */  
function fetch_structure($mid, $sub_part = null, $sub_pid = null, $n = 0, $is_sub_part = false, $skip_part = false){
   if (!is_array($sub_part))
            {
                $this->structure[$mid] = imap_fetchstructure($this->linkserver, $mid);
            }

            if (isset($this->structure[$mid]->parts) || is_array($sub_part))
            {
                if ($is_sub_part == false)
                {
                    $parts = $this->structure[$mid]->parts;
                }

                else
                {
                    $parts = $sub_part;
                    $n++;
                }

                for($p = 0, $i = 1; $p < count($parts); $n++, $p++, $i++)
                {
                    // skip the following...
                    // skip multipart/mixed!
                    // skip subsequent multipart/alternative if this part is message/rfc822
                    // skip multipart/related

                    $ftype        = (empty($parts[$p]->type))?           $this->data_types[0]."/".strtolower($parts[$p]->subtype) : $this->data_types[$parts[$p]->type]."/".strtolower($parts[$p]->subtype);
                    $encoding     = (empty($parts[$p]->encoding))?       $this->encoding_types[0] : $this->encoding_types[$parts[$p]->encoding];
                    $skip_next    = ($ftype == "message/rfc822")?        true : false;

                    if ($ftype == "multipart/mixed" || $skip_part == true && $ftype == "multipart/alternative" || $ftype == "multipart/related")
                    {
                        $n--;
                    }

                    else
                    {
                        $this->pid[$mid][$n]       = ($is_sub_part == false)? $i : $sub_pid.".".$i;
                        $this->file_type[$mid][$n] = $ftype;
                        $this->encoding[$mid][$n]  = $encoding;
                        $this->fsize[$mid][$n]     = (!isset($parts[$p]->bytes) || empty($parts[$p]->bytes))? 0 : $parts[$p]->bytes;

                        # force inline disposition if none is present

                        if ($parts[$p]->ifdisposition == true)
                        {
                            $this->disposition[$mid][$n] = strtolower($parts[$p]->disposition);

                            if (strtolower($parts[$p]->disposition) == "attachment")
                            {
                                if ($parts[$p]->ifdparameters == true)
                                {
                                    $params = $parts[$p]->dparameters;

                                    foreach ($params as $param)
                                    {
                                        if(strtolower($param->attribute) == "filename")
                                        {
                                            $this->fname[$mid][$n] = $param->value;
                                            break;
                                        }
                                    }
                                }
                            }else if (strtolower($parts[$p]->disposition) == "inline")
                            {
                                if ($parts[$p]->ifdparameters == true)
                                {
                                    $params = $parts[$p]->dparameters;

                                    foreach ($params as $param)
                                    {
                                        if(strtolower($param->attribute) == "filename")
                                        {
                                            $this->fname[$mid][$n] = $param->value;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        else if ($parts[$p]->ifparameters == true)
                        {
                            $this->disposition[$mid][$n] = "inline";
                            $params = $parts[$p]->parameters;
                         foreach ($params as $param)
                            {
                                if(strtolower($param->attribute) == "name")
                                {
                                    $this->fname[$mid][$n] = $param->value;
                                    break;
                                }else if(strtolower($param->attribute) == "charset"){
                                 $this->file_code[$mid][$n] = strtolower($param->value);
                       &n

本文来源:http://www.gdgbn.com/jsp/25557/