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

Home ~ Php :: Leggere il contenuto di una mailbox con PHP :: Indice Php

Leggere il contenuto di una mailbox con PHP

Categoria: Php Inserito il: 15-11-2006 Stampa (11526 click)

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.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pi importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Rimuovere porzioni di immagini e rotazione con PHP e ImageMagik
Un'operazione frequente nella manipolazione delle immagini e quella relativa alla rimozione di parti di essi, come ad esempio i bordi;... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti