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に関するオンラインのチュートリアルはたくさんあります。また、2つを統合する方法のチュートリアルもあります(そのようにして、上記を思いつきました)。
ここで、実行するfetchmail
かfetchmail -v
、/home/username/myscript.sh
新しいメッセージごとにスクリプトを1回実行します。私はcronでfetchmailを実行するか、set daemon 600
ディレクティブをでデーモンとして実行するようにfetchmailを構成できます.fetchmailrc
(600はポーリング間の秒数です)。