
У меня есть сервер Centos, на котором работает только postfix. Я хочу отфильтровать письма, содержащие слово gratis
или grátis
или grétis
или grâtis
.
Вторая буква — проблема. Поэтому я использовал этот rejex:
/^Subject:.*gr.tis/ REJECT Your message was rejected
Проблема в том, что "точка" не соответствует специальным символам с постфиксом. Я имею в виду, если я отправлю письмо со словом gratis
в теме, оно будет отфильтровано. Но если я отправлю письмо, содержащее grátis
его, то нет.
Как решить эту проблему?
решение1
Сохраните образец спама в файл и изучите его, например, с помощью , cat -A
, sed -n l
, hexdump
, hd
и od
т. д. — любыми способами, которые помогут увидеть, какие фактические байты находятся в заголовке Subject:.
например
grep '^Subject:' /tmp/saved.spam | sed -n l
Это поможет вам создать точное регулярное выражение для добавления в файл header_checks.
решение2
Попробуйте использовать:
/^Subject:.*gr.{1,2}tis/ REJECT Your message was rejected
Вместо этого. Возможно, это ошибка в кодировке.