De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Acessando o GMail do PHP

Colaboração: Pablo Dall'Oglio

Data de Publicação: 13 de Outubro de 2006

Sabe aqueles dias em que você não sossega enquanto não resolver um problema ? Pois é... Um dia desses eu queria acessar meus mails do gmail no celular pelo portal m.gmail.com, mas descobri que meu celular (nokia 6100) não era compatível com o padrão XHTML... Foi um banho de água fria, por que eu não espero trocar meu aparelho logo, então tratei de escrever meia dúzia de linhas de código que gerassem um WML mais simples que podia ser interpretado pelo meu aparelhinho... Também fiz com que carregasse todas mensagens novas de uma só vez, assim eu não precisaria ficar entrando e saindo das opções do menu, gastando KBytes de conexão que são caros aqui no terceiro mundo. São dois arquivos, o primeiro é o form que vai perguntar a senha do gmail, o segundo é o PHP que vai fazer todo trabalho (post do formulário), verificando suas mensagens da INBOX :-)

Antes de tudo, leia isto: http://mail.google.com/support/bin/answer.py?answer=13273

Link original da notícia: http://www.dalloglio.net/blog/pt/43

Arquivo WML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!
DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Inbox">
<p>
Pass:<br/><input title="pass" type="password" name="pass"/>

<do type="accept" label="Enviar">
<go method="post" href="m.php">
<postfield name="pass" value="$(pass)"/>
</go>

</do>
</p>
</card>
</wml>

Arquivo PHP (m.php)

<?php

if ($_POST['pass'] == 'suasenhadogmail')
{
    $mailbox= imap_open("{pop.gmail.com:995/pop3/ssl/novalidate-cert}INBOX", "seuemail@gmail.com", "suasenhadogmail");
    $check = imap_check($mailbox);
    
    $count = $check->Nmsgs ;
    if ($count > 0)
    {
        for( $index=1; $index <= $count ; $index++ )
        {
            $header = imap_header($mailbox, $index);
            $size = number_format( $header->Size, 0, ',', '.');
            /*
            another informations
            $header->Date
            $header->fromaddress
            $header->Subject 
            $header->toaddress
            */
            echo $header->fromaddress .  '<br>';
            echo $header->Subject  . '<br>';
            $msg = imap_body($mailbox,$index);
            echo str_replace("\n", '<br>', $msg);
            echo '============<br>';
            
        }
    }
    else
    {
        echo "nothing...";
    }
    imap_close($mailbox);
}
else
{
    echo "wrong password...";
}
?>


Veja a relação completa dos artigos de Pablo Dall'Oglio