obiettivo: visualizzare titolo data e testo di un messaggio
funzioni usate:
Codice PHP:
function retrieve_message($mbox$messageid)
{
   
$message = array();

   
$header imap_headerinfo($mbox$messageid);
   
$structure imap_fetchstructure($mbox$messageid);

   
$message['subject'] = isset($header->subject) ? utf8_decode(imap_utf8($header->subject)) : null;
   
$message['from'] =  isset($header->from) ? $header->from null;
   
$message['senderaddress'] = isset($header->senderaddress) ? $header->senderaddress null;
   
$message['to'] = isset($header->to) ? $header->to null;
   
$message['cc'] = isset($header->cc) ? $header->cc null;
   
$message['bcc'] = isset($header->bcc) ? $header->bcc null;
   
$message['date'] = isset($header->date) ? $header->date null;

  if (
check_type($structure))
  {
   
$message['body'] = imap_fetchbody($mbox,$messageid,"1"); ## GET THE BODY OF MULTI-PART MESSAGE
   
if(!$message['body']) {$message['body'] = '[EMPTY]\n\n';}
  }
  else
  {
   
$message['body'] = imap_body($mbox$messageid,"1");
   if(!
$message['body']) {$message['body'] = '[EMPTY]\n\n';}
  }
  
$message['body1'] = $message['body'];
  
$message['body'] = decode_ISO88591($message['body']);
  
$message['body'] = str_replace("=\r\n",'',$message['body']);
  return 
$message;
}
function 
decode_ISO88591($string)
{               
  
$string=str_replace("=?iso-8859-1?q?","",$string);
  
$string=str_replace("=?iso-8859-1?Q?","",$string);
  
$string=str_replace("?=","",$string);

  
$charHex=array("0","1","2","3","4","5","6","7",
                 
"8","9","A","B","C","D","E","F");
      
  for(
$z=0;$z<sizeof($charHex);$z++)
  {
   for(
$i=0;$i<sizeof($charHex);$i++)
   {
     
$string=str_replace(("=".($charHex[$z].$charHex[$i])),
                         
chr(hexdec($charHex[$z].$charHex[$i])),
                         
$string);
   }
  }
  return(
$string);
}
function 
check_type($structure## CHECK THE TYPE
{
  if(
$structure->type == 1)
   {
     return(
true); ## YES THIS IS A MULTI-PART MESSAGE
   
}
 else
   {
     return(
false); ## NO THIS IS NOT A MULTI-PART MESSAGE
   
}


per chi dovesse trovare questo thread con la ricerca quando funzionerà:
Codice PHP:
$mbox imap_open('{localhost:143/novalidate-cert}INBOX''username@dominio.ch''password')
     or die(
"can't connect: " imap_last_error());
$quanti imap_num_msg($mbox);
for (
$a 1$a<=$quanti$a++) {
  
$msg retrieve_message($mbox,$a);
  
print_r($msg);
  
imap_delete($mbox$a);
}
imap_close($mbox,CL_EXPUNGE); 
riuscito: 95%
problema: se c'è un url con cose tipo id=123 fa casino
soluzione: la chiedo a voi