Sistema de ler email POP3 com extenção IMAP do PHP
QUOTE
O que é IMAP?
O protocolo IMAP foi originalmente desenvolvido na Universidade de Stanford em 1986.
Trata-se de um método de acesso a mensagens eletrônicas armazenadas em um servidor local ou remoto.
IMAP quer dizer Internet Message Access Protocol [RFC 2060] e sua versão mais recente e' a IMAP4rev1 [RFC 2060]
O protocolo IMAP foi originalmente desenvolvido na Universidade de Stanford em 1986.
Trata-se de um método de acesso a mensagens eletrônicas armazenadas em um servidor local ou remoto.
IMAP quer dizer Internet Message Access Protocol [RFC 2060] e sua versão mais recente e' a IMAP4rev1 [RFC 2060]
descomente a linha do php.ini extension=php_imap.dll
obs: esse exemplo não tem suporte a MIME
Esse exemplo faz:
tratamento de erros
vê quantos emails você tem
pega o assunto,remetente,data/hora e a mensagem
CODE
<?php
/* Fabyo Guimaraes
data = 06/02/2005*/
$servidor = "seu_servidor";
$usuario = "usuario";
$senha = "senha";
@ini_set('display_errors', '0');
$mbox = imap_open("{pop3.$servidor/pop3:110}", $usuario . "@" . $servidor, $senha , OP_HALFOPEN);
$erro[] = imap_last_error();
// testo se tem email no servidor
if ($erro[0] == "Mailbox is empty") {
echo "não tem nenhuma mensagem";
exit;
}
// verifico se esta certo o usuario e senha
elseif ($erro[0] == "POP3 connection broken in response") {
echo "Usuario ou a senha estao errados";
exit;
}
// testo se o servidor esta certo
elseif ($erro[0] == "Host not found (#11004): pop3.$servidor") {
echo "O servidor $servidor esta errado";
exit;
}
// se a $erro estiver vazia ele continua
if ($erro[0] == "") {
$numero_mensagens = imap_num_msg($mbox);
$numero_mens_nao_lidas = imap_num_recent($mbox);
if ($numero_mensagens == 1) {
echo "você tem $numero_mensagens mensagem";
} else {
echo "você tem $numero_mensagens mensagens";
}
echo "<br><br>";
for($i = 1;$i <= imap_num_msg($mbox);$i++) {
$headers = imap_header($mbox, $i);
$assunto = $headers->subject;
$message_id = $headers->message_id;
$toaddress = $headers->toaddress;
$to = $headers->to;
$remetente = $to[0]->personal;
$email_remetente = $to[0]->mailbox;
$servidor_remetente = $to[0]->host;
$data = $headers->date;
$data = strtotime($data);
$data = date("d/m/Y H:i:s", $data);
echo "Assunto = $assunto - Remetente = $email_remetente@$servidor_remetente Data = $data <a href=\"imap.php?id=$i\">Ler Mensagem</a><br>";
}
echo "<br>";
if (isset($_GET["id"])) {
$id = $_GET["id"];
$mensagem = imap_fetchbody($mbox, $id, 1);
echo nl2br(quoted_printable_decode($mensagem));
}
imap_close($mbox);
}
?>
/* Fabyo Guimaraes
data = 06/02/2005*/
$servidor = "seu_servidor";
$usuario = "usuario";
$senha = "senha";
@ini_set('display_errors', '0');
$mbox = imap_open("{pop3.$servidor/pop3:110}", $usuario . "@" . $servidor, $senha , OP_HALFOPEN);
$erro[] = imap_last_error();
// testo se tem email no servidor
if ($erro[0] == "Mailbox is empty") {
echo "não tem nenhuma mensagem";
exit;
}
// verifico se esta certo o usuario e senha
elseif ($erro[0] == "POP3 connection broken in response") {
echo "Usuario ou a senha estao errados";
exit;
}
// testo se o servidor esta certo
elseif ($erro[0] == "Host not found (#11004): pop3.$servidor") {
echo "O servidor $servidor esta errado";
exit;
}
// se a $erro estiver vazia ele continua
if ($erro[0] == "") {
$numero_mensagens = imap_num_msg($mbox);
$numero_mens_nao_lidas = imap_num_recent($mbox);
if ($numero_mensagens == 1) {
echo "você tem $numero_mensagens mensagem";
} else {
echo "você tem $numero_mensagens mensagens";
}
echo "<br><br>";
for($i = 1;$i <= imap_num_msg($mbox);$i++) {
$headers = imap_header($mbox, $i);
$assunto = $headers->subject;
$message_id = $headers->message_id;
$toaddress = $headers->toaddress;
$to = $headers->to;
$remetente = $to[0]->personal;
$email_remetente = $to[0]->mailbox;
$servidor_remetente = $to[0]->host;
$data = $headers->date;
$data = strtotime($data);
$data = date("d/m/Y H:i:s", $data);
echo "Assunto = $assunto - Remetente = $email_remetente@$servidor_remetente Data = $data <a href=\"imap.php?id=$i\">Ler Mensagem</a><br>";
}
echo "<br>";
if (isset($_GET["id"])) {
$id = $_GET["id"];
$mensagem = imap_fetchbody($mbox, $id, 1);
echo nl2br(quoted_printable_decode($mensagem));
}
imap_close($mbox);
}
?>