Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2010, 17:04
Avatar de xalupeao
xalupeao
 
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Obtener mail de un archivo con preg_match_all

Bueno amigos necesito obtener todos los mails que se encuentran en el archivo del mainlog que deja exim y hasta ahora tengo el siguiente codigo, pero realmente las expresiones regulares no son mi fuerte por ende no he podido dar con el clavo.

Me pueden ayudar a formar bien la expresión regular para la búsqueda.


Código PHP:
Ver original
  1. #archivo para examinar
  2.         $archivo = '/var/log/exim/mainlog';
  3.         #buscamos el archivo mainlog del exim
  4.         if(file_exists($archivo)){
  5.             #vemos si es posible tomar el contenido del archivo y lanzarlo a un string
  6.             if($base=file_get_contents($archivo)){
  7.                 #obtenemos todos los mails de la variable $base que tiene todo el archivo
  8.                 preg_match_all('/^[a-zA-Z0-9]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$/',$base,$emails);
  9.                 #mostramos el array emails
  10.                 print_r($emails);
  11.             }else{
  12.                 print 'El archivo '.$archivo.' no se ha podido leer correctamente
  13. ';
  14.             }
  15.         #si no existe el archivo
  16.         }else{
  17.             print 'El archivo '.$archivo.' no existe...
  18. ';
  19.         }


Extracto del archivo mainlog:

Cita:
2010-08-28 13:51:53 H=correo2.gtdinternet.com [200.75.0.11] incomplete transaction (connection lost) from <[email protected]> for [email protected]
2010-08-28 13:51:53 unexpected disconnection while reading SMTP command from correo2.gtdinternet.com [200.75.0.11]
2010-08-28 13:51:53 H=122-180-179-94.pool.ukrtel.net (ukrtel.net) [94.179.180.122] incomplete transaction (QUIT) from <[email protected]>
2010-08-28 13:51:53 1OpPZJ-0006RS-DN <= <> H=(ns) [190.208.17.163] P=esmtp S=3512 id=J4dErcD9Y00000abc@ns T="Notificaci=?unicode-1-1-utf-7?Q?+APM-n \n de \n estado \n de \n entrega \n (Error)?=" from <> for [email protected]
Muchas gracias.
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.