• ベストアンサー

メールフォームCGIでのエラーメールの行き先

PerlでメールフォームCGIを作成しました。 メール記入欄に存在しないメールを入力し実行したとします。 では、そのメールは当然あて先がないのでどこかにいくと思うのですが、それはどこにいくのでしょうか? また、もしそのように存在しない場合、自分のアドレス宛てにリターンさせることは可能なのでしょうか? よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • t140
  • ベストアンサー率39% (59/150)
回答No.5

>open(SENDMAIL, "| $sendmail -t"); これは、CGIがPerlで書かれているということですね? #3で書きましたように、 open(SENDMAIL, "| $sendmail -t -i -f userid\@domain"); で送れませんか? sendmail には山ほどオプションがあります。 sendmail perl CGI などで複合検索をかければ山ほどヒットします。 残念ながらあまり参考になるようなサイトは見つけられませんでした。ただ、オプションについて詳しく知りたいの ならマニュアルがいちばんいいように思います。

titikun00
質問者

お礼

ばっちりうまくいきました。 ありがとうございます。 ところでマニュアルというのは・・・いったいどこにあるのですか?

その他の回答 (5)

  • t140
  • ベストアンサー率39% (59/150)
回答No.6

UNIX系には通常、マニュアルが付いています。 man というコマンドです。(manualの略) #sendmail のオプションを調べたいなら % man sendmail #man コマンドの使い方がわからないなら % man man

  • t140
  • ベストアンサー率39% (59/150)
回答No.4

自サーバということでしたら思うがままに設定できます。 各ユーザというのは、Linuxがマルチユーザで動作している ということですか? それともシステムユーザではない外部 のユーザということ? 先にも書いたとおりに sendmail で -fオプションを使って送信するようにすれば解決すると思います。 まず、wwwサーバの実行ユーザを把握してください。 その実行ユーザがCGIを実行しますのでメール送信ユーザ になります。この実行ユーザ権限で -fオプションに送信 する人のメールアドレスを渡すことになります。 これでメールが送れない場合にはsendmailの設定で信頼 できるユーザとして登録してください。 どういったユーザでどういったデータの流れなのか わかりませんのでこれぐらいしか書くことができません。

titikun00
質問者

お礼

>各ユーザというのは、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)
回答No.3

エラーメールが自分に返らないのであれば、恐らくメールサーバの 管理者(root)が最終的に受け取る可能性が高いです。 CGIを使って送信するとそのwwwサーバ(Apacheなど)に設定されて いるユーザ(nobody,wwwなどが多い)送信のメールになります。 但し、SuEXECで起動していれば個々のユーザ扱いかも。 Apacheのnobodyユーザなどの場合、メールをやり取りするユーザ ではないのでメールを受け取ることができません。 このようなときに受け取るのは最終的にサーバ管理者になります。 sendmailの場合、信頼できるユーザとして登録されていれば -f オプション指定で制御できるようです。 「/path/to/sendmail -t -i -f 送信元メールアドレス」 詳しくはEnvelopeやMUAあたりで検索すると詳しく載ってると思います。

titikun00
質問者

補足

なるほど。 やはりroot宛てに届いているだけなのですね。その場合CGIだけで設定はできないのですね。 では、さらに質問させてください。 実はそのCGIは自分のLinuxサーバーで実行しています。 Redhat7.3なのですが、なにか特別設定をすれば各ユーザーにとどくようにできますか?

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.2

> またerrors-to:やReply-To:でも届かないんです。 Sendmail、qmail等に渡してメールを送っている場合、設定によってはこれらがヘッダを書き換えている場合があります。 実在する自分のメールアドレス宛に送ってみてヘッダ内のReply-to、From、Return-Path、Errors-toを確認してみましょう。

  • kalze
  • ベストアンサー率47% (522/1092)
回答No.1

そのCGI次第でしょう。 そのCGIがfromなど送信元としているメールアドレスにエラーメールが届くだけかと

titikun00
質問者

補足

fromでは届かなかったんです。 またerrors-to:やReply-To:でも届かないんです。 他に方法は?