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

Как запустить скрипт после спама, использовать аргументы в скрипте и перенаправить вывод спама в sendmail?

Я пытаюсь выполнить кастомные действия после spamassassin. У меня есть рабочая строка в постфиксе master.cf

spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}

Но я хочу перенаправить вывод spamc в свой сценарий, который принимает аргументы, выполняет мои действия, а затем перенаправляет вывод spamc в sendmail.

Я пытался сделать

spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -e
/home/scripts/my.sh ${sender} ${recipient}

И my.sh просто повторяя $1 и $2 но посмотри в mail.log

spamc[31244]: exec failed: Exec format error

Короче говоря, я хочу хотя бы показать аргументы отправителя получателя в эхо, а после этого попытаться перенаправить вывод spamc на sendmail в моем скрипте, но я даже не смог запустить простое эхо (

ОБНОВИТЬ

В настоящее время у меня в постфиксе есть следующая conf:

smtp      inet  n       -       -       -       -       smtpd -v -o content_filter=filter

filter unix - n n - - pipe user=spamd argv=/home/scripts/my.sh -oi -f ${sender} ${recipient}

Сценарий Experimantal работает и теперь просто отправляет вывод спама в файл (без sendmail)

/usr/bin/spamc > /home/scripts/res

Как мне извлечь такие заголовки smtp, как Из, Чтобы и X-Spam-Flag из результата спама используя bash и перенаправить результат спама в sendmail? Хочу как-то использовать каналы, чтобы дважды не вызывать spamc. Я думаю, что grep может мне помочь, но я точно не знаю, как извлечь из - другие заголовки могут быть взяты как есть, но Из заголовок содержит дополнительную информацию + почта в <> (пример - From: =? UTF-8? B? nameInBB64? =), но я не уверен, что почтовый адрес всегда находится внутри <>. Правильно ли мое предложение?