Назад | Перейти на главную страницу

Postfix header_checks не работает: недопустимое предыдущее регулярное выражение

У меня проблема с Postfix. В последнее время мы получаем почтовые сообщения с искаженными заголовками "От:", например:

From: "Name Surname <user@good-domain.com>" <user2@bad-domain.com>
From: "user@good-domain.com" <user2@bad-domain.com>

Закончилось решением, основанным на проверках заголовков PCRE, с этими двумя регулярными выражениями:

/^From:.+(".+<(.*@+.*)>").*<((?!\2).*)>$/ REJECT
/^From:.+("([^<>]*@+[^<>]*)").*<((?!\2).*)>$/ REJECT

Готово

postmap /etc/postfix/header_checks

и перезагрузил постфикс.

Кажется, работает нормально, и POstfix, по-видимому, без проблем справляется с PCRE:

postmap -q 'From: "Name Surname <user@good-domain.com>" <user2@bad-domain.com>' pcre:/etc/postfix/header_checks
REJECT
postmap -q 'From: "user@good-domain.com" <user2@bad-domain.com>' pcre:/etc/postfix/header_checks
REJECT

Но на самом деле почта не блокируется. В журнале есть следующие (повторяющиеся) ошибки:

Nov 22 10:52:19 mx1 postfix/cleanup[32087]: warning: regexp map /etc/postfix/header_checks, line 497: Invalid preceding regular expression
Nov 22 10:52:19 mx1 postfix/cleanup[32087]: warning: regexp map /etc/postfix/header_checks, line 498: Invalid preceding regular expression

Содержимое файла / etc / postfix / header_checks следующее (первые 496 строк - комментарии):

/^From:.+(".+<(.*@+.*)>").*<((?!\2).*)>$/ REJECT
/^From:.+("([^<>]*@+[^<>]*)").*<((?!\2).*)>$/ REJECT
/^Subject:/ WARN

Дополнительная информация:

- There are no receive_override_options: the file is used as the subject are correctly logged in logfile (last line). And the errors too shows the file is handled by postfix.
- Tested the two regexp with multiple online services and they seems correct: also the postmap -q tests shows they are working correctly.
- Postfix 2.10.1 and PCRE 8.32 on a CentOS 7.7

Любая идея?