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

Как запустить команду после получения почты с exim4?

Где я могу сказать exim, что нужно запускать команду shell / php каждый раз, когда новая почта доставляется в виртуальный почтовый ящик. Не имеет значения, какому пользователю доставляется почта?

Учитывая, что у вас, по-видимому, есть реальный пользователь, которому можно доставить, вы, вероятно, захотите изучить .forward файл или, возможно, procmail, если вы хотите стать немного более привлекательным (например, если вы хотите запустить команду только для подмножества сообщений, доставленных пользователю).

Ты хочешь посмотреть на shadow_transport.

Для локальных доставок (только), если доставка успешна и Транспорт ссылается на другой Транспорт в своем shadow_transport опция, то второй транспорт также будет активирован.

Тогда у вас будет второй Транспорт. driver = pipe транспорт.

Например:

maildir_delivery:
  driver = appendfile
  directory = ...blah blah whatever ...
  maildir_format
  # various other maildir extension options if needed
  shadow_transport = audit_delivery

audit_delivery:
  driver = pipe
  command = /some/path/to/some/command with some options
  user = audituser
  group = mail

Самый простой способ, который я нашел, - это создать новый маршрутизатор, который впоследствии будет доставить локальным пользователям:

runscript:
        driver = accept
        transport = run_script
        unseen
        no_expn
        no_verify

Итак, почта по-прежнему обрабатывается так, как должна, и мой скрипт работает, с правильным транспортом, например:

run_script:
        debug_print = "T: run_script for $local_part@$domain"
        driver = pipe
        path = "<path>"
        command = "<command to be run>"