Как мне настроить Postfix на выполнение команды, когда он получает электронное письмо на указанный адрес / имя пользователя или, возможно, электронное письмо, содержащее какой-то текст?
Нет никакого способа сопоставить текст, но вы можете переслать все сообщения на адрес программы.
Вам необходимо добавить псевдоним в свой системный файл псевдонимов, обычно / etc / postfix / aliases или в пользовательский файл .forward. Первый вариант имеет большую гибкость, потому что у вас могут быть псевдонимы для адреса, который фактически не соответствует учетной записи.
Псевдоним должен быть примерно таким
|/usr/local/bin/command
Вы должны указать полный путь, потому что вы не знаете, в каком контексте он будет выполняться.
Если ваша программа завершается с 67, то это будет отбрасывать сообщение как неизвестный пользователь, 0 отбросит сообщение. Все остальное будет повторяться до тех пор, пока сообщение не истечет и не вернется.
Будьте осторожны с безопасностью - вы в основном позволяете любому пользователю в Интернете запускать программу в вашей системе, поэтому не доверяйте вводу пользователя и дезинфицируйте его, прежде чем использовать.
Прошло некоторое время с тех пор, как я много играл с Postfix, но IIRC обычно поставлялся в комплекте с довольно простым MDA, но он все еще мог понимать файлы .forward в домашнем каталоге пользователей, вам нужно будет прочитать документы и вашу конфигурацию postfix чтобы узнать, какой MDA настроен.
Папа всех MDA (ИМХО) - это procmail. Вы можете заменить текущий MDA на procmail в файле main.cf - см. http://www.postfix.org/faq.html#procmail
Procmail читает файл в домашнем каталоге пользователя, чтобы определить, как обрабатывать сообщения. Это выходит далеко за рамки простого файла конфигурации - это больше похоже на язык программирования. Это определенно соответствует тому, о чем вы просите.
С.