写个类,解析QQ web邮件,(示例html)能够获取发件人、收件人、主题、邮件主体。(类似于小偷程序)
接口定义大概如下(可以自己修改):
<?
class MailPasser{
    /***
     * 说明:参数$html用于存放QQ邮件html内容体.
     ****/
    function __construct($html) {
        ...
    }    /***
     * 说明:获取发件人.
     ****/
    function getSender() {
        ...
    }    /***
     * 说明:获取收件人
     ****/
    function getRecver() {
        ...
    }
    
    /***
     * 说明:获取邮件主题
     ****/
    function getSubject() {
        ...
    }    /***
     * 说明:获取邮件内容主体
     ****/
    function getBody() {
        ...
    }
}
?>注:主要使用的技术是正则表达式,要求能够解析你QQ 收件箱中所有web邮件,示例HTML本人收件箱中一份邮件的保存副本。本次测试重在能力的考察,不在结果。

解决方案 »

  1.   

    解析邮箱中所有web邮件就是首先你要把邮件弄出来才行啊,,,,不知道QQ邮箱是否支持pop3,模拟登陆更麻烦能读取到内容,后面就简单了
      

  2.   

    就假设读取读取示例html里的文件就可以了,那些都不用考虑的
    今天之前要交,各路高手帮帮忙哈
      

  3.   

    好像有验证码了,现在. curl不一定行..
    哪里就应该开启qq pop3协议,然后模仿下载邮件,然后取出你要的数据.
      

  4.   

    邮件的头和内容格式都是有规范的,你可以用foxmail收一个邮件,然后查看它的源码,里面有对应的相关信息,我简单从其他网页摘取过来一些,From:邮件作者,Sender:发信人,Reply-To:回邮地址,To: 收信人地址,Subject: 主题,然后只要按照这种格式一一对应解析就行了。google关键字:php解析邮件可以参考分析下面这个链接地址:
    http://topic.csdn.net/t/20030721/11/2052411.html
      

  5.   

    class MailPasser{
      public $html="";
      function __construct($html) {
    $html = preg_replace('/>(\s+)/','>',$html);
    $html = preg_replace('/(\s+)</','<',$html);
    $html = str_replace("\r\n",'',$html);
    $html = str_replace("\t",'',$html);
    $this->html=$html;
      }
      function getSender() {
    preg_match_all('~,fromname: "(.*?)",fromaddr:~is',$this->html,$sendername);
    preg_match_all('~,fromaddr: "(.*?)",date:~is',$this->html,$senderemail);
    return array("sendername"=>$sendername[1][0],"senderemail"=>$senderemail[1][0]);
      }  function getRecver() {
    preg_match_all('~,to: \[{name : "(.*?)",addr :~is',$this->html,$recvername);
    preg_match_all('~,addr : "(.*?)",qq  :~is',$this->html,$recveremail);
    preg_match_all('~,qq  : "(.*?)"},]~is',$this->html,$recverqq);
    return array("recvername"=>$recvername[1][0],"recveremail"=>$recveremail[1][0],"recverqq"=>$recverqq[1][0]);
      }  function getSubject() {
    preg_match_all('~<span id="subject" class="sub_title " >(.*?)</span>~is',$this->html,$subject);
    return array("subject"=>$subject[1][0]);
      }
      function getBody() {
    preg_match_all('~<div class="qqmlContent qqmlColumn">(.*?)<div style="clear:both;"></div></div><script type="text/javascript">~is',$this->html,$body);
    return array("body"=>$body[1][0]);
      }
    }
    $url="http://www.kankanz.com/mail.html";
    $contents=file_get_contents($url);
    $MailPasser = new MailPasser($contents);print_r($MailPasser->getSender());
    print_r($MailPasser->getRecver());
    print_r($MailPasser->getSubject());
    print_r($MailPasser->getBody());
      

  6.   

    其实直接用sockets读取邮件服务器的邮件更方便。
      

  7.   

    7楼,你好    $html = preg_replace('/>(\s+)/','>',$html);
                $html = preg_replace('/(\s+)</','<',$html);
    这2句是什么意思?
      

  8.   

    佩服,佩服,我现在很BS我的code速度