| 
...
 | 
...
 | 
@@ -773,6 +773,14 @@ class Imap { | 
| 
 | 
 | 
         // 取得body
 | 
| 
 | 
 | 
         $result = $this->fetch($data,'body',$is_uid);
 | 
| 
 | 
 | 
         foreach ($result as $key=>$item){
 | 
| 
 | 
 | 
             // 兼容 有的邮箱 不支持 RFC822.TEXT
 | 
| 
 | 
 | 
             if (empty($item['RFC822.TEXT']) && !empty($item['RFC822'])){
 | 
| 
 | 
 | 
                 $item['RFC822.TEXT'] = $item['RFC822'];
 | 
| 
 | 
 | 
                 $item['RFC822.TEXT'] = explode("\r\n\r\n",$item['RFC822.TEXT']);
 | 
| 
 | 
 | 
                 unset($item['RFC822.TEXT'][0]);
 | 
| 
 | 
 | 
                 $item['RFC822.TEXT'] = implode("\r\n\r\n",$item['RFC822.TEXT']);
 | 
| 
 | 
 | 
             }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
             if (!empty($item['RFC822.TEXT'])){
 | 
| 
 | 
 | 
                 $header = $this->fetchHeader($item['UID'],1);
 | 
| 
 | 
 | 
                 $header = array_values($header);
 | 
| 
...
 | 
...
 | 
@@ -934,6 +942,21 @@ class Imap { | 
| 
 | 
 | 
                     }
 | 
| 
 | 
 | 
                     break;
 | 
| 
 | 
 | 
                 }
 | 
| 
 | 
 | 
                 // 这个是整体 包含了邮件头 RFC822.HEADER 和 RFC822.TEXT body内容
 | 
| 
 | 
 | 
                 case 'RFC822':{
 | 
| 
 | 
 | 
                     array_shift($header);
 | 
| 
 | 
 | 
                     $result['RFC822'] = trim(implode(' ',$header));
 | 
| 
 | 
 | 
                     $header = [];
 | 
| 
 | 
 | 
                     // 微软的邮箱有毛病
 | 
| 
 | 
 | 
                     $endLine = explode("\n",$result['RFC822']);
 | 
| 
 | 
 | 
                     $endLine = trim(end($endLine));
 | 
| 
 | 
 | 
                     if(preg_match("/^UID\s\d+\sFLAGS\s\(.*\)$/iU",$endLine)){
 | 
| 
 | 
 | 
                         $arr = $this->parseFetch($endLine);
 | 
| 
 | 
 | 
                         $result = array_merge($result,$arr);
 | 
| 
 | 
 | 
                         $result['RFC822'] = mb_substr($result['RFC822'],0,-mb_strlen($endLine));
 | 
| 
 | 
 | 
                     }
 | 
| 
 | 
 | 
                     break;
 | 
| 
 | 
 | 
                 }
 | 
| 
 | 
 | 
                 case 'RFC822.HEADER':{
 | 
| 
 | 
 | 
                     array_shift($header);
 | 
| 
 | 
 | 
                     $result['RFC822.HEADER'] = implode(' ',$header);
 | 
...
 | 
...
 | 
 |