Что то я уже пару часов потратил, но не могу понять почему не работает. В общем есть транспорт, пусть к скрипту правильный, доступ под www-data есть, скрипт исполняемый
Цитата: maillist unix - n n - - pipe
flags=X user=www-data argv=/var/www/test.sh
далее в main.cf есть
Цитата: smtpd_recipient_restrictions =
check_recipient_access regexp:/путь/lists.filter,
остальное
в lists.filter, просто для теста
Цитата: /test@domain/ FILTER maillist:
логи показывают, что фильтр срабатывает, но флаг X почему то не очищает доставку, а все равно проверяет юзверя
Цитата: postfix/smtpd[29201]: connect from localhost[127.0.0.1]
postfix/smtpd[29201]: NOQUEUE: filter: RCPT from localhost[127.0.0.1]: <test@domain>: Recipient address triggers FILTER maillist:; from=<sender@domain> to=<test@domain> proto=ESMTP helo=<domain>
postfix/smtpd[29201]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <test@domain>: Recipient address rejected: User unknown in virtual mailbox table; from=<sender@domain> to=<test@domain> proto=ESMTP helo=<domain>
postfix/smtpd[29201]: warning: non-SMTP command from localhost[127.0.0.1]: To: test@domain
postfix/smtpd[29201]: disconnect from localhost[127.0.0.1]
Ощущение, что скрипт, все же, не запускается, но ведь логи пишут, что фильтр сработал.
Ворнинг "non-SMTP command" - это send форма в postfixadmin пытается все равно дальше DATA отправить.
Такая вещь через hash: срабатывала, но мне нужны регулярки
ps: добавление фильтра сюда тоже не помогает
Цитата: smtp inet n - - - - smtpd
-o content_filter=maillist:
все это делалось на основе
http://blog.thecodingmachine.com/content/triggering-php-script-when-your-postfix-server-receives-mail и
https://groups.google.com/forum/#!msg/mailing.postfix.users/KFb4okEASBU/TmmYqXEFTLQJ Добавлено: В общем понял в чем дело.
Цитата: check_recipient_access regexp:/путь/lists.filter,
вызов фильтра тут не делает несуществующий email реальным, поэтому и сервер отказывается его получать. оставил этот файл как есть, чтобы запустил триггер, но добавил еще и
Цитата: virtual_alias_maps =
regexp:/путь/aliases.filter,
в котором идет выброс мыла в /dev/null
Цитата: /test@domain/ devnull
может можно как то и по более толковому сделать, чтобы принимало несуществующие мылы на основе регулярки и передавала их скрипту, но вот так работает.