¿Las recetas de procmail tienen un operador alternador "u"?

¿Las recetas de procmail tienen un operador alternador "u"?

Dada la siguiente receta de procmail:

:0:
* ^Subject:.*viagra.*
* ^From:.*viagra.*
/dev/null

Procmail solo eliminaría los correos electrónicos que fueran de viagra y que tuvieran viagra en el asunto. ¿Es posible aplicar el filtro si alguna de las coincidencias es verdadera?

Es preferible que la solución no utilice la (regex1|regex2)operación de expresión regular, pero si esa es la única solución, dígalo.

Respuesta1

Estás cerca. Una sólida comprensión de las expresiones regulares contribuye en gran medida a lograr recetas exitosas de procmail. Procmail es extremadamente flexible, pero esa flexibilidad depende en gran medida de las expresiones regulares.

:0: 
* ^(From|Cc|To|Subject).*viagara.* 
/dev/null

Alternativamente, y creo que está más cerca de lo que desea lograr, use una tubería y una nueva línea de escape para continuar la regla en la siguiente línea (para facilitar la lectura). En su ejemplo, estaba creando una nueva condición que también debía cumplirse.

:0:
* ^Subject:.*viagra.* |\
  ^From:.*viagra.*
/dev/null

Respuesta2

Simplemente use dos recetas, cada una yendo a /dev/null, una que coincida con Asunto y la otra que coincida con Desde. El primer partido gana. Esto es esencialmente lo mismo que un operador OR. El enfoque reg1|reg2 funcionaría, pero creo que se lee más claramente como dos recetas.

información relacionada