Problemas de imap de PHP

Necesito poder usar mi gmail desde un script php. Pero lo que sea que intente, el cuerpo del mensaje sale mal de todo con caracteres como = 3D y signos de igualdad aleatorios. A veces sale como base64 o nada en absoluto. ¿Cómo puedo obtener un correo electrónico y enviarlo en HTMLPurifier clean html o texto sin formato en un pre si no hay html disponible?

$overview = imap_fetch_overview($inbox,$email_number,0);

$body_pre = imap_fetchbody($inbox, $email_number, 2.1); 

$message = imap_fetchbody($inbox, $email_number, 2.2); 

$message = base64_decode($message);

if (empty($message))
 {
  $message = $body_pre;
  $message = preg_replace('@(https?://([-\w\.]+)+(:\d+)?((/[\w/_\.%\-+~]*)?(\?\S+)?)?)@', '<a href="$1">$1</a>',$message);
$message = '<pre>'.htmlentities($message).'</pre>';  

}else{

 $cleanconfig = HTMLPurifier_Config::createDefault();
 $cleanconfig->set('Core.Encoding', 'UTF-8');
 $cleanconfig->set('HTML.Doctype', 'HTML 4.01 Transitional');
 $purifier = new HTMLPurifier($cleanconfig);

  $message = $purifier->purify($message);

 }

este código, $ mensaje simplemente viene en blanco.

Respuestas a la pregunta(1)

Su respuesta a la pregunta