martes, enero 10, 2006

Procmail para procesar correos II

Esta es la continuacion del post: Procmail para procesar correos

Nos quedamos en que el .procmail recibia la informacion y esta era pasada a un script de bash.

Este script podria ser algo asi:

#!/bin/bash

ARCHIVO=/home/nestor/correo_procesado_$(date +"%s").tmp
cat > ${ARCHIVO}
tail -5 ${ARCHIVO} > proceso
./lee-correo.php $ARCHIVO > /home/nestor/proceso
mail -s "Numeracion" direccion@de.mail.com < /home/nestor/proceso

exit 0


Entonces, este archivo procesa las ultimas 5 lineas con el script en PHP lee-correo.php que seria asi:

#!/usr/bin/php -q


$file= $_SERVER['argv'][1];

if($file==''){
echo "no se encontro el archivo";
exit;
}else{

$fp = fopen($file, "r");

$c = 1;
while (!feof($fp))
{
$line=fgets($fp, 512);
if( $c==38) {
$contenido1=trim(substr($line,20,6));
} elseif ($c==39) {
$contenido2=trim(substr($line,7,16));
$contenido3=trim(substr($line,32,6));
}

$c++;
//if (strpos($line,"N")!==false)
// $authline=trim(substr($line,6));
}

echo $contenido1."\n";
echo $contenido2."\n";
echo $contenido3."\n";

fclose($fp);
}
?>


El script estaba hecho en un primer momento para incluir el archivo a procesar como variable fija, pero ahora se lo estamos pasando como parametro por la linea de comandos con esto:

$file= $_SERVER['argv'][1];


Espero que a alguien le sirva esto. Lo pongo porque yo busque informacion al respecto y escribi en muchas listas y nadie encontraba la manera de hacerlo, muchas de las cosas las saque de una y otra web (que ya ni recuerdo) pero el armado lo hice yo, un aliado me ayudo en el tema del script de PHP basicamente por cuestiones de tiempo. Obviamente una vez que el script esta en PHP ya puedes usar la informacion como quieras, ya sea ingresarl la info en una BD o lo que sea.