- - PR -
受信したメールを、スクリプトの処理を通したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-19 23:24
現在、sendmailがインストールされているサーバ上で受け取ったメールを、
スクリプトを経由させて送信や記録をしたいと考えています。 NETで調べた所、/etc/aliasesに下記を記載して、スクリプトが動作する所までは出来ました。 test: "| /test/test.sh" /test/test.shの中身 ------------------------ #!/bin/sh - Directory=`dirname $0` cd $Directory cat "TEST" > $Directory/test.txt exit 0 ------------------------ test@example.com にメールが送られたら、/test/test.txtに「TEST」と書き込まれる内容です。 トリガーとしての動作は、確認が取れました。 しかし、このスクリプト上で、受け取ったメール本文を取得するやり方が解りませんでした。 スクリプト上でメール本文を取得する為の方法、または参考サイトを教えて頂けないでしょうか。 _________________ |
|
投稿日時: 2006-12-19 23:59
それはあまりsendmailと関係ないですけど…
エイリアスに |(パイプ)を指定しているように、 メール本文は標準入力として渡されています。 #!/bin/bash Directory=`dirname $0` cd $Directory cat > $Directory/test.txt exit 0 と、やってみるのはいかがでしょうか? |
|
投稿日時: 2006-12-20 13:10
投稿日時: 2006-12-19 23:24
-------------------------------------------------------------------------------- レス有難う御座います。 > それはあまりsendmailと関係ないですけど… そうですね。どちらかと言えば、シェルスクリプトの話かもしれません・・・。 > cat > $Directory/test.txt これを試してみましたが、ファイルが生成出来ていませんでした。 又、 echo > $Directory/test.txt cat $1 > $Directory/test.txt 等も試してみたのですが、やはりファイルが生成されていませんでした。 根本的に、取得方法が違うのでしょうか・・・? |
|
投稿日時: 2006-12-20 14:34
こんにちは
/var/log/maillog にはどんな出力がなされていますか? ログには答えに近いヒントが出力されていることが多いですよ! |
|
投稿日時: 2006-12-20 16:46
シェルスクリプトの走るディレクトリのパーミッションあたりは?
試しに、スクリプト自体とその親ディレクトリのパーミッションを 777に設定して試してみてはいかがでしょうか? |
|
投稿日時: 2006-12-20 19:32
レス有難う御座います。
ログやパーミッション等をヒントにして、 スクリプトを動かす事に成功しました。 まず、シェルスクリプトからPerlスクリプトにシフトしました。 その内容は、下記の通りです。 ------------------------------ #!/usr/bin/perl @str = <STDIN>; open(DT,"> /tmp/test.txt"); print DT "@str"; close(DT); ------------------------------ このファイルを /etc/smrsh/test.pl に保存し、 パーミッションを755にしました。 /etc/aliases のファイルの書き方を、下記内容に変更しました。 ------------------------------ test: "| test.pl" ------------------------------ この状態でメールを送信すれば、/tmp/test.txt に保存出来る事を 確認する事が出来ました。 パーミッション周りを調べていくウチに、 /etc/smrsh/ の存在を知る事が出来ました。 これで色々と弄れそうです。 有難う御座いました。 |
1