dポイントプレゼントキャンペーン実施中!

メールの受信をトリガーとしてperlを起動させたいと考えています。

vine linux 4.0 で
MTAはpostfix 2.2.10 のみが入っています。

/etc/postfix/aliases に
root: "|/usr/bin/perl /root/test.cgi"

と書いて postfix reload した後

root 宛にメールをすると、メール自体は普通に届きますが
perlは起動しません。


test.cgi 自体は直接叩いてやると、ちゃんと動いています。
main.cf には alias_maps = hash:/etc/postfix/aliases と記述してあります。

メール受信で perlを起動させるにはどうしたらよいのでしょうか?

A 回答 (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)権がありますか?

この回答への補足

解答ありがとうございます
パーミッションはディレクトリも含めすべて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の方も解決しないまま終了されているので
結構はまってしまいそうですが、もう少しいじってみる事にします。

補足日時:2006/11/25 21:14
    • good
    • 0
この回答へのお礼

test.cgi の置き場所を
root/test.cgi ではなく
test/test.cgi としたら動いてくれました。

パーミッションの設定をどこかミスっていたのかも知れません。
どうもお騒がせいたしました。

お礼日時:2006/11/25 23:59

>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は動いていない様です…

初心者なので分からないことばかりですが
もう少し試行錯誤してみます。

補足日時:2006/11/25 17:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!