Всех приветствую! Есть exim4.96 Всё работает штатно, никаких проблем. Неожиданно была поставлена задача: блокировать письма с вложениями типа - rar,zip,tar.. и т.д., дабы избежать запуска пользователями какого-нибудь шифровальщика. Ок. Гуглил, пока зенки не лопнули и по хилым знаниям сваял следующее: Файл фильтра .forward содержит:
# Exim filter
if $message_body contains "qqq" # понятное дело тут будут указаны расширения архивов
then
deliver "blocked@мойдомен.ru"
pipe "/home/папка/blockedmail.sh ${local_part}@${domain} ${message_id}"
seen finish
endif
Сам файл скрипта:
#!/bin/sh
echo "Your email has been blocked due to violation of our terms of service.\n[$1]\nMessage ID:[$2]\nSender...\n" \
| mail -s "You have a new mail in quarantine!" "$1"
По итогу, если в письме есть содержимое «qqq» он перенаправляет это письмо на ящик blocked@мойдомен.ru и отправляет нужное сообщение реципиенту. Теперь не могу понять, почему работает фильтр только с одним локальным ящиком (например petya@мойдомен.ru)? Если отправлю на другой ящик типа vasya@мойдомен.ru - то фильтр не срабатывает и сразу шлет его Василию с содержимым «qqq». Нутром чую что проблема в ${local_part}@${domain} , но если меняю на ${recipient}, то пишет что неизвестная переменная. Получается ее надо прописать где-то в самом конфиге?