メールCGIのReturn-Path設定改造
無料で配布されているCGIスクリプトの簡単な改造方法を紹介します。KentWebのポストメールV4.11(postmail.cgi)の改造とKentWebのWeb-MartV1.61(mart_order.cgi)の改造記事です。
普通のメールやメールフォームで送ったメールで、CCで送信者にも同じメールが届くように設定していて、送信者がメールアドレスを間違えていた場合、メーラーディーモン(MAILER-DAEMON)からエラーのメールが発信者(管理人)に戻って来るのが普通です。
私はKentWeb(ケントウェブ)のpostmail v4.11とKentWebのWeb-Mart V1.61を使っていて、このエラーメールは戻って来ていました。メールアドレスの間違いがチェックできて非常に便利でした。
しかし、サーバーを変更したら、存在しないメールアドレスでもこのMAILER-DAEMONメールが戻って来なくなりました。そこで CGIスクリプト楽天 ファイルを改造しました。
KentWebのポストメールV4.11(postmail.cgi)の改造
498行付近(V4.3は513行)の Return Path を匿名から自分に変更します。sendmail 起動パラメータに 「-f '$mailto'」 を追加しました。
具体的には498行(V4.3は513行)付近を改造します。バージョンは違っても考え方は同じです。
# sendmail起動 open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
に次のように-f '$mailto'を追加します。
# sendmail起動 open(MAIL,"| $sendmail -t -i -f '$mailto'") || &error("メール送信失敗");
この$mailtoというのは、管理人のメールアドレスです。この -f パラメータが無いとReturn-Pathにanonymous@*****.***が設定されるようです。anonymousというのは匿名のことです。
この改造でメーラーデーモン(MAILER-DAEMON)からエラーメールが発信者(管理人)に戻って来るので、相手のメールアドレスが有効か無効かがすぐにわかります。現在はセキュリティの面でCCで送信者にメールを送るのをやめています。
KentWebのWeb-MartV1.61(mart_order.cgi)の改造
KentWebの買い物カゴシステムWeb-Martは無料で大変使い易いと思います。Web-MartV1.7も同様です。バージョンは違っても考え方は同じです。
mart_order.cgiの820行付近の Return Path を匿名から自分に変更します。sendmail 起動パラメータに「 -f '$master'」追加。
具体的には820行付近の
# sendmail起動 open(MAIL,"| $sendmail -t") || &error("メール送信失敗");
に次のように-f '$mailto'を追加します。
# sendmail起動 open(MAIL,"| $sendmail -t -f '$master'") || &error("メール送信失敗");
この$masterというのは、管理人のメールアドレスです。この -f パラメータが無いとReturn-Pathにanonymous@*****.***が設定されるようです。anonymousというのは匿名のことです。
この改造でメーラーデーモン(MAILER-DAEMON)からエラーメールが発信者(管理人)に戻って来るので、相手のメールアドレスが有効か無効かがすぐにわかります。