Ir para conteúdo
Fórum Script Brasil
  • 0

Ler e-mail no php


itibere

Pergunta

Olá, eu peguei um scrip aqui no forum para ler email no php, o script consegue ir no servido r pegar o email beleza , mas qundo mano abrir o email da a seguinte mensagem:

Este programa não permite a visualização de mensagens formatadas (com cores, imagens e links), portanto solicitamos que você copie o texto abaixo, e cole no campo "Endereço" do seu navegador.

http://....

Mas isso só acontece se o email form em html, se for texto puro funciona certinho;

Codigo que le o email:


$servidor = $_GET['ser'];
$usuario = $_GET['uss'];
$senha = $_GET['pass'];
$tipoS =$_GET['tpop'];
if(isset($tipoS)){
$tipoS =$_GET['tpop'];
}
@ini_set('display_errors', '0');
if($servidor!=""){
$mbox = @imap_open("{".$tipoS.".$servidor:110/pop3}INBOX", $usuario . "@" . $servidor, $senha);
}

$erro[] = imap_last_error();
// testo se tem email no servidor
if ($erro[0] == "Mailbox is empty") {
echo "não tem nenhuma mensagem";
exit;
}
if ($erro[0] != "") {
echo "Ocorrem erros<br>:";
print_r($erro);
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) {
$msgC="você tem $numero_mensagens mensagem";
//echo "você tem $numero_mensagens mensagem";
} else {
$msgC="você não tem $numero_mensagens mensagens";
// echo "você não tem $numero_mensagens mensagens";
}

}
if (isset($_GET["id"])) {
$id = $_GET["id"];
$mensagem = imap_fetchbody($mbox, $id, 1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Leitor de Email</title>
</head>
<body>
<?php
echo nl2br(quoted_printable_decode($mensagem));
?>
</body>
</html>
<?
}
imap_close($mbox);
?>

[/codebox]

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

ola amigo tudo bom?

seguinte to precisando que meu script faça o mesmo que o seu que ele abra um conta de email mais a dias estou tentando e não consigo.

Seria possivel você me dizer o que a de errado com o meu ?

<?php

$servidor = "seridor";

$usuario = "user";

$senha = "senha";

@ini_set('display_errors', '0');

$mbox = imap_open("(imap.$servidor:993/SSL:YES)", $usuario . "@" . $servidor, $senha);

$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] == "") {

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 " teste ";

echo $data ;

header("Location: imap.php?id=$i&email=$email_remetente&servidor=$servidor_remetente");

}

if (isset($_GET["id"])) {

$id = $_GET["id"];

$email = $_GET["email"];

$servidor = $_GET["servidor"];

$mensagem = imap_fetchbody($mbox, $id, 1);

$msg_email=nl2br(quoted_printable_decode($mensagem));

//conexão com bando de dados

include"config.inc";

$email_bd=$email."@".$servidor;

mysql_query("INSERT INTO trafego_comun (email,texto) VALUES ('$email_bd','$msg_email')");

}

imap_close($mbox);

}

?>

eu já preciso é que ele salve alguns dados no banco de dados mais não estou conseguindo nen abrir

e se possivel se você puder me dizer em qual servidor o teu funcionou eu agradeceria.

obigado bush

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...