- ベストアンサー
メール受信をトリガーにしてperlを起動する方法
- メールの受信をトリガーとしてperlを起動させる方法を教えてください。
- Vine Linux 4.0でMTAとしてpostfixが使われており、/etc/postfix/aliasesにroot: "|/usr/bin/perl /root/test.cgi"と記述しましたが、perlが起動しません。
- 直接test.cgiを実行すると動作しますが、メール受信時にperlを起動させるにはどうすればよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません、aliasesの内容(形式)が >root: "|/usr/bin/perl /root/test.cgi" だから、 postmap /etc/postfix/aliases ではなくて postalias /etc/postfix/aliases ですね。 ログで起動された痕跡があるようですから大丈夫だと思いますが、 postalias -q root /etc/postfix/aliases を実行して、設定した内容("|/usr/bin/perl /root/test.cgi")が表示されればaliasの設定として認識出来ています。 あと、postfixの各プロセス(プログラム)は、ユーザpostfixで動作しますが、/root/test.cgiにユーザpostfixに対する読み込み(read)権がありますか? また、test.txtが作成されるディレクトリにユーザpostfixに対する書き込み(write)権がありますか?
その他の回答 (1)
- Lean
- ベストアンサー率72% (435/603)
>hash:/etc/postfix/aliases としているのだから、 postmap /etc/postfix/aliases を実行してhash形式のデータベースは作成していますか?
補足
解答ありがとうございます /etc/postfix の中には aliases.db が出来ている様ですが これは hash形式のデータベースと言うものなのでしょうか? postmap /etc/postfix/aliases とやると postmap: warning: /etc/postfix/aliases, line 2: record is in "key: value" format; is this an alias file? と言うエラーが line 2 ~ line 78 までズラ~とでます。 postmap hash:/etc/postfix/aliases とやっても同様… log を見ると (delivered to command: /usr/bin/perl /root/test.cgi) となっていて test.cgi を叩けている様な感じなんですが ちゃんと叩けていたら test.txt が出来上がるはずなので test.cgiは動いていない様です… 初心者なので分からないことばかりですが もう少し試行錯誤してみます。
お礼
test.cgi の置き場所を root/test.cgi ではなく test/test.cgi としたら動いてくれました。 パーミッションの設定をどこかミスっていたのかも知れません。 どうもお騒がせいたしました。
補足
解答ありがとうございます パーミッションはディレクトリも含めすべて777でテストしていますが 動いてくれません。 どうも私は以下のURLの方と同じ症状ではまっているようです http://q.hatena.ne.jp/1161200578 ここで解説されている hogetest: "|/bin/mail your@mail.address" を aliases に書いた所、メールが転送されてきたので aliases は問題なさそうです。 test.cgi も直接叩けば動いてくれるとなると あとはパーミッションかな?とも思うのですが、もはや手詰まりです… 一応ログは以下の様な感じです Nov 25 20:51:29 localhost postfix/smtpd[8148]: connect from web2804.mail.bbt.hoge.co.jp[202.93.80.74] Nov 25 20:51:30 localhost postfix/smtpd[8148]: 0108318: client=web2804.mail.bbt.hoge.co.jp[202.93.80.74] Nov 25 20:51:30 localhost postfix/cleanup[8153]: 01083184: message-id=<20061125.94823.qmail@web2804.mail.bbt.hoge.co.jp> Nov 25 20:51:30 localhost postfix/qmgr[8137]: 0108318: from=<test@hoge.co.jp>, size=1123, nrcpt=1 (queue active) Nov 25 20:51:30 localhost postfix/smtpd[8148]: disconnect from web2804.mail.bbt.hoge.co.jp[202.93.80.74] Nov 25 20:51:30 localhost postfix/local[8154]: 0108318: to=<root@mydomain.com>, relay=local, delay=1, status=sent (delivered to command: /usr/bin/perl /root/test.cgi) Nov 25 20:51:30 localhost postfix/qmgr[8137]: 0108318: removed 上記URLの方も解決しないまま終了されているので 結構はまってしまいそうですが、もう少しいじってみる事にします。