Постфиксное регулярное выражение для smtpd_command_filter

Некоторые из моих пользователей используют Gmail для отправки почты на наш домен (почтовый сервер для которого размещен на компьютере CentOS 5 с postfix). Иногда, но не всегда, когда они это делают, они получают отскок, похожий на:

---------- Forwarded message ----------
From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
Date: Mon, Aug 19, 2013 at 9:12 AM
Subject: Delivery Status Notification (Failure)
To: user1@domain.com


Delivery to the following recipient failed permanently:

 user2@domain.com

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the server for the       recipient domain domain.com by mail.domain.com. [xxx.xxx.xxx.xxx].

The error that the other server returned was:
502 5.5.2 Error: command not recognized

----- Original message -----

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=;
    h=mime-version:sender:in-reply-to:references:date:message-id:subject
     :from:to:content-type;
    bh=...=;
    b=...==
MIME-Version: 1.0
X-Received: by xxx.xxx.xxx.xxx with SMTP id ...;
 Mon, 19 Aug 2013 06:12:55 -0700 (PDT)
Sender: user1@gmail.com
Received: by xxx.xxx.xxx.xxx with HTTP; Mon, 19 Aug 2013 06:12:55 -0700 (PDT)
In-Reply-To: <...@mail.gmail.com>
References: <...@mail.gmail.com>
    <...@domain.com>
    <....gmail.com>
    <....gmail.com>
Date: Mon, 19 Aug 2013 09:12:55 -0400
X-Google-Sender-Auth: ...
Message-ID: <...@mail.gmail.com>
Subject: ...
From: <user1@domain.com>
To: <user2@domain.com>
Content-Type: multipart/alternative; boundary=...  

Но странная вещь, почта все еще проходит...
После проверки моих почтовых журналов я вижу строки, похожие на:

Aug 19 9:12:36 domain postfix/smtpd[...]: connect from mail.google.com[xxx.xxx.xxx.xxx]
Aug 19 9:12:37 domain postfix/smtpd[...]: XXXX: mail.google.com[xxx.xxx.xxx.xxx]
Aug 19 9:12:37 domain postfix/smtpd[...]: warning: non-SMTP command from mail.google.com[xxx.xxx.xxx.xxx]:         h=mime-version:sender:in-reply-to:references:date:message-id:subject
Aug 19 9:12:37 domain postfix/smtpd[...]: disconnect from mail.google.com[xxx.xxx.xxx.xxx]  

Похоже, мой почтовый сервер интерпретирует строку "h = mime" как команду.
После некоторых исследований я проследил эту тему:

http://faultserver.ru/questions/379964/postfix-unknown-command/380248#380248  

и я добавил

smtpd_command_filter = pcre:/etc/postfix/bogus_commands  

параметр в мой файл /etc/postfix/main.cf, а затем добавил регулярное выражение в файл bogus_commands, чтобы попытаться заменить любую команду, начинающуюся с

h=mime  

в

NOOP  

Но ни одно из регулярных выражений, которые я пробовал, похоже, не работает.
Я пытался:

/^.*h=mime.*$/\s NOOP  

preg_replace(^.*h=mime.*$, NOOP, )  

/.*h=mime.*/ NOOP  

Может кто-нибудь помочь мне найти правильный синтаксис для регулярного выражения, который мне нужен для этого, чтобы работать? Я ни в коем случае не эксперт по регулярным выражениям. Я, наверное, просто делаю что-то не так. Любая помощь, которую вы можете оказать, очень ценится.

1 ответ

Решение

В моем конкретном случае оказывается, что я использовал неверную версию postfix, чтобы попытаться реализовать параметр smtpd_command_filter. После обновления postfix до последней версии все теперь работает нормально.

Другие вопросы по тегам