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

Postfix не запускает мой milter-скрипт до очереди

Я не могу запустить 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 прочитал конфигурацию.