URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 98030
[ Назад ]

Исходное сообщение
"Запуск скрипта c помощью Postfix"

Отправлено Николай , 16-Фев-25 19:15 
Всем привет!
Хотелось бы запускать произвольный bash-скрипт с помощью Postfix, когда на него приходит письмо от определенного адресата, например, от pupkin@mail.ru
Задачка вроде примитивная, типа приписать в Postfix простенький альяс, но оно почему-то не срабатывает.
За несколько дней перелопатил уйму документации и примеров, и все бестолку.
На нашем форуме уже есть аналогичная тема, в которой одному форумчанину удалось альясами запускать скрипт, а другой, и я в том числе, воспользовавшись его советом, не добился ничего.
Хотя чувствую, что разгадка где-то совсем рядом.
Мне порядком надоело мусолить эту проблему, так что если кто поможет действующим рецептом, сходу отправляю 100 юмоней.

Содержание

Сообщения в этом обсуждении
"Запуск скрипта c помощью Postfix"
Отправлено anonymous , 17-Фев-25 05:59 
>[оверквотинг удален]
> письмо от определенного адресата, например, от pupkin@mail.ru
> Задачка вроде примитивная, типа приписать в Postfix простенький альяс, но оно почему-то
> не срабатывает.
> За несколько дней перелопатил уйму документации и примеров, и все бестолку.
> На нашем форуме уже есть аналогичная тема, в которой одному форумчанину удалось
> альясами запускать скрипт, а другой, и я в том числе, воспользовавшись
> его советом, не добился ничего.
> Хотя чувствую, что разгадка где-то совсем рядом.
> Мне порядком надоело мусолить эту проблему, так что если кто поможет действующим
> рецептом, сходу отправляю 100 юмоней.

procmail


"Запуск скрипта c помощью Postfix"
Отправлено Николай , 17-Фев-25 09:00 
> procmail

Да, я в курсе про эту фишку, и не только про нее.
Но мне не хотелось бы вводить в систему лишнюю сущность, а воспользоваться возможностями самого Postfix.
Тем более что он это умеет, и у кого-то это получилось, но к сожалению, это было давно, и этот приятель уже не отзывается.



"Запуск скрипта c помощью Postfix"
Отправлено Николай , 17-Фев-25 10:10 
Вот эта переписка с неудачным финишем:
https://www.opennet.me/openforum/vsluhforumID1/96743.html

"Запуск скрипта c помощью Postfix"
Отправлено anonymous , 17-Фев-25 10:21 
>> procmail
> Да, я в курсе про эту фишку, и не только про нее.
> Но мне не хотелось бы вводить в систему лишнюю сущность, а воспользоваться
> возможностями самого Postfix.
> Тем более что он это умеет, и у кого-то это получилось, но
> к сожалению, это было давно, и этот приятель уже не отзывается.

https://carantin2006.narod.ru/postfix/postfix/FILTER_README....


"Запуск скрипта c помощью Postfix"
Отправлено Николай , 17-Фев-25 19:25 
> https://carantin2006.narod.ru/postfix/postfix/FILTER_README....

Этот документ мне еще не встречался, хотя о фильтрах в Postfix наслышан.
Ну хорошо, если для запуска внешних прграмм вместо альясов можно использовать фильтры, ок, пусть будут они.
Но только в этом документе, который уже изучил, о запуске программ не упоминается, или я пропустил?

Мой бонус, если что, остается в силе :-)


"Запуск скрипта c помощью Postfix"
Отправлено Николай , 18-Фев-25 01:16 
Снимаю мой вопрос, потому что никто с ним не справится.

"Запуск скрипта c помощью Postfix"
Отправлено ipmanyak , 18-Фев-25 06:21 
>[оверквотинг удален]
> письмо от определенного адресата, например, от pupkin@mail.ru
> Задачка вроде примитивная, типа приписать в Postfix простенький альяс, но оно почему-то
> не срабатывает.
> За несколько дней перелопатил уйму документации и примеров, и все бестолку.
> На нашем форуме уже есть аналогичная тема, в которой одному форумчанину удалось
> альясами запускать скрипт, а другой, и я в том числе, воспользовавшись
> его советом, не добился ничего.
> Хотя чувствую, что разгадка где-то совсем рядом.
> Мне порядком надоело мусолить эту проблему, так что если кто поможет действующим
> рецептом, сходу отправляю 100 юмоней.

Погуглите на инглише -  how to start script in postfix when  get mail
Решения вроде есть. Вот несколько ссылок
https://unix.stackexchange.com/questions/178396/run-script-o...
https://serverfault.com/questions/506894/how-to-route-email-...
https://serverfault.com/questions/808302/execute-script-when...
https://serverfault.com/questions/261191/how-to-run-a-script...


"Запуск скрипта c помощью Postfix"
Отправлено Николай , 18-Фев-25 08:21 
Спасибо за ссылки, но это бесполезно. Потому что я не учел одно обстоятельство - мой Postfix работает не сам по себе, а в составе iRedMail, что в свою очередь означает, что акаунты хранятся не в текстовых файлах, на которые рассчитаны все эти  доки, а в Мускуле.
А это совсем дохлый номер. Потому что сколько не гугли по этому обстоятельству, имеющиеся решения темный лес и предупреждают, что это ненадежно, и может нарушить работу почты.

"Запуск скрипта c помощью Postfix"
Отправлено _ , 21-Фев-25 20:56 
> Спасибо за ссылки, но это бесполезно. Потому что я не учел одно обстоятельство

Да, ты не учёл что хотя-бы одну извилину но иметь - надо :)

> мой Postfix работает не сам по себе, а в > составе iRedMail, что в свою очередь
> означает, что акаунты хранятся не в текстовых файлах, на которые рассчитаны все
> эти  доки, а в Мускуле.

Это не проблема. Тебе дали  доку на Великом и Могучем, понятную даже моему коту!, там пофигЪ(С) где у тебя юзеры хранятся, но...
Мой кот бы всё сделал. А у тебя - лапки :)

> А это совсем дохлый номер. Потому что сколько не гугли по этому обстоятельству, имеющиеся
> решения темный лес и предупреждают, что это ненадежно, и может нарушить работу почты.

Удивительно - чтобы водить авто надо уметь ездить :) Или заплатить таксисту :)
Удачи.


"Запуск скрипта c помощью Postfix"
Отправлено AS , 12-Мрт-25 11:51 
подскажи - а постфикс ведь ведет лог принятых майлов?

and коли совсем неХоч вмешиваться в его инстансы и любые другие делай примерно так:

tail -fn1 /var/log/постфикс/его_лог | while read LINE; do SMS=$(echo $LINE|grep 'pupkin@mail.ru' --color=never|tr -d \"); [ "$SMS" == "" ] || bash твой_скрипт.sh "$SMS" ;  done

я так себе СМС из логов отправляю..
только есть одна проблема - когда файлег пересоздается - нужно и эту "следилку" следом переЗапускать..

но совреМеннные сервисы гадить приучены в journalctl и там проблем с переЗапуском неБудет:

export LC_ALL=C; journalctl -u postfix -fn1|while read ..........