Foros del Web » Programando para Internet » PHP »

Busqueda de mensajes con IMAP

Estas en el tema de Busqueda de mensajes con IMAP en el foro de PHP en Foros del Web. Saludos, estoy intentando buscar mensajes con IMAP en una conexion al servidor GMAIL pero no consigo encontrar nada mediante el patron "UNSEEN SINCE". Expongo el ...
  #1 (permalink)  
Antiguo 29/01/2009, 03:08
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 9 meses
Puntos: 11
Busqueda de mensajes con IMAP

Saludos, estoy intentando buscar mensajes con IMAP en una conexion al servidor GMAIL pero no consigo encontrar nada mediante el patron "UNSEEN SINCE". Expongo el codigo para que quede algo mas claro:

Código PHP:
<?php
$m_mail 
= @imap_open("{pop.gmail.com:995/pop3/ssl/novalidate- 
cert}INBOX"
,$m_username.'@gmail.com',$m_password);

           if (!
$m_mail) { 
           
$m_mail = @imap_open("{pop.gmail.com:995/pop3/ 
ssl/novalidate-cert}INBOX"
,$m_username.'@gmail.com',$m_password);
            }

$m_gunixtp = array(2592000120960060480025920086400216003600);

$m_t 0;

$m_gdmy date('d-M-Y'time() - $m_gunixtp[$m_t]);

$m_search=imap_search ($m_mail'UNSEEN SINCE ' $m_gdmy '');

if(
$m_search 1){
$m_empty "No New Messages";}
else {
echo 
"Codigo a mostrar si se encuentran mensajes";
}
?>
Haga lo que haga (ya sea una busqueda en los mensajes revisados la ultima hora o el ultimo mes) siempre me devuelve que no se han encontrado mensajes.

¿Alguien puede indicarme donde me estoy equivocando?

Última edición por miwelillo; 29/01/2009 a las 08:35
  #2 (permalink)  
Antiguo 30/01/2009, 22:36
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Busqueda de mensajes con IMAP

miwelillo:

Cita:
$m_mail = @imap_open("{pop.gmail.com:995/pop3/ssl/novalidate-
cert}INBOX",$m_username.'@gmail.com',$m_password);
Al codigo de arriba quitale la @, para ver si realmente conecta exitosamente con el servidor de gmail.com
Osea, correlo sin la @ y revisa si te da error y que dice el error.

Cita:
if (!$m_mail) {
$m_mail = @imap_open("{pop.gmail.com:995/pop3/
ssl/novalidate-cert}INBOX",$m_username.'@gmail.com',$m_password);
}
Esta parte del codigo la puedes eliminar, practicamente NO hay necesidad.
O ponerla asi ->

Cita:
if (!$m_mail) {
echo "Fallo la conexion al servicor de gmail.com";
}
Finalmente podrias explicar un poco mas de lo que quieres hacer?

Saludos
Franco
  #3 (permalink)  
Antiguo 31/01/2009, 04:47
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Busqueda de mensajes con IMAP

Muchas gracias por responder Franco, he quitado la @ para ver si existen errores como me has dicho y parece ser que no se puede conectar con el servidor de Gmail por algun motivo. Tambien he cambiado el codigo de arriba ya que era redundante (en realidad tenia que probar a conectar primero con pop y si no con imap o viceversa). Ahora tengo lo siguiente:

Código PHP:
$m_mail imap_open("{imap.gmail.com:993/imap/ 
ssl/novalidate-cert}INBOX"
,$m_username.'@gmail.com',$m_password);

           if (!
$m_mail) { 
           
$m_mail imap_open("{pop.gmail.com:995/pop3/ssl/novalidate- 
cert}INBOX"
,$m_username.'@gmail.com',$m_password);
            } 
No obstante obtengo lo siguiente:

Warning: imap_open() [function.imap-open]: Couldn't open stream {pop.gmail.com:995/pop3/ssl/novalidate-cert}INBOX in /Applications/MAMP/htdocs/google_imap/gmailimap.php on line 20

Warning: imap_open() [function.imap-open]: Couldn't open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX in /Applications/MAMP/htdocs/google_imap/gmailimap.php on line 23

En la cuenta de correo que uso para conectar tengo habilitado el acceso por IMAP pero aun asi es extraño que no pueda conectar ni siquiera por POP3

Realmente lo que intento hacer es un pequeño cliente de correo para poder hacer busquedas de mensajes por fecha, subject, etc.
  #4 (permalink)  
Antiguo 31/01/2009, 11:23
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Busqueda de mensajes con IMAP

miwelillo:
Pues parece que tu primer trabajo es lograr una conexion exitosa
con el servidor de correo de Gmail.com
Entiendo que ellos ofrecen guias muy claras y concisas.
De nada te sirve el codigo que necesitas si no puedes conectar con el servidor.

Saludos
Franco
  #5 (permalink)  
Antiguo 31/01/2009, 19:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Busqueda de mensajes con IMAP

Hola miwelillo,

Verifica que tengas instalada y bien configurada la extensión OpenSSL en tu PHP, ya que es necesaria cuando te conectas a sitios seguros como el IMAP de Gmail.

Saludos
  #6 (permalink)  
Antiguo 01/02/2009, 18:09
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Busqueda de mensajes con IMAP

miwelillo:

En caso puedas conectar exitosamente con el servidor,
y deseas ver las cabeceras de los correos que en determinado
momento se encuentran en la bandeja de entrada, puedes utilizar este codigo ->
Nota: $imap es igual a $m_mail de tu codigo!!!!.

Cita:
$checar = imap_check($imap);
$resultados = imap_fetch_overview($imap,"1:{$checar->Nmsgs}",0);
foreach ($resultados as $detalles) {
echo "<b>Fecha Correo: $detalles->date<br>";
echo "<b>From: $detalles->from <br>";
echo "<b>Asunto: $detalles->subject<br>";
echo "<b>Tamano: $detalles->size bytes<br>";
$servidorenvia = strstr($detalles->message_id, '@');
echo "<b>Dominio Envia:<br> $servidorenvia<br><hr>";
}
Esto te da :
La fecha del correo, quien lo envia, el asunto del correo, el tamaño en bytes
y el dominio que envio el correo.

Saludos
Y espero puedas conextar exitosamente
Franco
  #7 (permalink)  
Antiguo 03/02/2009, 11:58
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 9 meses
Puntos: 11
Hola a todos y gracias por las respuestas

Llevo unos dias dandole vueltas e investigando por foros y resulta que MAMP (la version que he bajado para OS-X) no incluye OpenSSL por lo que falla a la hora de realizar la conexion con el servidor de Gmail. Ahora mismo estoy probando a instalarla manualmente y si todo falla me pasare a XAMPP que segun parece incluye SSL e IMAP.

En breve comentare a ver si el mismo codigo bajo un apache correctamente configurado funciona.

Muchas gracias de nuevo y un saludo!!

Al final he optado por instalarme XAMPP y parece que la cosa sigue sin funcionar a pesar de tener imap y openssl correctamente instalados y configurados (o eso creo ya que el phpinfo me lo muestra como configurado). Sigo obteniendo el mismo error:

ERROR: Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification

Me he recorrido todos los foros de internet y listas de soporte para Gmail pero nadie da una solucion al problema :(

Última edición por GatorV; 03/02/2009 a las 14:20
  #8 (permalink)  
Antiguo 03/02/2009, 13:11
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Busqueda de mensajes con IMAP

Trata conectarte usando:
{imap.gmail.com:993/imap/ssl}INBOX

Asi me funciona a mi para gMail.
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 04:42.