В операционных системах Linux и Unix вы можете использовать fetchmail
для опроса свою учетную запись электронной почты IMAP и передавать любые новые сообщения procmail
. Вы можете настроить procmail для запуска сценариев на основе совпадений шаблонов регулярных выражений в полученных сообщениях.
Для этого вам нужно установить пакеты fetchmail и procmail. Следующая конфигурация позволила мне запускать скрипт для каждого нового сообщения электронной почты, полученного в моей учетной записи электронной почты. Я использовал Ubuntu 12.04 LTS.
В ~/.fetchmailrc
:
# .fetchmailrc checks my e-mail account for new messages, sends them to procmail
set logfile /home/myusername/fetchmail.log
poll mail.domain.com protocol IMAP
user "emailaccountname"
password 'emailpassword'
folder 'INBOX'
keep
ssl
mda "/usr/bin/procmail -f %F"
Обратите внимание на keep
указанную выше директиву, которая гарантирует, что сообщения не будут удалены с сервера IMAP после их получения.
В ~/.procmailrc
:
# .procmailrc received e-mails from fetchmail and runs a script
PATH=/usr/bin:/usr/local/bin
LOGFILE=/home/username/procmail.log
SHELL=/bin/sh
# This rule triggers for every e-mail message:
:0
| `/home/username/myscript.sh`
В Интернете есть множество учебных пособий для fetchmail и procmail, а также учебных пособий по их интеграции (вот как я придумал вышеизложенное).
Теперь, если я запускаю fetchmail
или fetchmail -v
скрипт /home/username/myscript.sh
запускается один раз для каждого нового сообщения. Я могу запустить fetchmail в cron или настроить fetchmail для запуска в качестве демона с set daemon 600
директивой in .fetchmailrc
(где 600 - это количество секунд между опросами).