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

postfix header_checks для переименования темы письма

У нас есть несколько внешних систем, которые читают наши электронные письма, и некоторые из них не работают над другими. В основном мне нужно заменить тему электронного письма, например:

[RT #179497] Internal: blah blah

с участием

[RT 179497] Internal: blah blah

Так что брось хеш. Кто-нибудь знает регулярное выражение для достижения этого с помощью postfix header_checks?

Видеть header_checks (5) для примеров и http://www.postfix.org/BUILTIN_FILTER_README.html#limitations для дополнительной информации.

Изменить пример на упомянутой странице руководства не так уж и сложно:

/etc/postfix/main.cf:

header_checks = pcre:/etc/postfix/header_checks.pcre

/etc/postfix/header_checks.pcre:

/^Subject: \[RT #(\d)\] Internal: (.+)$/    REPLACE Subject: [RT $1] Internal: $2

Возможно, его можно было бы сделать изящнее или короче, но теперь это ваша работа.

Добавление к ответу @joschi (и я знаю, что это поздно, но кто-то другой может найти эту информацию полезной): вы указали, что хотите переписать заголовки сообщений только для определенных адресов электронной почты. Это немного сложно:

Вам необходимо настроить отдельный транспорт, чтобы вы могли указать различные манипуляции с сообщениями, использующими этот транспорт:

расположение по умолчанию: /etc/postfix/transport

example1@test.com   rewriter:
example2@test.com   rewriter:
.anotherdomain.com  rewriter:

Это указывает postfix обрабатывать почту, предназначенную для этих мест, используя rewriter транспорт. Затем в /etc/postfix/master.cf, можете добавить:

rewriter     unix  -       -       -       -       -       smtp
  -o smtp_header_checks=regexp:/etc/postfix/rewrite_headers

И, наконец, вы указываете, какой вид переписывания вы действительно хотите сделать в /etc/postfix/rewrite_headers файл. Он имеет тот же синтаксис, что и по умолчанию header_checks файл, это просто специальная версия, действующая только для писем, проходящих через rewriter транспорт.

Обратите внимание: это, вероятно, не сработает, если у вас активен какой-либо фильтр содержимого (например, Amavis), хотя в моем случае я выполнял другие манипуляции.