#! /usr/bin/perl # # メール送信CGI # Scripting by murayama@chichibu.co.jp require 'jcode.pl'; ############ # 変数設定 # ############ $request_method = $ENV{"REQUEST_METHOD"}; #リクエストメソッド $sendmail = '/usr/sbin/sendmail'; #sendmailのパス $mailto = 'info@asaumi.com'; #メール送信先 #$mailto = 'murayama@i-surf.co.jp'; #メール送信先 $bcc = 'order@i-surf.co.jp'; $subject = '[お問い合わせ]'; #サブジェクト ########################## # 入力メソッドによる選択 # ########################## sub readData { local(*queryString) = @_ if @_; if ($request_method eq "GET") {&readGetData(*queryString);} if ($request_method eq "POST") {&readPostData(*queryString);} return 1; } ########################### # method=GET の場合の処理 # ########################### sub readGetData { local(*queryString) = @_ if @_; $queryString = $ENV{"QUERY_STRING"}; #if ($queryString eq "") { &error('Error','Data is Empty?'); } return 1; } ############################ # method=POST の場合の処理 # ############################ sub readPostData { local(*queryString) = @_ if @_; local($contentLength); # 環境変数の読みこみ $contentLength = $ENV{"CONTENT_LENGTH"}; if ($contentLength) { read(STDIN,$queryString,$contentLength); } return 1; } ######################## # フォームデータの分割 # ######################## sub parseData { local(*queryString) = @_ if @_; local($key,$value,$curString,@tmpArray,$aName); # 文字列の分割 @tmpArray = split(/&/,$queryString); # 文字列が無くなるまでループ foreach $curString (@tmpArray) { ($key,$value) = split(/=/,$curString); if ($key ne 'start') { $key2 = $key; $value2 = $value; $FORM2{$key} = $value; } &decodeData(*key); &decodeData(*value); $FORM{$key} = $value; } return 1; } ############################ # フォームデータのデコード # ############################ sub decodeData { local(*queryString) = @_ if @_; # 変換 $queryString =~ s/\+/ /g; $queryString =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("c",hex($1))/ge; if ($queryString =~ /\r\n/) { $queryString =~ s/\r\n/\n/g; } if ($queryString =~ /\n/) { $queryString =~ s/\n/\r/g; } &jcode'convert(*value,'sjis'); return 1; } ############## # エラー処理 # ############## sub error { print <<"EOT";

$_[0]

$_[1]

もう一度ご確認の上、入力しなおしてください。
ブラウザの[戻る]ボタンを押して前の画面に移動してください.

EOT &html_foot; exit; } # sub error end ################ # 入力チェック # ################ sub check { if (!$FORM{'name'}) { &error('Error.','お名前が入力されていません。') } elsif (!$FORM{'ruby'}) { &error('Error.','フリガナが入力されていません。') } elsif (!$FORM{'email'}) { &error('Error.','メールアドレスが入力されていません。') } elsif (!$FORM{'tel'}) { &error('Error.','電話番号が入力されていません。') } elsif (!$FORM{'subject'}) { &error('Error.','お問い合わせタイトルが入力されていません。') } } ############ # 入力画面 # ############ sub input { $qno = $FORM{'qn'}; print <<"EOT";

お名前 (必須)
フリガナ (必須)
e-mail (必須)
電話番号 (必須)
お問い合せ物件 (複数の場合は「,」で区切ってご記入下さい)
お問い合せタイトル (必須)
お問い合せ内容
必要事項に入力の上、送信ボタンをお押し下さい。ご送信後に送信内容のページが表示されましたらブラウザの戻るボタンでお戻り下さい。
EOT } #sub input end ############## # メール送信 # ############## sub sendmail { if (!$FORM{'email'}) {$FORM{'email'} = $mailto;} if (!open(OUT,"| $sendmail $mailto $bcc")) { &error('Error.','メールは送信されませんでした。') } &jcode'convert(*subject,'jis'); print OUT 'X-Mailer: CMS_Form_Mail' ."\n"; print OUT "To: $mailto\n"; print OUT "From: $FORM{'email'}\n"; print OUT "Subject: $subject\n"; print OUT "Content-Type: text/plain; charset=ISO-2022-JP\n"; print OUT "\n\n"; $message = "浅海住建 御中 Webからの問い合わせです。\n"; $message .= "----------------------------------------------------\n\n"; $message .= "-- <<お問い合わせ送信者>> ----------------------\n\n"; $message .= "お名前 :$FORM{'name'} 様\n"; $message .= "フリガナ:$FORM{'ruby'}\n"; $message .= "E-mail :$FORM{'email'}\n"; $message .= "電話番号:$FORM{'tel'}\n"; $message .= "----------------------------------------------------\n\n"; $message .= "-- <<お問い合わせ物件>> ------------------------\n\n"; $message .= "物件No :$FORM{'qno'}\n"; $message .= "タイトル:$FORM{'ruby'}\n"; if (!$FORM{'text'}) { $FORM{'text'} = '記入なし'} $FORM{'text'} =~ s/\;/\n/g; $message .= "お問い合わせ内容:\n"; $message .= "$FORM{'text'}\n"; $message .= "----------------------------------------------------\n\n"; &jcode'convert(*message,'jis'); print OUT "$message"; close OUT; } # sub sendmail end ################ # 送信終了画面 # ################ sub thanks_html { ✓ print <<"EOT";

お問い合わせありがとうございます。
以下の内容で送信いたしましたのでご確認ください。

トップページへ戻る

お名前 $FORM{'name'}
フリガナ $FORM{'ruby'}
e-mail $FORM{'email'}
電話番号 $FORM{'tel'}
お問い合せ物件 $FORM{'qno'}
お問い合せタイトル $FORM{'subject'}
お問い合せ内容 $FORM{'text'}
EOT } #sub thanks_html end ################ # HTMLヘッダー # ################ sub html_head { print "Content-type: text/html\n\n"; print <<'EOT'; 浅海住建 - お問い合せ -
浅海建設
お問い合せ
お問い合せ> 前のページへ戻る
EOT } ################ # HTMLフッター # ################ sub html_foot { print <<'EOT';
Copyright(C)2001 Asaumi Jyuken. All Rights Reserved.
EOT } ################ # メインループ # ################ &readData(*data); # include "readGetData" "readPostData" &parseData(*data,*dataDict); # include "decodeData" if ($FORM{'action'} eq ' 送 信 ') { &sendmail; &html_head; &thanks_html; &html_foot; } else { &html_head; &input; &html_foot; } exit;