Я не могу запустить milter, когда Postfix принимает новое письмо до очереди. Очевидно, я что-то не делаю должным образом, но не могу понять, что именно.
У меня следующая установка: Ubuntu Server, Postfix 2.11.
Служба Postfix работает и правильно принимает электронные письма на локальные учетные записи.
Скрипт /tmp/milter.sh (владелец: я, группа: я, разрешение: rwx-rwx-rx) регистрирует некоторую строку при каждом запуске. Он работает нормально при запуске под пользователем меня в терминале.
В /etc/postfix/master.cf
, У меня есть:
smtp inet n - - - - smtpd
-o content_filter=mymilter
...
mymilter unix - n n - - pipe
flags=F user=me argv=/tmp/milter.sh
Новая конфигурация загружается
sudo postfix reload
Похоже, вы запутались насчет Милтера, до и после фильтра очереди. Эти три предмета отличались друг от друга. Предлагаю вам прочитать документацию по Поддержка Postfix Milter, перед фильтром очереди и после фильтра очереди.
Параметр content_filter
указал, что вы запускаете фильтр содержимого AFTER-QUEUE. Фрагмент об этом параметре из Документация Postfix
После того, как сообщение поставлено в очередь, отправить все сообщение на указанный транспорт: пункт назначения. В транспорт name указывает первое поле определения агента доставки почты в master.cf; синтаксис пункт назначения следующего перехода описан на странице руководства соответствующего агента доставки. Более подробная информация о внешних фильтрах содержимого находится в Postfix. FILTER_README файл.
И ваш вопрос о том, почему он не работает, пожалуйста, проверьте почтовый журнал. Думаю, вам следует добавить mymilter:dummy
вместо этого только mymilter
в параметре content_filter. См. Пример в tего официальная документация.
Последнее замечание, если вы измените master.cf
тогда было бы предпочтительнее использовать postfix stop; postfix start
чтобы postfix прочитал конфигурацию.