Foros del Web » Programando para Internet » PHP »

Imap

Estas en el tema de Imap en el foro de PHP en Foros del Web. Hola a todos, tengo un problemilla con la funcion imap de php. Estoy intentando leer mi correo desde mi propia pagina web. El problema es ...
  #1 (permalink)  
Antiguo 11/02/2010, 10:04
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Exclamación Imap

Hola a todos, tengo un problemilla con la funcion imap de php. Estoy intentando leer mi correo desde mi propia pagina web.

El problema es el sigiente:

Consigo conectarme correctamente al servidor de googlemail pero cuando saca alas cabezeras me dice que estan vacias.

Este es el codigo:

Código PHP:
<?php 
$ver 
$_GET['ver'];
$num $_GET['num'];
//Conectamos con el servidor de correo.  
$link imap_open("{pop.gmail.com/pop3:995/ssl}INBOX","email","pass")or die(imap_last_error());
if(!
$ver){ 

//Leemos las cabeceras de todo el buzon. 
 
$headers=imap_headers($link)or die(imap_last_error()); 
//aqui me vuelca el error Mailbox is empty que es cuando esta vacio.


for($x=1$x <= count($headers); $x++) { 
echo 
"*"
$idx=($x-1); 
echo 
"<a href='$PHP_SELF?ver=1&num=$x'>$headers[$idx]</a><br>"


}else{ 
 

$header get_object_vars(imap_header($link,$num)); 

//Imprimimos el mensaje. 
echo "De: $header[fromaddress]<br>"
echo 
"Para: $header[toaddress]<br>"
echo 
"Fecha: $header[Date]<br>"
echo 
"Tema: $header[Subject]<br><br>"
echo 
ereg_replace("rn","<br>"htmlentities(imap_body($link,$num))); 

?>
He intentado buscar algo que me alludara pero no encuentro nada alguien me puede echar una mano?
Un Saludo
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #2 (permalink)  
Antiguo 11/02/2010, 10:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Imap

Podrias por favor hacer un var_dump a las variables $ver y $num para saber que tienes ingresado en ellas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 11/02/2010, 10:19
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: Imap

al principio estan vacias ya que son para despues de mostrar los correos y seleccionar uno, en principio esas variables las salta ;) Un Saludo y gracias
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #4 (permalink)  
Antiguo 11/02/2010, 10:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Imap

Trata de esta forma el imap
Código PHP:
Ver original
  1. $link = imap_open("{imap.gmail.com:993/ssl}INBOX","email","pass")or die(imap_last_error());
Y si las variables estan vacia nunca te va a poder enseñar los header por la variable $ver.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 11/02/2010, 11:04
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: Imap

Gracias por tu alluda abimaelrc pero al final el problema debe de ser por algun motivo de configuracion en la cuenta porque he probado con otra cuenta y me funciona perfectamente:
Un Saludo y Gracias
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #6 (permalink)  
Antiguo 12/02/2010, 10:03
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: Imap

Hola aller me surgio el problema que ya se resolvio misteriosamente(yo creo que el codigo estaa perfect ;) )pero hot tengo una dudilla algo mas potente ya. he intentado mostrar solo los 50 ultimpos resultados, pero hay un problema cuando el personajilllo tienes muchos correos se tira mas de un minuto guardandolos y no me muestra el numero total solo los que ha leer, como maximo he consegido algo mas de 300. Alguna solucion
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #7 (permalink)  
Antiguo 12/02/2010, 10:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Imap

Prueba cambiar el tiempo limite, usando set_time_limit().

Saludos.
  #8 (permalink)  
Antiguo 15/02/2010, 13:48
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: Imap

Hola gator aumente el tiempo e incluso lo puse ilimitado pero me encuentro con el problema de que al llegar a 256 resultados deja de funcionar, porque eso me gustaria saber he pensado en hacerlo por partes primero descargar las cabezeras de los 256 primeros y luego los sigientes tiempo paginado pero no se como decirle que empieze a descargar desde el mensaje 265 hasta que se acabe. Un Saludo
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios

Última edición por djsos; 15/02/2010 a las 13:55
  #9 (permalink)  
Antiguo 15/02/2010, 15:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Imap

Puedes guardar en un archivo de texto o en una base de datos el ultimo lugar donde se quedo, y continuar desde ahi.

Saludos.
  #10 (permalink)  
Antiguo 15/02/2010, 16:12
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: Imap

Hola gator he probado haciendo esa manera pero no consigo lo que busco.asi que he buscado otra alternativ que me muestre los mensajes desde x dias hacia ahora utilizo la funcion SINCE dentro de imap_search pero me devuelve
Cita:
Unknown search criterion: SINCE
Este es el codigo que trabajo

Código PHP:
$headers=imap_search($link"SINCE Sat, 16 Jan 2010 22:03:31 +0100"SE_UID)or die(imap_last_error()); 
Gracias ;)
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios

Etiquetas: imap, pop3
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.