- ベストアンサー
メールフォームCGIでのエラーメールの行き先
PerlでメールフォームCGIを作成しました。 メール記入欄に存在しないメールを入力し実行したとします。 では、そのメールは当然あて先がないのでどこかにいくと思うのですが、それはどこにいくのでしょうか? また、もしそのように存在しない場合、自分のアドレス宛てにリターンさせることは可能なのでしょうか? よろしくおねがいします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>open(SENDMAIL, "| $sendmail -t"); これは、CGIがPerlで書かれているということですね? #3で書きましたように、 open(SENDMAIL, "| $sendmail -t -i -f userid\@domain"); で送れませんか? sendmail には山ほどオプションがあります。 sendmail perl CGI などで複合検索をかければ山ほどヒットします。 残念ながらあまり参考になるようなサイトは見つけられませんでした。ただ、オプションについて詳しく知りたいの ならマニュアルがいちばんいいように思います。
その他の回答 (5)
- t140
- ベストアンサー率39% (59/150)
UNIX系には通常、マニュアルが付いています。 man というコマンドです。(manualの略) #sendmail のオプションを調べたいなら % man sendmail #man コマンドの使い方がわからないなら % man man
- t140
- ベストアンサー率39% (59/150)
自サーバということでしたら思うがままに設定できます。 各ユーザというのは、Linuxがマルチユーザで動作している ということですか? それともシステムユーザではない外部 のユーザということ? 先にも書いたとおりに sendmail で -fオプションを使って送信するようにすれば解決すると思います。 まず、wwwサーバの実行ユーザを把握してください。 その実行ユーザがCGIを実行しますのでメール送信ユーザ になります。この実行ユーザ権限で -fオプションに送信 する人のメールアドレスを渡すことになります。 これでメールが送れない場合にはsendmailの設定で信頼 できるユーザとして登録してください。 どういったユーザでどういったデータの流れなのか わかりませんのでこれぐらいしか書くことができません。
お礼
>各ユーザというのは、Linuxがマルチユーザで動作している >ということですか? それともシステムユーザではない外部 >のユーザということ? マルチユーザーという言葉ははじめて聞くことなのでわかりませんが、LinuxでよくゆうユーザーIDのユーザーのことです。(あってますか?) CGI内にはすでに-tオプションをつけておりました。 open(SENDMAIL,"| $sendmail -t") しかし-fだけに変えるとメールが飛ばなくなりました。 open(SENDMAIL,"| $sendmail -f") また-t -fにしてもメールが配信されませんでした。 open(SENDMAIL,"| $sendmail -t -f") 以前から勉強しようとおもっていてなかなかできなかったのですが、そのsendmailのオプションについて詳しくしりたいのですがどこかに掲載されているのでしょうか? 申し訳ないですがご教授お願いします。
- t140
- ベストアンサー率39% (59/150)
エラーメールが自分に返らないのであれば、恐らくメールサーバの 管理者(root)が最終的に受け取る可能性が高いです。 CGIを使って送信するとそのwwwサーバ(Apacheなど)に設定されて いるユーザ(nobody,wwwなどが多い)送信のメールになります。 但し、SuEXECで起動していれば個々のユーザ扱いかも。 Apacheのnobodyユーザなどの場合、メールをやり取りするユーザ ではないのでメールを受け取ることができません。 このようなときに受け取るのは最終的にサーバ管理者になります。 sendmailの場合、信頼できるユーザとして登録されていれば -f オプション指定で制御できるようです。 「/path/to/sendmail -t -i -f 送信元メールアドレス」 詳しくはEnvelopeやMUAあたりで検索すると詳しく載ってると思います。
補足
なるほど。 やはりroot宛てに届いているだけなのですね。その場合CGIだけで設定はできないのですね。 では、さらに質問させてください。 実はそのCGIは自分のLinuxサーバーで実行しています。 Redhat7.3なのですが、なにか特別設定をすれば各ユーザーにとどくようにできますか?
- Ethersky
- ベストアンサー率71% (168/235)
> またerrors-to:やReply-To:でも届かないんです。 Sendmail、qmail等に渡してメールを送っている場合、設定によってはこれらがヘッダを書き換えている場合があります。 実在する自分のメールアドレス宛に送ってみてヘッダ内のReply-to、From、Return-Path、Errors-toを確認してみましょう。
- kalze
- ベストアンサー率47% (522/1092)
そのCGI次第でしょう。 そのCGIがfromなど送信元としているメールアドレスにエラーメールが届くだけかと
補足
fromでは届かなかったんです。 またerrors-to:やReply-To:でも届かないんです。 他に方法は?
お礼
ばっちりうまくいきました。 ありがとうございます。 ところでマニュアルというのは・・・いったいどこにあるのですか?