[postfix-es] Virtual regexp

Abel Molina bvefix en minbas.cu
Mar Nov 4 00:51:02 CET 2003


Te entendí perfectamente, pero ... dime si te parece bien estas lineas:

/^IMCEASMTP\-(.+)\+40([^+]+)\+2E([^+]+)@.+$/ $1@$2.$3
/^IMCEASMTP\-(.+)\+40([^+]+)\+2E([^+]+)\+2E([^+]+)@.+$/ $1@$2.$3.$4.
/^IMCEASMTP\-(.+)\+40([^+]+)\+2E([^+]+)\+2E([^+]+)\+2E([^+]+)@.+$/ $1@$2.$3.$4.$5
/^IMCEASMTP\-(.+)\+40([^+]+)\+2E([^+]+)\+2E([^+]+)\+2E([^+]+)\+2E([^+]+)@.+$/ $1@$2.$3.$4.$5.$6
/^IMCEASMTP\-(.+)\+40([^+]+)\+2E([^+]+)\+2E([^+]+)\+2E([^+]+)\+2E([^+]+)\+2E([^+]+)@.+$/ $1@$2.$3.$4.$5.$6.$7

¿ A propósito, qué es lo que matchea [\a] ?


*********** REPLY SEPARATOR  ***********

On 03/11/2003 at 5:32 José Luis Tallón wrote:

>At 14:46 03/11/2003, you wrote:
>>Perfecto, justo hasta ahí llegué yo, salvo que no se me ocurrió algo tan 
>>sencillo como poner más reglas para los otros niveles, estaba intentando 
>>hacerlo todo en una sola línea.
>
>:)
>
>>Ahora veo otro problema. Para matchear los strings haces el matching de 
>>los caractéres excepto el "+" pero ... ¿Qué hay de direcciones que 
>>contengan el caracter "+" (en la parte de usuario, claro está)?
>
>Pues no pasarían con esta solución, claro :)
>Bueno, habrá que "currárselo" un poco más ...
>
>
>>¿Puedes decirme cómo hacer los matching excluyendo las cadenas "+40" y 
>>"+2E" en vez de solo el caracter "+"?
>
>Veamos....
>
>/IMCEASMTP\-([[:alnum:]+-]+)(?:\+40)([[:alnum:]+-]+)(?:\+2E)([\a]+)@cualquier.dominio.com/ 
>$1@$2.$3
>
>Por desgracia, con un simple mapa regexp no se puede convertir cada '+40' 
>en '@' y cada '+2E' en '.'; Por lo tanto, tendrás que hacer la "chapuza"
>de 
>repetir la PCRE con pequeñas modificaciones.
>
>La solución "buena", que sería algo así como "s/(+2E)/./g" si coincide con 
>el patrón esperado, no se puede hacer con un mapa estándar de Postfix ( 
>sería demasiado complejo como para ser útil salvo para este caso, además
>de 
>peligroso ). Sin embargo, con una snapshot de Postfix o el próximo 
>Postfix-2.1, se podría implementar un 'demonio' en PERL que se comunicara 
>con el demonio 'trivial-rewrite' de Postfix via un mapa TCP: e hiciera el 
>trabajo ( es trivial implementarlo )
>
>ADVERTENCIA: este tipo de conversiones pueden convertirte en un
>open-relay. 
>Así pues, recomendaría ponerlo en una 'smtpd_restriction_class' separada,
>y 
>por la que sólo se pase una vez sepamos que el cliente es de confianza ( 
>via 'check_client_access', por ejemplo )
>
>>Salu2
>
>
>Un saludo,
>         José Luis Tallón
>
>
>>*********** REPLY SEPARATOR  ***********
>>
>>On 03/11/2003 at 1:01 José Luis Tallón wrote:
>>
>> >At 07:39 03/11/2003, you wrote:
>> >>Quizás esto sea mas bien una pregunta sobre manejo de expresiones
>> >>regulares pero quizás ya alguien ha intentado resolver este mismo
>> >problema
>> >>y me puede ayudar
>> >>
>> >>Necesito hacer sustitución de rcpt envelope de estas direcciones:
>> >>
>>
>>><mailto:IMCEASMTP-pepito+40hotmail+2Ecom en cualquier.dominio.com>IMCEASMTP 
>> -pepito+40hotmail+2Ecom en cualquier.dominio.com
>> >>a
>> >><mailto:pepito en hotmail.com>pepito en hotmail.com
>> >
>> >Evidentemente.... (con PCRE)
>> >
>> >/IMCEASMTP\-([^+]+)\+40([^+]+)\+2E([\a]+)@cualquier.dominio.com/
>$1@$2.$3
>> >
>> >salvo error por mi parte al construir la PCRE, con esto debe funcionar.
>> >Pruébalo con postmap antes.
>> >
>> >Advertencia: esto es un "quick and dirty hack", y sólo funciona para
>> >subdominios de primer nivel. Como por suerte son los más comunes, te
>> >servirá.
>> >Para acomodar los de tercer nivel, habría que añadir esta otra:
>> >
>>
>>/IMCEASMTP\-([^+]+)\+40([^+]+)\+2E([^+]+)\+2E([\a]+)@cualquier.dominio.com/
>> >$1@$2.$3.$4
>> >
>> >>
>> >>Quienes tengan organizaciones internas con MS Exchange seguramente
>> >conocen
>> >>estos inventos de microsoft.
>> >
>> >:-|
>> >
>> >>Esto es un encapsulamiento que hace MS Exchange y lo que quiero es
>> >>precisamente que el mensaje vaya directo a su destino sin tener que
>pasar
>> >>por el servidor que atiende "cualquier.dominio.com".
>> >
>> >Vaya, así que en M$ han re-inventado el source-routing ... es una
>> >característica que se restringió ó eliminó de todos los MTA decentes
>hace
>> >tiempo, porque te convertía instantáneamente en un open-relay ... :-|
>> >
>> >>
>> >>Salu2
>> >>
>> >
>> >Un saludo,
>> >         José Luis Tallón
>> >
>> >-
>> >Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO a ella.
>> >.
>> >Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
>> >a majordomo en WL0.org para quitarte de la lista.
>>
>>
>>
>>-
>>Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO a ella.
>>.
>>Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
>>a majordomo en WL0.org para quitarte de la lista.
>
>-
>Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO a ella.
>.
>Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
>a majordomo en WL0.org para quitarte de la lista.



-
Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO a ella.
.
Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
a majordomo en WL0.org para quitarte de la lista.



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