@@ -732,40 +732,16 @@ public function get_message_headers($itemId) {
732732 $ headers ['From ' ] = null ;
733733 }
734734 $ headers ['To ' ] = $ this ->extract_mailbox ($ message ->getToRecipients ());
735- if (is_array ($ headers ['To ' ])) {
736- $ headers ['To ' ] = implode (', ' , $ headers ['To ' ]);
737- }
738- if ($ message ->getCcRecipients ()) {
735+ $ headers ['To ' ] = flatten_headers_to_string ($ headers , 'To ' );
736+ if ($ message ->getCcRecipients ()) {
739737 $ headers ['Cc ' ] = $ this ->extract_mailbox ($ message ->getCcRecipients ());
740- }
741- if (is_array ($ headers ['Cc ' ])) {
742- $ headers ['Cc ' ] = implode (', ' , $ headers ['Cc ' ]);
738+ $ headers ['Cc ' ] = flatten_headers_to_string ($ headers , 'Cc ' );
743739 }
744740 if ($ message ->getBccRecipients ()) {
745741 $ headers ['Bcc ' ] = $ this ->extract_mailbox ($ message ->getBccRecipients ());
746- }
747- if (is_array ($ headers ['Bcc ' ])) {
748- $ headers ['Bcc ' ] = implode (', ' , $ headers ['Bcc ' ]);
742+ $ headers ['Bcc ' ] = flatten_headers_to_string ($ headers , 'Bcc ' );
749743 }
750744 $ headers ['Flags ' ] = implode (' ' , $ this ->extract_flags ($ message ));
751-
752- $ mime = $ message ->getMimeContent ();
753- $ content = base64_decode ($ mime );
754- if (strtoupper ($ mime ->getCharacterSet ()) != 'UTF-8 ' ) {
755- $ content = mb_convert_encoding ($ content , 'UTF-8 ' , $ mime ->getCharacterSet ());
756- }
757- $ parser = new MailMimeParser ();
758- $ n = $ parser ->parse ($ content , false );
759- // Get ONLY the headers
760- $ h = $ n ->getAllHeaders ();
761-
762- // Display headers
763- foreach ($ h as $ header ) {
764- if (!isset ($ headers [$ header ->getName ()])) {
765- $ headers [$ header ->getName ()] = $ header ->getValue ();
766- }
767- }
768-
769745 foreach ($ message ->getInternetMessageHeaders () as $ header ) {
770746 $ name = $ header ->getHeaderName ();
771747 if (isset ($ headers [$ name ])) {
@@ -1294,3 +1270,21 @@ protected function get_parent_folders_of_items($itemIds) {
12941270 return $ folders ;
12951271 }
12961272}
1273+
1274+ if (!hm_exists ('flatten_headers_to_string ' )) {
1275+ function flatten_headers_to_string ($ headers , $ key ) {
1276+ if (!isset ($ headers [$ key ]) || !is_array ($ headers [$ key ])) {
1277+ return isset ($ headers [$ key ]) ? $ headers [$ key ] : '' ;
1278+ }
1279+
1280+ $ flattened_header = [];
1281+ foreach ($ headers [$ key ] as $ to_item ) {
1282+ if (is_array ($ to_item )) {
1283+ $ flattened_header = array_merge ($ flattened_header , $ to_item );
1284+ } else {
1285+ $ flattened_header [] = $ to_item ;
1286+ }
1287+ }
1288+ return implode (', ' , $ flattened_header );
1289+ }
1290+ }
0 commit comments