用PHP实现POP3邮件的解码(三)
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-22
left_tag_pos+1,$mail_lenth); if (trim($this->from_name)=="") $this->from_name=$this->from_mail; else if (ereg("[\"|\'']([^\''\"]+)[\''|\"]",$this->from_name,$reg)) $this->from_name=$reg[1]; } else { $this->from_name=$content; $this->from_mail=$content; //没有发件人的邮件地址 } break; case "TO": //收件人地址及姓名(可能 没有姓名) if ($left_tag_pos=strpos($content,"<")) { $mail_lenth=strrpos($content,">")-$left_tag_pos-1; $this->to_name=substr($content,0,$left_tag_pos); $this->to_mail=substr($content,$left_tag_pos+1,$mail_lenth); if (trim($this->to_name)=="") $this->to_name=$this->to_mail; else if (ereg("[\"|\'']([^\''\"]+)[\''|\"]",$this->to_name,$reg)) $this->to_name=$reg[1]; } else { $this->to_name=$content; $this->to_mail=$content; //没有分开收件人的邮件地址 } break; case "DATE" : //发送日期,为了处理方便,这里返回的是一个 Unix 时间戳,可以用 date("Y-m-d",$this->mail_time) 来得到一般格式的日期 $content=trim($content); $day=strtok($content," "); $day=substr($day,0,strlen($day)-1); $date=strtok(" "); $month=$this->month_num[strtok(" ")]; $year=strtok(" "); $time=strtok(" "); $time=split(":",$time); $this->mail_time=mktime($time[0],$time[1],$time[2],$month,$date,$year); break; case "SUBJECT": //邮件主题 $this->subject=$content; break; case "REPLY_TO": // 回复地址(可能没有) if (ereg("<([^>]+)>",$content,$reg)) $this->reply_to=$reg[1]; else $this->reply_to=$content; break; case "CONTENT-TYPE": // 整个邮件的 Content类型, eregi("([^;]*);",$content,$reg); $this->body_type=trim($reg[1]); if (eregi("multipart",$content)) // 如果是 multipart 类型,取得 分隔符 { while (!eregi(''boundary=\"(.*)\"'',$head[$i],$reg) and $head[$i]) $i++; $this->boundary=$reg[1]; } else //对于一般的正文类型,直接取得其编码方法 { while (!eregi("charset=[\"|\''](.*)[\''|\"]",$head[$i],$reg)) $i++; $this->body_char_set=$reg[1]; while (!eregi("Content-Transfer-Encoding:(.*)",$head[$i],$reg)) $i++; $this->body_code_type=trim($reg[1]); } break; case "CC": //抄送到。。 if (ereg("<([^>]+)>",$content,$reg)) $this->cc_to=$reg[1]; else $this->cc_to=$content; default: break; } // end switch $i++; } // end while if (trim($this->reply_to)=="") //如果没有指定回复地址,则回复地址为发送人地址 $this->reply_to=$this->from_mail; }// end function define function decode_body() //正文的解码,其中用到了不少邮件头解码所得来的信息 { $i=0; if (!eregi("multipart",$this->body_type)) // 如果不是复合类型,可以直接解码 { $tem_body=implode($this->body_temp,"\r\n"); switch (strtolower($this->body_code_type)) // body_code_type ,正文的编码方式,由邮 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: PHP魔法函数应用详解下一篇: PHP文件缓存的性能测试
关于用PHP实现POP3邮件的解码(三)的所有评论