正在显示
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); |
-
请 注册 或 登录 后发表评论