LoginSignup
1
0

More than 5 years have passed since last update.

メールサーバでメールを受信したら、受信したユーザでプログラムを実行

Last updated at Posted at 2015-07-07

環境

user1 アカウントで作業を行う。
user1アカウントをaudioグループに所属させておき、音が出せることを確認。

id | grep audio

音を出す

音量やミュートの確認
alsamixer
再生ソフトにmpg123を使う
sudo apt-get install -y mpg123
  • (mplayerだと再生できませんでした。)

procmailの設定

~/.forward
"| IFS=' ' && exec /usr/bin/procmail -f- || exit 75 "

受け取ったメールをそのまま保存

~/.procmailrc
:0
*^From:.*
| cat > a.txt
  • メールヘッダを確認。

受信アドレスで処理を分岐

  • 先ほどの~/.procmailrcは削除しておく。

user1+command1@宛にメールを送信し、受信時のレシピは以下

~/.procmailrc
:0
*^To:.*user1\+command1@
| mpg123 -q $HOME/Documents/hello.mp3

後は量産すれば良い。

備考

  • +を付ける場合は\でエスケープすること。
  • Maildir形式でもmbox形式でも両方で機能した。
  • .procmailrc と .forward には実行権限要りません。

エラーをログに残す

~/.procmailrc
:0
*^From:.*
| command1 2> a.log

環境変数の確認

~/.procmailrc
:0
*^From:.*
| env > a.txt
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0