正在显示
1 个修改的文件
包含
23 行增加
和
0 行删除
| @@ -773,6 +773,14 @@ class Imap { | @@ -773,6 +773,14 @@ class Imap { | ||
| 773 | // 取得body | 773 | // 取得body |
| 774 | $result = $this->fetch($data,'body',$is_uid); | 774 | $result = $this->fetch($data,'body',$is_uid); |
| 775 | foreach ($result as $key=>$item){ | 775 | foreach ($result as $key=>$item){ |
| 776 | + // 兼容 有的邮箱 不支持 RFC822.TEXT | ||
| 777 | + if (empty($item['RFC822.TEXT']) && !empty($item['RFC822'])){ | ||
| 778 | + $item['RFC822.TEXT'] = $item['RFC822']; | ||
| 779 | + $item['RFC822.TEXT'] = explode("\r\n\r\n",$item['RFC822.TEXT']); | ||
| 780 | + unset($item['RFC822.TEXT'][0]); | ||
| 781 | + $item['RFC822.TEXT'] = implode("\r\n\r\n",$item['RFC822.TEXT']); | ||
| 782 | + } | ||
| 783 | + | ||
| 776 | if (!empty($item['RFC822.TEXT'])){ | 784 | if (!empty($item['RFC822.TEXT'])){ |
| 777 | $header = $this->fetchHeader($item['UID'],1); | 785 | $header = $this->fetchHeader($item['UID'],1); |
| 778 | $header = array_values($header); | 786 | $header = array_values($header); |
| @@ -934,6 +942,21 @@ class Imap { | @@ -934,6 +942,21 @@ class Imap { | ||
| 934 | } | 942 | } |
| 935 | break; | 943 | break; |
| 936 | } | 944 | } |
| 945 | + // 这个是整体 包含了邮件头 RFC822.HEADER 和 RFC822.TEXT body内容 | ||
| 946 | + case 'RFC822':{ | ||
| 947 | + array_shift($header); | ||
| 948 | + $result['RFC822'] = trim(implode(' ',$header)); | ||
| 949 | + $header = []; | ||
| 950 | + // 微软的邮箱有毛病 | ||
| 951 | + $endLine = explode("\n",$result['RFC822']); | ||
| 952 | + $endLine = trim(end($endLine)); | ||
| 953 | + if(preg_match("/^UID\s\d+\sFLAGS\s\(.*\)$/iU",$endLine)){ | ||
| 954 | + $arr = $this->parseFetch($endLine); | ||
| 955 | + $result = array_merge($result,$arr); | ||
| 956 | + $result['RFC822'] = mb_substr($result['RFC822'],0,-mb_strlen($endLine)); | ||
| 957 | + } | ||
| 958 | + break; | ||
| 959 | + } | ||
| 937 | case 'RFC822.HEADER':{ | 960 | case 'RFC822.HEADER':{ |
| 938 | array_shift($header); | 961 | array_shift($header); |
| 939 | $result['RFC822.HEADER'] = implode(' ',$header); | 962 | $result['RFC822.HEADER'] = implode(' ',$header); |
-
请 注册 或 登录 后发表评论