Я пытаюсь заставить postfix запускать сценарий при мягких (4xx) и жестких (5xx) ошибках доставки, но я не уверен, с чего начать.
Если я правильно понимаю, я мог бы вставить (основанные на конвейере) фильтры в файл master.cf, там доступна вся инфраструктура milter, и, наконец, я полагаю, что мог бы просто grep просмотреть журналы mail.info.
Итак - какой-нибудь совет? Должен ли я пойти по маршруту «обработать через master.cf», и если да, то какого демона мне следует перехватить? "подпрыгивать"? Путь grep-the-logs, вероятно, самый простой, но я не могу не чувствовать, что есть способ лучше.
Любые советы приветствуются!
Postfix - это MTA - агент пересылки почты. Доставка осуществляется либо одним из встроенных MDA (агентов доставки почты) - локальным (8) или виртуальным (8), либо любым внешним MDA, настроенным вами.
Если доставка не удалась по какой-либо причине, этот факт регистрируется, и сообщение либо откладывается для последующей повторной попытки (для статусов 4xx), либо отклоняется, и отправителю отправляется сообщение о недоставке (для статусов 5xx).
На указанном выше пути нет места, где вы можете произвольно ввести альтернативный код; эти действия требуются протоколом SMTP (RFC5321).
Вы можете полностью определить, что происходит при доставке сообщения в MDA; вам придется программировать который для обработки статусов ошибок любым способом, который подходит вашему сценарию.
РЕДАКТИРОВАТЬ: при этом вы можете написать оболочку на основе pipe (8) вокруг выбранного вами агента доставки, которая обрабатывает эти результаты доставки.