作者 邓超

x

@@ -116,20 +116,28 @@ class Body { @@ -116,20 +116,28 @@ class Body {
116 } 116 }
117 } 117 }
118 $first = array_values($first); 118 $first = array_values($first);
  119 + // body的数量字符串
  120 + preg_match("/^\{(\d+)\}/",trim($first[0]),$bodyNum);
119 $first[0] = preg_replace("/^\{\d+\}/",'',$first[0]); 121 $first[0] = preg_replace("/^\{\d+\}/",'',$first[0]);
120 // 第一行的结果就是 踢出 UID 1568602721 RFC822.TEXT {589} 122 // 第一行的结果就是 踢出 UID 1568602721 RFC822.TEXT {589}
121 $body[0] = implode("\r\n",$first); 123 $body[0] = implode("\r\n",$first);
122 /***************** end 第一行处理 **************/ 124 /***************** end 第一行处理 **************/
123 -// ----------------------------------------------------------- 125 + if($bodyNum[1]??0){
  126 + // 再次组装成字符串
  127 + $data->body = trim(implode("\r\n",$body));
  128 + $data->body = mb_substr($data->body,0,$bodyNum[1]);
  129 + }else{
  130 + // -----------------------------------------------------------
124 /***************** start 最后一行处理 **************/ 131 /***************** start 最后一行处理 **************/
125 // 最后一行可能是 UID 1568602721 微软的就是 132 // 最后一行可能是 UID 1568602721 微软的就是
126 $end = trim(end($body)); 133 $end = trim(end($body));
127 $end = preg_replace("/(UID \d+)|(FLAGS \([\\a-z* ]*\))/",'',$end); 134 $end = preg_replace("/(UID \d+)|(FLAGS \([\\a-z* ]*\))/",'',$end);
128 if(!trim($end)){ array_pop($body); } 135 if(!trim($end)){ array_pop($body); }
129 /***************** end 最后一行处理 **************/ 136 /***************** end 最后一行处理 **************/
130 -  
131 // 再次组装成字符串 137 // 再次组装成字符串
132 $data->body = trim(implode("\r\n",$body)); 138 $data->body = trim(implode("\r\n",$body));
  139 + }
  140 +
133 // 是否包含header 141 // 是否包含header
134 if($rfc822){ 142 if($rfc822){
135 // 删除header头信息这个是多余的 143 // 删除header头信息这个是多余的