このとき、設置してあるCGIをいじらず、メールフォームの中の記述をちょっと変えるだけで、「宛先」や「メールの件名」まで変えられるようにしたいのです。
これってどうすればできるのでしょうか。初心者にも分かるようにお教え頂ければ幸いです。
http://www.01club.org/tech/cgi0003.html
CGIを利用したフォームメールの作成
上記にサンプルのCGIがあります。
ただ、宛先を変えられるようにすると、スパムを送信されたり、いたずらメールを他人に送信される可能性もあることに注意して下さい。
従って、通常は宛先のメールアドレスはCGI中で設定して、利用者が変更できないようにした方が、本当は安全です。
うむむ?
なんか会員限定?
先程のページはそのプロバイダ会員のみのサービスでした。ごめんなさい。
基本的にHTMLファイル上にて文面は変更できるものが多いみたいです。
ごめんなさい。
「具体的に」どうすればいいのかお教え頂ければ幸いです。
フォームズ - メールフォーム無料レンタル サービス
とりあえず、こういうところを利用してはいかがでしょうか?
よそのサーバのcgiを借りて、自分のサイトにはフォームつきのページのみを置く方法です。ここはhtmlも自動で作ってくれるようです。
レンタルサイトは、ぐぐればもっといろいろありますよ。
なるほど。こういうのもあるのですね。ふむふむ。
他にも何かありましたら幸いです。
http://www.hatena.ne.jp/1095202144#
メールフォームの設置の仕方を教えてください。おそらくCGIを設置して、さらにそのメールフォームをページ内に記述することになると思うのですが…。 このとき、設置し.. - 人力検索はてな
具体的なCGIを紹介できませんが、これを実現しようとした場合、通常はメールの内容だけをHTTPでPOSTしているところを宛先、件名もPOSTするように変更(もしくはもともとそれが可能なものを利用)することになります。
設定する宛先や件名は<input type=”hidden” 〜>というタグを使って表に見えないようにすることになります。
が、この方法の場合、悪意を持った人が以下の操作で迷惑メールを送信することが可能になってしまいます。
・表示されたメールフォームのソースを保存
・保存されたHTMLの宛先部分とフォームのアクションを書き換え
・書き換えたHTMLからメールの送信
ですから、
宛先や件名をCGIの中で記述、
もしくは
宛先や件名をCGIの外部ファイルで定義できるもの
を選択されたほうがいいです。
(周囲に迷惑をかけないためにも。)
なるほど…。ふむふむ。勉強になります。
CGI配布サイト AppsPage
のサイトの
が便利ですよ。
カスタマイズはめちゃくちゃ楽です。
スタイルシートも使えるし、HTMLわかってれば普通のページと同じにできるし。
あと、CGIファイルではなく****.iniってファイルの中の設定変えれば
件名・あて先・二重送信防止などなど、いろいろそのファイル一つで制御できます。
送られてくるメールと相手に返すメールの内容は、それぞれ1ファイルずつあるので
その中身の/?*****?/(****は任意)を自由に
いじればやりたいほうだいできます。
無料の中ではピカイチな機能をもったフォームメールだと思いますよ。
ふむふむ。参考になりました。ありがとうございます!
http://www.kohgakusha.co.jp/books/detail/4-87593-876-4
書籍情報―かんたんCGIプログラミング
一番最初の回答からですと、
# Subject
$subject = $param{’Subject’};
if ($subject eq ””) {
&error(’Subjectが未入力です。’);
}
# 宛先
$toaddr = $param{’ToAddr’};
if ($toaddr eq ””) {
&error(’宛先のメールアドレスが未入力です。’);
}
# 宛先メールアドレスのチェック
if ($toaddr !~ /[-_0-9a-z]+¥@[-_0-9a-z]+¥.[-_0-9a-z.]+/) {
&error(’宛先のメールアドレスに誤りがあります。’);
}
# 差出人
$fromaddr = $param{’FromAddr’};
if ($fromaddr eq ””) {
&error(’差出人のメールアドレスが未入力です。’);
}
# 差出人メールアドレスのチェック
if ($fromaddr !~ /[-_0-9a-z]+¥@[-_0-9a-z]+¥.[-_0-9a-z.]+/) {
&error(’差出人のメールアドレスに誤りがあります。’);
}
のプログラムで、
$subjectに題名を、$toaddr に送り先を代入してあげれば、いいでしょう。
パラメーターから代入が済んだ後に代入するといいでしょう。
かんたんCGIプログラミング
野戸 美江 著
2000年 9月29日発売
B5判 160ページ
価格 ¥1,575(本体 ¥1,500)
雑誌コード 61478-74
ISBN4-87593-876-4 C9455 ¥1500E
こちらで勉強すると良いでしょう。
では。
え?
これってCGIの中の表記、ということですよね?
カンタン フォームメールサービス 『自動返信機能付きメールフォーム無料レンタル』
通常宛先限定の場合はCGIで宛先を設定します。また、自分でCGIを設置する場合はsendmailのパス等を自分で設定する必要があるのでCGIをいじる必要があります。
自分で設置しないのでしたらレンタルメールフォームサービスを使うのをお勧めします。
また、フォームを
input type=”text” ではなく select にすればフォームの変更だけで宛先を変えることができます。
例:宛先:<select name=”toaddr”>
<option value=宛先のメールアドレス>宛先のメールアドレス</option></select>
この例ですと”toaddr”に送信先のアドレスが送られます。
ふむむむ。なるほ、ど…?
ありがとうございます。
参考になりました。
さらに詳しく分かりましたら幸いです。
ふむふむ。ありがとうございます。
参考になりました。
CGI RESCUE - ネットサーフレスキューWeb裏技
改造が必要ですが、上記で配布されている「webform」で可能ではないかと思います。
宛先や件名はCGIの中に書かれていますが、その部分をフォームからデータを受けるようにすれば動作すると思います。「フォームからデータを受ける」という部分ですが、アドレスを直接入力する、リストが表示されるようにしておく等が考えられます。
CGIROOM
先述されていますが、だれでも使えてしまうので、ページ閲覧のためのパスワード制限をかけておいたほうがいいかと思います。
「CGI機能拡張」の中に、既存のCGIにパスワード制限を設けるためのCGIモジュールがあります。
あとは、ロボット型サーチエンジンに拾われないように”ROBOTS.TXT”を同じディレクトリに入れておくといったことをしておいた方がいいと思います。
ふむむむ。参考になりました。ありがとうございます。
http://www.int-connect.com/decodenew/
メールフォームのデコード
cgiなしのメールフォーム設置の方法です。
でも、文字化けする可能性があるようなのが、たまに傷ですが。
ありがとうございます。参考になりました。
ありがとうございます。
ちなみに宛先をいじるのは管理者である自分です。
閲覧者ではないですよ?