Мы используем postfix в качестве почтового ретранслятора. Я пытаюсь изменить тему электронного письма в зависимости от адреса получателя. Похоже, что check_header - это, возможно, инструмент, который мне нужен, но я не могу фильтровать его по получателю, а заменять его по теме.
Вероятно, вам понадобится фильтр содержимого.
В Документация Postfix по встроенным фильтрам (включая header_checks) указывает:
«Проверка заголовка / тела не может зависеть от получателя сообщения».
Разница между фильтром содержимого и milter в том, что milter происходит перед очередью:
Postfix: контент-фильтр против milter
Ты можешь использовать header_checks чтобы отправлять в рассматриваемый фильтр только электронные письма с привязкой к получателю (чтобы избавить постфикс от лишней работы):
Как переписать тему письма в постфиксе для исходящей почты, если От содержит конкретный адрес?
Это можно сделать с помощью транспортов и проверок заголовков.
В файле / etc / postfix / transport добавьте:
destination@address.com custom_transport:
Это активирует конкретный транспорт для желаемого получателя, который затем будет связан с изменениями темы. Замените destination@address.com фактическим адресом. Имя custom_transport произвольно, но все ссылки должны иметь одно и то же имя.
В /etc/postfix/main.cf добавьте:
header_checks = regexp:/etc/postfix/header_checks
transport_maps = hash:/etc/postfix/transport
Эти строки будут включать проверки заголовков и транспортные карты соответственно.
В /etc/postfix/master.cf добавьте:
custom_transport ... smtp
-o smtp_header_checks=regexp:/etc/postfix/rewrite_headers
Замена ... остальными параметрами транспорта smpt, уже определенными в этом файле.
Наконец, создайте файл / etc / postfix / rewrite_headers (имя произвольное, но оно должно совпадать с именем в строке, добавленной в главный файл) со следующим содержимым:
/^Subject:(.*)/ REPLACE Subject: Desired subject text
Это заменит тему на желаемую.
Перезагрузите или перезапустите postfix.