Relatório de uso de caixa postal

Publicado por Anderson Irias Hermogenes (última atualização em 22/12/2016)

[ Hits: 3.201 ]

Download relatorioemail.php




Script gera um relatório sobre o uso de caixa de correio, informando o tamanho total da caixa postal e quantidade de quota utilizada. Realiza também a listagem de todas as pastas e subpastas da caixa postal, informando o total de mensagens da pasta, quantidade de mensagens não lidas, e o tamanho total de utilização de quota da pasta. Para isto o script se conecta ao e-mail utilizando o protocolo IMAP na porta 143.

  



Esconder código-fonte

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Relatório de uso do Email</title>
   </head>
   <body>
      <h4>Dados da conta que será analisada.</h4>
      <form method="POST" action="relatorioemail.php">
         <input type="text" name="host" placeholder="Host">
         </br></br>
         <input type="email" name="email" placeholder="E-mail">
         </br></br>
         <input type="password" name="senha" placeholder="Senha">
         </br></br>
         <input type="submit" value="Enviar">
      </form>
   </body>
</html>

<?php
   if($_POST){
      $host = $_POST['host'];
      $usuario = $_POST['email'];
      $senha = $_POST['senha'];
      
 
      $emailRaiz = imap_open("{".$host.":143/novalidate-cert}INBOX", $usuario, $senha);
      
      if(!$emailRaiz){
         echo imap_errors();
      }else{
         $dadosQuota = imap_get_quotaroot($emailRaiz, "INBOX");

         if (is_array($dadosQuota)) {
            $quota = $dadosQuota['STORAGE'];
            echo "</br></br>Tamanho total da conta em KB: ".$quota['limit'];
            echo "</br>Quantidade utilizada em KB: ".$quota['usage'];   
         }else{
            echo "</br></br>Falha ao obter tamanho total da conta e a quantidade já utilizada";
         }
         
         $listaPastas = imap_getmailboxes($emailRaiz, "{".$host."}", "*");
         
         if(is_array($listaPastas)){
                echo ("</br><h4>Lista de pastas da conta de e-mail</h4></br>");
            foreach ($listaPastas as $pasta => $valorPastas){
               echo str_replace("{".$host."}", "", $valorPastas->name)."</br>";
               
               $pastaEspecifica = str_replace("}", ":143/novalidate-cert}", $valorPastas->name);
                    $emailPasta = imap_open($pastaEspecifica, $usuario, $senha);
            
               if(!$emailPasta){
                  echo "Erro ao tentar listar a pasta ".$valorPastas->name;
                  print_r(imap_errors());
               }else{
                  $info = imap_mailboxmsginfo($emailPasta);
                     if($info){
                        echo "Total de mensagens: ".$info->Nmsgs."</br>";
                        echo "Mensagens não lidas:".$info->Unread."</br>";
                        echo "Tamanho total: ".$info->Size." Bytes</br>";
                        echo "</br>";
                     }else{
                        echo "Erro ao obter os detalhes das pastas:".imap_last_error();
                     }
                        $emailPasta = imap_close($emailPasta);
               }
                }
         }else{
                echo "Nao consegui obter a lista de pastas:".imap_last_error();
         }
         $emailRaiz = imap_close($emailRaiz);
      }
   }
?>


Scripts recomendados

Livro Visitas

E-MAIL websendmail

Validação de E-mail

LK-mail

Testando e-mail


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts