У меня на хостинге в cPanel, в разделе Global Email Filters, настроено несколько фильтров, блокирующих разный спам. Изредка бывает, что под какой-то из них попадает нужное письмо, поэтому возжелал складывать нежелательные письма в файл вместо уничтожения.
Меняю действие Discard на Pipe to a Program, вставляю командную строку:
tee -a ${HOME}/mail/rejected >/dev/null
В разделе Filter Test ввожу подходящие реквизиты, в выдаче вижу:
Pipe message to: tee -a \${HOME}/mail/rejected >/dev/null
Но файл rejected в каталоге mail не создается.
Не знаю, что там означает обратный слэш перед "$" — возможно, экранирование каких-то внутренних макросов. В
описании упоминается только "скрипт" (а не командная строка), и что путь должен быть относительно домашнего каталога. Поменял строку на имя скрипта (reject.sh), в сам файл записал:
#!/bin/sh
tee -a ${HOME}/mailfilters/rejected >/dev/null
Поставил разрешения 700, как требуется. Не работает.
Здесь есть пример с заданием именно командной строки. Получается, что можно и так, как у меня было в первом варианте.
Поскольку хостинг у меня shared, доступа к логу exim у меня нет, деталей посмотреть не могу.
Что я делаю не так?