<?php

/*
   Autor: Marcelo Palmerston Lemos (marceloplemos@gmail.com)										
   Data.: 15/Novembro/2006 v. 1.0.0																	
   Descr: Este script l� uma conta de e-mail e mostra os e-mails das mensagens recebidas.			
	      Ideal para captar todos os e-mails que voc� j� recebeu e gravar num banco de dados.	
																									
   Se puder, colabore com este script:																
   - Resolvendo o problemas de conex�o com servidor do Gmail.				
   - Criando um formul�rio de login para m�ltimos servidores.											
   - Vamos gravar os dados em um Banco de Dados MySQL												
																									
   Importante: A fun��o imap_open() s� funciona se no arquivo PHP.ini								
               estiver habilitado a extens�o: "extension=php_imap.dll"								
																									
*/


set_time_limit(60);  // Define o tempo de execu��o, se a sua Caixa de Entrada tiver muitas mensagens
                     // voc� ter� que aumentar este tempo


// ******************** Configura��o para acessar o Gmail, mas n�o est� funcionando
// $host ='pop.gmail.com:995/pop3/ssl/novalidate-cert'
// $user = 'seuemail@gmail.com';  
// $pass = 'senha_gmail'                         
// ********************************************************************************

$host = 'seuservidor.com.br';              // Servidor POP
$user = 'seuemail@seuservidor.com.br';     // Usu�rio ou email
$pass = 'suasenha';                        // Senha

$mbox = imap_open("{".$host."}INBOX", "".$user."", "".$pass."");  	// Fun��o que estabelece conex�o com o servidor
$check = imap_check($mbox);				      						// L� a Caixa de Entrada do e-mail
$count = $check->Nmsgs;				  								// Mostra a quantidade de mensagens na Caixa de Entrada

echo 'Total de mensagens: ' . $count . '<br>';


if ($count > 0) {
   for( $index=$count; $index > 0 ; $index-- ) {

		echo $index . ')';

            $header = imap_headerinfo($mbox, $index);			// L� a mensagem
            $size = number_format( $header->Size, 0, ',', '.');	
              
		echo $header->Recent;   // Mostra o status: Recente e n�o lido N
		echo $header->Unseen;   // Mostra o status: Recente e lido U
		echo $header->Answered;
		echo $header->Deleted;
		echo $header->Draft;
		echo $header->Flagged;


		$x = $header->from;     // Dados de quem enviou o e-mail
		if (!empty($x)) {
		   foreach ($x as $id => $object) {
   			$xname = $object->personal;
  			$xaddress = $object->mailbox . "@" . $object->host;
	  		echo '<b>' . $xaddress . '</b><br>';
		   }
		}

		$x = $header->cc;        // Dados do campo Cc
		if (!empty($x)) {
		   foreach ($x as $id => $object) {
   		      $xname = $object->personal;
   			$xaddress = $object->mailbox . "@" . $object->host;
	  		echo '&nbsp;&nbsp;&nbsp;&nbsp;Cc---> ' . $xaddress . ' ' . $xname . '<br>';
		   }
		}

		$x = $header->bcc;        // Dados do campo Cc0
		if (!empty($x)) {
		   foreach ($x as $id => $object) {
   		      $xname = $object->personal;
   			$xaddress = $object->mailbox . "@" . $object->host;
	  		echo '&nbsp;&nbsp;&nbsp;&nbsp;Cco--> ' . $xaddress . ' ' . $xname . '<br>';
		   }
		}

		// Mostra outras Informa��es (desativado)
        // echo 'assunto: ' . $header->Subject  . '<br>';
        // $msg = imap_body($mbox,$index);
        // echo str_replace("\n", '<br>', $msg);

   }

} else {

   echo "Sem mensagens nesta caixa de e-mail";
}

imap_close($mbox);

?>