
Tengo un servidor Centos que ejecuta únicamente postfix. Quiero filtrar los correos que contienen palabras gratis
o grátis
o grétis
o grâtis
.
La segunda letra es el problema. Entonces usé este rejex:
/^Subject:.*gr.tis/ REJECT Your message was rejected
El problema es que el "punto" no coincide con los caracteres especiales con sufijo. Es decir, si envío un correo electrónico con la palabra gratis
sobre el asunto se filtra. Pero si envío un correo electrónico que grátis
lo contiene, no es así.
¿Cómo soluciono este problema?
Respuesta1
Guarde la muestra de spam en un archivo y examínela con, por ejemplo, cat -A
, sed -n l
, hexdump
, hd
etc. od
, lo que sea necesario para ver qué bytes reales hay en el encabezado Asunto:.
p.ej
grep '^Subject:' /tmp/saved.spam | sed -n l
Eso le ayudará a crear una expresión regular precisa para colocar en su archivo header_checks.
Respuesta2
Intenta usar:
/^Subject:.*gr.{1,2}tis/ REJECT Your message was rejected
en cambio. Quizás sea un error en la codificación.