正在显示
1 个修改的文件
包含
39 行增加
和
28 行删除
@@ -254,6 +254,10 @@ class Body { | @@ -254,6 +254,10 @@ class Body { | ||
254 | // $filename = MailFun::decodeMimeStr($filename[1]); | 254 | // $filename = MailFun::decodeMimeStr($filename[1]); |
255 | $filename = mb_decode_mimeheader($filename[1]); | 255 | $filename = mb_decode_mimeheader($filename[1]); |
256 | } | 256 | } |
257 | + // 附件 | ||
258 | + if(stripos($item,'Content-Disposition: attachment;')!==false){ | ||
259 | + $isfileattachment = 1; | ||
260 | + } | ||
257 | 261 | ||
258 | 262 | ||
259 | // 删除不需要的tag属性,如果需要进进行解析 | 263 | // 删除不需要的tag属性,如果需要进进行解析 |
@@ -270,39 +274,44 @@ class Body { | @@ -270,39 +274,44 @@ class Body { | ||
270 | } | 274 | } |
271 | // 是文本还是附件 | 275 | // 是文本还是附件 |
272 | else if(strpos($data['type'],'text/') === 0 ){ | 276 | else if(strpos($data['type'],'text/') === 0 ){ |
273 | - // tag | ||
274 | - $data['body'] = trim($this->body_remove_tag($data['body'],'Content-ID:')); | ||
275 | - | ||
276 | - $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
277 | - $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
278 | - $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
279 | - $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
280 | - | ||
281 | - // body解密 | ||
282 | - switch($data['encode']??''){ | ||
283 | - case 'base64': { | ||
284 | - $data['body'] = base64_decode($data['body']); | ||
285 | - break; | ||
286 | - } | ||
287 | - case 'quoted-printable': { | ||
288 | - $data['body'] = quoted_printable_decode($data['body']); | ||
289 | - break; | ||
290 | - } | ||
291 | - case '8bit': { | ||
292 | - try { | ||
293 | -// $data['body'] = DeCoding::de8bit($data['body']); | ||
294 | - // 暂时没有替换 imap_8bit的函数 | ||
295 | - $data['body'] = imap_8bit($data['body']); | ||
296 | - $data['body'] = quoted_printable_decode($data['body']); | ||
297 | - }catch (\Throwable $e){ | ||
298 | 277 | ||
278 | + // 这里还有可能出现附件 | ||
279 | + if($filename&&!empty($isfileattachment)){ | ||
280 | + $data = $this->parseFile($data,$filename); | ||
281 | + }else{ | ||
282 | + // tag | ||
283 | + $data['body'] = trim($this->body_remove_tag($data['body'],'Content-ID:')); | ||
284 | + | ||
285 | + $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
286 | + $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
287 | + $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
288 | + $data['body'] = $this->body_remove_tag($data['body'],"Content-"); | ||
289 | + | ||
290 | + // body解密 | ||
291 | + switch($data['encode']??''){ | ||
292 | + case 'base64': { | ||
293 | + $data['body'] = base64_decode($data['body']); | ||
294 | + break; | ||
295 | + } | ||
296 | + case 'quoted-printable': { | ||
297 | + $data['body'] = quoted_printable_decode($data['body']); | ||
298 | + break; | ||
299 | } | 299 | } |
300 | + case '8bit': { | ||
301 | + try { | ||
302 | +// $data['body'] = DeCoding::de8bit($data['body']); | ||
303 | + // 暂时没有替换 imap_8bit的函数 | ||
304 | + $data['body'] = imap_8bit($data['body']); | ||
305 | + $data['body'] = quoted_printable_decode($data['body']); | ||
306 | + }catch (\Throwable $e){ | ||
307 | + | ||
308 | + } | ||
300 | 309 | ||
301 | - break; | 310 | + break; |
311 | + } | ||
302 | } | 312 | } |
303 | - } | ||
304 | 313 | ||
305 | - // 转码 | 314 | + // 转码 |
306 | // if(isset($data['charset']) && $data['charset']){ | 315 | // if(isset($data['charset']) && $data['charset']){ |
307 | // $debody = @mb_convert_encoding($data['body'],'utf-8',$data['charset']); | 316 | // $debody = @mb_convert_encoding($data['body'],'utf-8',$data['charset']); |
308 | // if($debody){ | 317 | // if($debody){ |
@@ -310,6 +319,8 @@ class Body { | @@ -310,6 +319,8 @@ class Body { | ||
310 | // $debody = null; | 319 | // $debody = null; |
311 | // } | 320 | // } |
312 | // } | 321 | // } |
322 | + } | ||
323 | + | ||
313 | 324 | ||
314 | 325 | ||
315 | } | 326 | } |
-
请 注册 或 登录 后发表评论