![]() |
カレッヂ |
質問者 miccy1126
投稿日 12/4(火) 21:11:40
ショッピングバスケットを利用しています。 発注→受注のメールのほかに受注→発注への注文確認メールを送信するようになっていますが、 受注者側に記入してもらったメールアドレスが間違っているとそのメールが届かない のはわかるのですが、"Mail delivery failed"のような送信失敗のお知らせがこないのはなぜでしょうか?フォームメールで普通のメーラーのように送信失敗を確認する手だてはあるでしょうか?よろしくお願いします。 |
回答者 呑兵衛@大阪
[削除]
投稿日 12/6(木) 00:01:45
MTA(sendmail とか qmqil)が、コマンド送信で相手先サーバーから 応答コード550(そんなメールボックスはない)を返されたときの、 処理による違いで、そのまま550を返し、送信したメールまで添付する 親切なサーバー設定もあれば、あなたのようなまったく何もしない (言われたことだけする)MTAもあります。 自分であるかないかわからないアドレスを作って、連続送信する スパマーがいるため、550を返していたらメールサーバー自体がパンク する恐れがあるため、このような設定になっていることもあるようです。 CGIスクリプトでは対処できません。 |
質問者 miccy1126
[削除]
投稿日 12/7(金) 18:53:39
回答ありがとうございました! |
回答者 呑兵衛@大阪
[削除]
投稿日 12/10(月) 19:08:41
今更ながら、一つ思い出しました。 if (!open(OUT,"| $sendmail -t")) という行があると思いますが、 -t の後に -f をつけて試してみてくださいませんか。 if (!open(OUT,"| $sendmail -t -f")) |
質問者 miccy1126
[削除]
投稿日 12/11(火) 10:23:48
呑兵衛さんこんにちは、いつも回答ありがとうございます。 さて、例の"-f"をくっつけてまちがいアドレスを送信してみましたが やはりなんの応答もありませんでした。 正しいメールアドレスを入れて試してもみましたが、 なにやら確認(注文)メールも送られなくなってしまいました。 "-f"とか"-s"とか"-t"というのはどんな役割を果たしているので しょうか? 初歩的な質問ですみません…Perlは記号郡が多くて私には ちょっととっつきにくいです。 |
回答者 呑兵衛@大阪
[削除]
投稿日 12/11(火) 20:36:01
だめでしたか。 この f は送信者は信頼のおけるユーザです、という意味合いに使いますが、 -f は sendamil 側で無視する設定もあるので、すべて有効とは言えないようです。 -t とか -f などは オプション あるいはフラグと呼ばれ、sendmail が働くときの 従たる仕事を命令する場合に使われます。 google あたりで sendmail フラグ オプション などで探してみてください。 とりあえずサーバー環境がそのようなので、元に戻して諦めましょう。 |
返信(回答)する
Web裏技 |