CGI-BBS > 基礎 > CGIライブラリ > フォームメールのアドレス間違いを確認するには?


カレッヂ
カレッヂ


質問者 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裏技