File tree 1 file changed +9
-16
lines changed
1 file changed +9
-16
lines changed Original file line number Diff line number Diff line change @@ -435,26 +435,19 @@ private function decode(mixed $value): mixed {
435
435
$ decoder = $ this ->config ['decoder ' ]['message ' ];
436
436
437
437
if ($ value !== null ) {
438
- $ is_utf8_base = $ this ->is_uft8 ($ value );
439
-
440
438
if ($ decoder === 'utf-8 ' && extension_loaded ('imap ' )) {
441
- $ value = \imap_utf8 ($ value );
442
- $ is_utf8_base = $ this -> is_uft8 ( $ value ) ;
443
- if ($ is_utf8_base ) {
444
- $ value = mb_decode_mimeheader ( $ value );
439
+ $ decoded_values = $ this -> mime_header_decode ($ value );
440
+ $ tempValue = "" ;
441
+ foreach ($ decoded_values as $ decoded_value ) {
442
+ $ tempValue .= $ this -> convertEncoding ( $ decoded_value -> text , $ decoded_value -> charset );
445
443
}
446
- if ($ this ->notDecoded ($ original_value , $ value )) {
447
- $ decoded_value = $ this ->mime_header_decode ($ value );
448
- if (count ($ decoded_value ) > 0 ) {
449
- if (property_exists ($ decoded_value [0 ], "text " )) {
450
- $ value = $ decoded_value [0 ]->text ;
451
- }
452
- }
444
+ if ($ tempValue ) {
445
+ $ value = $ tempValue ;
446
+ } else {
447
+ $ value = \imap_utf8 ($ value );
453
448
}
454
- } elseif ($ decoder === 'iconv ' && $ is_utf8_base ) {
449
+ } elseif ($ decoder === 'iconv ' && $ this -> is_uft8 ( $ value ) ) {
455
450
$ value = iconv_mime_decode ($ value );
456
- } elseif ($ is_utf8_base ) {
457
- $ value = mb_decode_mimeheader ($ value );
458
451
}
459
452
460
453
if ($ this ->is_uft8 ($ value )) {
You can’t perform that action at this time.
0 commit comments