さかいです.はずしてたらごめんなさい. <200008281047.AA01371 _at_ jiro.pluto.dti.ne.jp>の記事において catmoon _at_ pluto.dti.ne.jpさんは書きました。 >> 現在、メールをプログラムに転送させるために.forwardファイルを >> 作成しました。 >> 「とりあえず」なので、中身はこんな感じです。 >> >> "| cat > ~/qqq.txt" >> >> ところが実際にメールを自分宛てに送信してみても、 >> qqq.txtは作成されず、maillogを見てみたところ、 >> "Service unavailable" のメッセージが出力されます。 sendmail がプログラムを起動するときには,メール配送先のユーザの権限ではなく, sendmail のプロセスのユーザの権限(おそらく root か daemon)で起動されるので, ~/ は /root になっているのではないでしょうか? そもそも /etc/aliases や .forward で ~/ は使えるのかどうか,疑問です. (sendmail はシェルを起動してくれるのだろうか? 誰かしってます?) >> "| cat > ~/qqq.txt" "| cat > /home/hogehoge/qqq.txt" のようにして,フルパスで指定すればうまくいくと思います. 以前,メールを nkf を通してから日本語Perlに渡して,いろいろな 処理をさせるというPerlスクリプトを Solaris 上で書いたときに,.forward を, "| nkf -e | sample.pl" のようにしてうまくいかず,はまったことがあります. (sendmail は daemon ユーザで動いているのだが,daemon ユーザは /usr/local/bin に実行パスが通ってなかったので,nkf や sample.pl が 見つからなかったのが原因) "| /usr/local/bin/nkf -e | /usr/local/bin/sample.pl" のようにしたら,うまく動きました. このようなことをやるときには,コマンドやファイル名は基本的に フルパスで指定してやる必要がありますね.あと,どのユーザ権限で 実行されるのかを忘れがちなので,注意. (ディレクトリのパーミッションが許可されてなくて書き込みできないとかが, ありがち)
Follow-Ups:
- [linux-users:73028] Re: メールがプログラムに渡せないTakashi SHIRAI
- [linux-users:73004] メールがプログラムに渡せないHiromi Shiraishi
- Prev by Subject: [linux-users:73013] Re: how to specify hardware problem
- Next by Subject: [linux-users:73015] Re: メールがプログラムに渡せない
- Previous by thread: [linux-users:73121] Re: メールがプログラムに渡せない
- Next by thread: [linux-users:73028] Re: メールがプログラムに渡せない
- Indexes:[Main][Thread]