Запустить сценарий оболочки при получении электронной почты - PullRequest
4 голосов
/ 09 августа 2010

Как мы можем запустить сценарий оболочки на Unix-сервере по электронной почте с определенной темой?

Ответы [ 3 ]

6 голосов
/ 09 августа 2010

procmail позволяет работать с входящей почтой, включая фильтрацию и запуск внешних команд.

Некоторые полезные ссылки:

На всякий случай, если ссылка не работает, это ссылка из второй точки сверху :

Q: Как я могу запустить произвольный Perl или скрипт на всех или выбранных входящая почта?

A: Установить Procmail. Прочтите справочные страницы (их несколько). Поблагодарить вы.

: 0 * условия, если есть | ваш-скриптов здесь

Условия в простейшем виде представляют собой регулярные выражения для сопоставлять с заголовком каждого входящего почтового сообщения. Исправление: Еще проще, вы можете полностью пропустить строки условий, если вы хотите выполнить свое действие (в этом случае запустите скрипт оболочки) безусловно.

Более сложными условиями также могут быть коды выхода другой оболочки скрипты или программы, или тесты против всего тела сообщения, или с переменными Procmail (переменные Procmail также экспортируются в среда подпроцессов, поэтому они по существу являются средой переменные. Подробнее об этом позже в этом FAQ.)

Действиями также могут быть сохранение сообщения в папке (добавленной в Файл почтового ящика Unix, или записанный в новый файл в каталоге) или переслать сообщение на один или несколько других адресов. Наконец, действие может быть вложенным блоком более «рецептов», так как они сопоставления условие-действие вызываются на жаргоне Procmail, чтобы попытаться внешнее условие выполнено. Страница справочника procmailrc (5) содержит совок.

Очевидно, вы не ограничены Perl или сценариями оболочки. Что-нибудь вы можете запустить из командной строки Unix можно запустить из Procmail, в принцип, хотя запуск интерактивных программ обычно не делает много смысла.

2 голосов
/ 11 августа 2010

Более общий, но, на мой взгляд, менее полезный, чем Предложение Wim для procmail : Вы можете даже просто указать .forward на исполняемый файл с помощью "| scrip.sh" .

0 голосов
/ 09 августа 2010

Теоретически вы могли бы, написав программу для мониторинга / опроса сервера входящей почты и проверки строки темы с помощью стандартного протокола POP3, если в строке темы есть определенные ключевые слова триггера, вызовите сценарий оболочки ... Это порядок подхода, который подойдет ... может быть, уже есть решение с открытым исходным кодом ...

  • Используя сокеты, подключайтесь к серверу входящей электронной почты по IP-адресу и порту (обычно 25), не блокируя, чтобы не занимать и не жевать процессорное время, внутри потока, зацикливающегося навсегда
  • Список электронных писем с использованием протокола POP3
  • Опустите заголовки по протоколу POP3 и выполните регулярное выражение в строке темы.
  • Если регулярное выражение соответствует строке темы, введите триггер, возможно, системный вызов для вызова сценария оболочки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...