parts) && count($structure->parts)) { for($i = 0; $i < count($structure->parts); $i++) { $msg = ''; $part = $structure->parts[$i]; if($part->type == TYPETEXT){ $msg = imap_fetchbody($connection, $message_number, $i+1, $option); if($part->encoding == ENCBASE64){ $msg = base64_decode($msg); } else if($part->encoding == ENCQUOTEDPRINTABLE){ $msg = quoted_printable_decode($msg); } if($msg && $to_charset){ $charset = ''; if(isset($part->parameters) && count($part->parameters)) { foreach($part->parameters as &$parameter){ if($parameter->attribute == 'CHARSET') { $charset = $parameter->value; break; } } } if($charset){ $msg = mb_convert_encoding($msg, $to_charset, $charset); } } if($msg){ return $msg; } } } } }