作者 邓超

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 -// -----------------------------------------------------------  
124 - /***************** start 最后一行处理 **************/  
125 - // 最后一行可能是 UID 1568602721 微软的就是  
126 - $end = trim(end($body));  
127 - $end = preg_replace("/(UID \d+)|(FLAGS \([\\a-z* ]*\))/",'',$end);  
128 - if(!trim($end)){ array_pop($body); }  
129 - /***************** end 最后一行处理 **************/  
130 -  
131 - // 再次组装成字符串  
132 - $data->body = trim(implode("\r\n",$body)); 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 + // -----------------------------------------------------------
  131 + /***************** start 最后一行处理 **************/
  132 + // 最后一行可能是 UID 1568602721 微软的就是
  133 + $end = trim(end($body));
  134 + $end = preg_replace("/(UID \d+)|(FLAGS \([\\a-z* ]*\))/",'',$end);
  135 + if(!trim($end)){ array_pop($body); }
  136 + /***************** end 最后一行处理 **************/
  137 + // 再次组装成字符串
  138 + $data->body = trim(implode("\r\n",$body));
  139 + }
  140 +
133 // 是否包含header 141 // 是否包含header
134 if($rfc822){ 142 if($rfc822){
135 // 删除header头信息这个是多余的 143 // 删除header头信息这个是多余的