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

Выполнение команды после получения электронного письма

Как мне настроить 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 читает файл в домашнем каталоге пользователя, чтобы определить, как обрабатывать сообщения. Это выходит далеко за рамки простого файла конфигурации - это больше похоже на язык программирования. Это определенно соответствует тому, о чем вы просите.

С.