Leggere il contenuto di una mailbox con PHP

15/11/2006

In questo articolo sulla gestione della posta elettronica tramite PHP e le funzioni IMAP, descriveremo come visualizzare il contenuto della nostra mailbox stampando a video il subject dei messaggi, la data di invio di ciascuno di essi, il nome del mittente e naturalmente il messaggio contenuto.

Proponiamo di seguito il listato del nostro script d'esempio:

<?php
$username = "tuauser";
$password = "tuapass";
$server = "pop.tuopop.it";
$conn = imap_open("{".$server.":110/pop3}INBOX",$username, $password);

$n_messaggi = imap_num_msg($conn);
$messaggi = imap_fetch_overview($conn,"1:$n_messaggi");

while(list($key,$value) = each($messaggi))
{
  if ($value->seen == 0)
  {
    echo "<p>Oggetto: ".$value->subject."<br />";
    echo "Data: ".$value->date."<br />";
    echo "Inviato da: ".$value->from."</p>";
    echo nl2br(imap_fetchbody($conn,1,"1", "FT_PEEK"));
  }
}
?>

Da cui avremo un output simile al seguente:
Oggetto: tutto bene?
  Data: Wed, 25 Oct 2006 11:50:33 +0200
  Inviato da: Marco

  blah, blah, blah... 


Oggetto: appuntamento
  Data: Wed, 25 Oct 2006 11:50:43 +0200
  Inviato da: Lory 

  blah, blah, blah...


Oggetto: notifica
  Data: Wed, 25 Oct 2006 11:51:28 +0200
  Inviato da: Server 

  blah, blah, blah...
La funzione imap_num_msg() restituisce il numero dei messaggi contenuti all'interno della mailbox e accetta come parametro l'apertura della connessione al server di posta.

La funzione imap_fetch_overview() restituisce un array contenete gli headers di un messaggio.

Per ottenere la lista dei messagi in entrata, ci siamo affidati ad all'azione di un ciclo while e alla funzione per gli array list() che ha il compito di assegnare valori ad una lista di variabili in una sola operazione.

Da notare il secondo parametro numerico ("1") che abbiamo passato alla funzione imap_fetchbody(), grazie al quale abbiamo potuto evitare di stampare tutti gli headers raccolti dalla funzione e lasciar spazio soltanto al messaggio ricevuto.

Attenzione: questo articolo stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home