[Postfix-es] Procesamiento de mails en cuentas virtuales

Simon J Mudd sjmudd en pobox.com
Vie Sep 30 23:27:22 CEST 2005


listas at canal21.com (Bhean) writes:

> Buenas tardes,
> 
> Gracias por tu respuesta, Simon.
> 
> Al final, me he decidido por una solución que aunque creo que es la más
> "limpia" no acaba de funcionar correctamente.
> 
> He definido un nuevo transporte en el archivo "transports" como este:
> 
> mailparser.midominio.com         parsearMensaje:
> 
> Y el respectivo filtro en master.cf:
> 
> parsearMensaje unix    -       n       n       -       -       pipe
>   flags=F user=nobody argv=/servidor/scripts/parsearMensaje.pl
> 
> Una vez hecho esto, como solo quiero que se envien al script los
> mensajes que lleguen a una cuenta determinada, he creado un ALIAS para
> esa cuenta, que viene a decir esto:
> 
> usuario at midominio.com:
>   |
>   |-> usuario at midominio.com
>   \-> usuario at mailparser.midominio.com
> 
> De forma que todo lo que se envie a la cuenta usuario at midominio.com es
> entregado en su mailbox, y ademas entregado al script definido en master.cf
> 
> El problema es que Postfix no entrega a traves del PIPE definido en
> master.cf todo el mensaje al script, sino solo una linea con el
> remitente y la fecha. He modificado el script para que me muestre todo
> lo que Postfix le entrega a traves de la tuberia, y esto es todo lo que
> muestra:
> 
> From cliente at otrodominio.com  Fri Sep 30 18:17:48 2005
> 
> No se como hacer para que Postfix entregue a traves de una tubería TODO
> el contenido del mensaje al script.
> 
> Alguna idea de como hacerlo?

Para mi me funciona con una preuba asi:

/etc/postfix/master.cf
simontest  unix  -       n       n       -       -       pipe
  flags=F user=sjmudd argv=/home/sjmudd/testcat.sh ($recipient})

/etc/postfix/transport
simontest at nl.wl0.org    simontest:

/home/sjmudd/testcat.sh
#!/bin/sh

(
echo "start"
cat -
echo "stop"
) >> /tmp/pipeoutput.txt

y los logs

Sep 30 23:22:41 ams03 postfix/smtp[17925]: B5CD2A32D6: to=<simontest at nl.wl0.org>, relay=127.0.0.1[127.0.0.1], delay=1, status=sent (250 2.6.0 Ok, id=16984-09, from MTA([127.0.0.1]:10025): 250 Ok: queued as 705EEA32D3)
Sep 30 23:22:41 ams03 postfix/qmgr[17918]: B5CD2A32D6: removed
Sep 30 23:22:41 ams03 postfix/pipe[17929]: 705EEA32D3: to=<simontest at nl.wl0.org>, relay=simontest, delay=0, status=sent (nl.wl0.org)
Sep 30 23:22:41 ams03 postfix/qmgr[17918]: 705EEA32D3: removed

El contenido del archivo es:

[sjmudd at ams03 COS4 ~]$ cat /tmp/pipeoutput.txt
start
>From root at nl.WL0.org  Fri Sep 30 23:22:41 2005
Received: from localhost (unknown [127.0.0.1])
        by ams03.wl0.org (Postfix) with ESMTP id 705EEA32D3
        for <simontest at nl.wl0.org>; Fri, 30 Sep 2005 21:22:41 +0000 (UTC)
Received: from send-to-amavis ([127.0.0.1])
 by localhost (ams03.wl0.org [127.0.0.1]) (amavisd-new, port 10024) with SMTP
 id 16984-09 for <simontest at nl.wl0.org>;
 Fri, 30 Sep 2005 23:22:40 +0200 (CEST)
Received: by ams03.wl0.org (Postfix, from userid 0)
        id B5CD2A32D6; Fri, 30 Sep 2005 23:22:40 +0200 (CEST)
To: simontest at nl.wl0.org
Subject: hello
Message-Id: <20050930212240.B5CD2A32D6 at ams03.wl0.org>
Date: Fri, 30 Sep 2005 23:22:40 +0200 (CEST)
From: root at nl.WL0.org (root)
X-Virus-Scanned: amavisd-new at wl0.org

dksadfj
sdfasdf

dfa
stop
$

Asi que no se lo que estaras haciendo...

Simon


Más información sobre la lista de distribución Postfix-es