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

запускать php-скрипт при получении электронного письма

У меня есть сервер CentOS с qmail, и я хочу настроить его так, чтобы каждый раз, когда доставляется электронное письмо, сразу после этого запускался скрипт php. Мне не нужно «пересылать» конкретное сообщение в php-скрипт, просто чтобы запустить его выполнение всякий раз, когда qmail доставляет сообщение. Однако, если бы я мог сообщить скрипту, по крайней мере, в какой почтовый ящик пришло сообщение, это было бы здорово (я бы избегал бесполезной проверки ВСЕХ почтовых ящиков, чем сейчас занимается мой скрипт)

В настоящий момент я выполняю это, выполняя свой php-скрипт через cronjob каждую минуту, но я бы хотел избежать бесполезного запуска скрипта, когда почта не поступает, и избежать средней задержки в полминуты.

Как мне настроить qmail для запуска выполнения программы после доставки сообщения?

Итак, ответ procmail. Поскольку я не специалист по qmail, я не могу сказать вам, как вы интегрируете его в qmail. Но, наверное, ответ Вот.

Затем вам нужен рецепт, чтобы запустить программу и после этого доставить почту, как раньше. Полная документация также доступна в Интернете:

Procmail - древнее (но надежное!) Программное обеспечение. Мы до сих пор используем его для фильтрации спама (да, действительно) примерно для 500 000 писем в день.

Самый простой способ - использовать файлы конфигурации dot-qmail для каждого почтового ящика, для которого вы хотите вызвать свой скрипт. Вы можете прочитать о dot-qmail Вот и параметры окружающей среды, которые вы можете использовать в qmail-команда

Если вы используете dovecot, вы также можете добавить managesieve в dovecot, и он будет делать что-то за вас, когда приходит определенная почта. Я тоже большой поклонник метода procmail. Sieve также позволяет вам делать другие действительно крутые вещи, и это не так "древний", как procmail.