Back-End

25 fev, 2013

Criando um leitor de e-mail em PHP

Publicidade

Neste artigo explicaremos como criar um leitor de e-mails acessando a caixa postal via POP3.
Isso pode ser feito de algumas formas, porém vamos usar a forma nativa que o PHP oferece através da função imap

Vamos a parte que mais interessa que é o código.

1- Acesso a Caixa Postal

<code>$mail_box = imap_open("{" . SERVIDOR . ":" . PORTA . "/pop3/novalidate-cert}INBOX", USUARIO, SENHA);
 </code>

2- Verifico quantas mensagens existem na caixa postal

<code>if ($mail_box) {
 $total_de_mensagens = imap_num_msg($mail_box);
 </code>

3- Pego o conteúdo de cada mensagem (headers e body).

No header vem um array que coloquei para imprimir para você ver todas as informações que vem e fazer o que for necessário.
No body, imap_fetchbody, o terceiro parametro pode ser:
0=> retorna o body da mensagem com o texto que o servidor recebe
1=> retorna somente o conteudo da mensagem em plain-text
2=> retorna o conteudo da mensagem em html

if ($total_de_mensagens > 0) {
 for ($mensagem = 1; $mensagem <= $total_de_mensagens; $mensagem++) {
 echo '<pre>';
 print_r(imap_headerinfo($mail_box, $mensagem));
 echo '</pre>';
 $body = ( imap_fetchbody($mail_box, $mensagem, 2) );

4- Marco a mensagem para exclusão. Esse comando não exclui a mensagem, apenas sinaliza que ela foi marcada para exclusão.

imap_delete($mail_box, $mensagem);

5- Excluo de fato a mensagem. Agora sim eu excluo TODAS as mensagens marcadas

<code>imap_expunge($mail_box);</code>

Um comando muito importante quando você está trabalhando com IMAP é o imap_errors()

Coloquei o código no github pra facilitar a visualização e se quiserem melhorar ficarem a vontade 🙂
https://github.com/paulofernandesjr/email-reader

Código originalmente postado em http://www.phpaulo.com.br/criando-um-leitor-de-e-mail-em-php/