Debian - запускать внешний скрипт из exim при получении писем - PullRequest
0 голосов
/ 11 сентября 2011

Я ищу любителей лучшего подхода для обработки входящих писем на определенный хост и вызова внешнего скрипта с данными электронной почты в качестве параметров - в основном, чтобы разрешить отправку электронной почты на определенный «частный» адрес электронной почты на хосте. который затем автоматически вставляет что-то в базу данных сайтов. В настоящее время я настроил exim как почтовый обработчик.

Ответы [ 2 ]

0 голосов
/ 24 августа 2015

Вы должны следовать структуре конфигураций файла exim. В разделе роутеры напишите свой собственный роутер, который будет доставлять почту на нужный вам скрипт php. В разделе транспорта напишите свой собственный транспорт, который обеспечит доставку до нужного скрипта с помощью curl. Просто напишите следующие настройки в вашем файле /etc/exim.cnf:

############ROUTERS
runscript:
        driver = accept
        transport = run_script
        unseen
        no_expn
        no_verify
############TRANSPORT
run_script:
     debug_print = "T: run_script for $local_part@$domain"
     driver = pipe
     command = /home/bin/curl http://my.domain.com/mailTest.php --data-urlencode $original_local_part@$original_domain

Где mailTest.php будет вашим предназначенным скриптом.

0 голосов
/ 03 октября 2011

Procmail - хороший общий ответ.Если ваши потребности очень специфичны, вы можете подключить свой собственный скрипт прямо из вашего .forward (или соответствующей конструкции exim'а - не можете точно вспомнить, как она отличается), но часто, заключая свой собственный скрипт в простой .procmailrcпоможет вам избежать неприятных деталей доставки электронной почты и сосредоточиться на фактической обработке.

:0
' ^Subject: secretpassword adduser \/[A-Z]+
| echo "insert $MATCH into users" | mysql -d users
...