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.