#!/usr/bin/perl # NTパス用 $0 =~ /^(.*[\\])/; chdir($1); # SENDMAILのパス指定 #$sendmail = '/usr/sbin/sendmail'; use Net::SMTP; # SMTPサーバー $smtpsvr = '211.121.168.179'; # 受信メールアドレスの指定 #$to = 'info@chubugakki.ac.jp'; $to = 'nyugaku@chubugakki.ac.jp '; # 件名設定 $subj = "学校見学申\し込みフォーム:<携帯>"; $my_subj = "中部楽器技術専門学校 学校見学申\し込み控え"; # require './cgi-lib.pl'; require 'jcode.pl'; if($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); } else { $in = $ENV{'QUERY_STRING'}; } @formdata = split(/&/,$in); foreach(@formdata) { ($key,$value) = split(/=/, $_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; &jcode'h2z_sjis(\$value); #半角→全角の変換 &jcode::convert(\$value,'sjis'); $value =~ s//>/g; $value =~ s/\"/"/g; $value =~ s/\n//g; $value =~ s/\,/‚/g; $in{$key} .= "\0" if(defined($in{$key})); $in{$key} .= $value; } # &ReadParse(*in); $mode = $in{'mode'}; $name = $in{'name'}; $furi = $in{'furi'}; $sex = $in{'sex'}; $birth_y = $in{'birth_y'}; $birth_m = $in{'birth_m'}; $birth_d = $in{'birth_d'}; $zip = $in{'zip'}; $ken = $in{'ken'}; $city = $in{'city'}; $add = $in{'add'}; $bld = $in{'bld'}; $tel = $in{'tel'}; $mail = $in{'mail'}; $job = $in{'job'}; $school = $in{'school'}; $nengo = $in{'nengo'}; $year = $in{'year'}; $kind = $in{'kind'}; $category = $in{'category'}; $double = $in{'double'}; $kibou1 = $in{'kibou1'}; $kibou2 = $in{'kibou2'}; $kibou3 = $in{'kibou3'}; $tuki = $in{'tuki'}; $person = $in{'person'}; $question = $in{'question'}; # ------------------------- 処理分岐 ----------------------------- if ( $mode eq 'second' ) { &second; } elsif ( $mode eq 'check' ){ &form_check; } elsif (( $mode eq 'back1' ) or ( $mode eq "" )){ &first; } elsif ( $mode eq 'send' ) { &send_mail; } else { &msg; } # ------------- 第 1フォーム表示 ---------------------- sub first{ $skin = 'mailform.htm'; if ( !open(IN,$skin)){ &msg('エラー!! ', 'スキンファイルのオープンに失敗しました。 '); } @SKIN = ; close (IN); $skin_html = ''; foreach (@SKIN) { $skin_html .= "$_"; } $skin_html =~ s/%name%/$name/; $skin_html =~ s/%furi%/$furi/; $skin_html =~ s/%sex%/$sex/; $skin_html =~ s/%birth_y%/$birth_y/; $skin_html =~ s/%birth_m%/$birth_m/; $skin_html =~ s/%birth_d%/$birth_d/; $skin_html =~ s/%zip%/$zip/; $skin_html =~ s/%ken%/$ken/; $skin_html =~ s/%city%/$city/; $skin_html =~ s/%add%/$add/; $skin_html =~ s/%bld%/$bld/; $skin_html =~ s/%tel%/$tel/; $skin_html =~ s/%mail%/$mail/; print "Content-type: text/html\n\n"; print "$errmsg"; print "
"; print $skin_html; exit ; } # ------------- 第 2フォーム表示 ---------------------- sub second{ $skin = 'mailform2.htm'; if ( !open(IN,$skin)){ &msg('エラー!! ', 'スキンファイルのオープンに失敗しました。 '); } # +++++ 未入力チェック +++++ if ($name eq ""){ $errmsg = "お名前を入力してください。"; &first; exit; } if ($furi eq ""){ $errmsg = "フリガナを入力してください。"; &first; exit; } if ($sex eq ""){ $errmsg = "性別を選択してください。"; &first; exit; } if ($birth_y eq ""){ $errmsg = "生年月日を入力してください。"; &first; exit; } if ($city eq ""){ $errmsg = "市区郡町村を入力してください。"; &first; exit; } if ($add eq ""){ $errmsg = "字・番地を入力してください。"; &first; exit; } if ($tel eq ""){ $errmsg = "連絡先電話番号を入力してください。"; &first; exit; } if ($mail eq ""){ $errmsg = "メールアドレスを入力してください。"; &first; exit; } if ($mail ne ""){ if ($mail && $mail !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) { $errmsg = "メールアドレスの書式が不正です:$mail"; &first($errmsg); exit; } } # +++++ フォーム表示 ++++++ @SKIN = ; close (IN); $skin_html = ''; foreach (@SKIN) { $skin_html .= "$_"; } $skin_html =~ s/%name%/$name/; $skin_html =~ s/%furi%/$furi/; $skin_html =~ s/%sex%/$sex/; $skin_html =~ s/%birth_y%/$birth_y/; $skin_html =~ s/%birth_m%/$birth_m/; $skin_html =~ s/%birth_d%/$birth_d/; $skin_html =~ s/%zip%/$zip/; $skin_html =~ s/%ken%/$ken/; $skin_html =~ s/%city%/$city/; $skin_html =~ s/%add%/$add/; $skin_html =~ s/%bld%/$bld/; $skin_html =~ s/%tel%/$tel/; $skin_html =~ s/%mail%/$mail/; $skin_html =~ s/%job%/$job/; $skin_html =~ s/%school%/$school/; $skin_html =~ s/%nengo%/$nengo/; $skin_html =~ s/%year%/$year/; $skin_html =~ s/%kind%/$kind/; $skin_html =~ s/%category%/$category/; $skin_html =~ s/%double%/$double/; $skin_html =~ s/%kibou1%/$kibou1/; $skin_html =~ s/%kibou2%/$kibou2/; $skin_html =~ s/%kibou3%/$kibou3/; $skin_html =~ s/%tuki%/$tuki/; $skin_html =~ s/%person%/$person/; $skin_html =~ s/%question%/$question/; print "Content-type: text/html\n\n"; print "$errmsg"; print "
"; print $skin_html; exit ; } # ------------- 最終確認表示 ------------------------- sub form_check{ $skin = 'check.htm'; if ( !open(IN,$skin)){ &msg('エラー!! ', 'スキンファイルのオープンに失敗しました。 '); } # +++++ 未入力チェック +++++ if ($job eq ""){ $errmsg = "学生・ご職業を入力してください。"; &second; exit; } if ($school eq ""){ $errmsg = "卒業又は、卒業見込みの学校名を入力してください。"; &second; exit; } if ($year eq ""){ $errmsg = "卒業又は、卒業見込みの年を入力してください。"; &second; exit; } if ($category eq ""){ $errmsg = "希望学科を入力してください。"; &second; exit; } # +++++ フォーム表示 ++++++ @SKIN = ; close (IN); $skin_html = ''; foreach (@SKIN) { $skin_html .= "$_"; } $skin_html =~ s/%name%/$name/; $skin_html =~ s/%furi%/$furi/; $skin_html =~ s/%sex%/$sex/; $skin_html =~ s/%birth_y%/$birth_y/; $skin_html =~ s/%birth_m%/$birth_m/; $skin_html =~ s/%birth_d%/$birth_d/; $skin_html =~ s/%zip%/$zip/; $skin_html =~ s/%ken%/$ken/; $skin_html =~ s/%city%/$city/; $skin_html =~ s/%add%/$add/; $skin_html =~ s/%bld%/$bld/; $skin_html =~ s/%tel%/$tel/; $skin_html =~ s/%mail%/$mail/; $skin_html =~ s/%job%/$job/; $skin_html =~ s/%school%/$school/; $skin_html =~ s/%nengo%/$nengo/; $skin_html =~ s/%year%/$year/; $skin_html =~ s/%kind%/$kind/; $skin_html =~ s/%category%/$category/; $skin_html =~ s/%double%/$double/; $skin_html =~ s/%kibou1%/$kibou1/; $skin_html =~ s/%kibou2%/$kibou2/; $skin_html =~ s/%kibou3%/$kibou3/; $skin_html =~ s/%tuki%/$tuki/; $skin_html =~ s/%person%/$person/; $skin_html =~ s/%question%/$question/; $skin_html =~ s/%name1%/$name/; $skin_html =~ s/%furi1%/$furi/; $skin_html =~ s/%sex1%/$sex/; $skin_html =~ s/%birth_y1%/$birth_y/; $skin_html =~ s/%birth_m1%/$birth_m/; $skin_html =~ s/%birth_d1%/$birth_d/; $skin_html =~ s/%zip1%/$zip/; $skin_html =~ s/%ken1%/$ken/; $skin_html =~ s/%city1%/$city/; $skin_html =~ s/%add1%/$add/; $skin_html =~ s/%bld1%/$bld/; $skin_html =~ s/%tel1%/$tel/; $skin_html =~ s/%mail1%/$mail/; $skin_html =~ s/%job1%/$job/; $skin_html =~ s/%school1%/$school/; $skin_html =~ s/%nengo1%/$nengo/; $skin_html =~ s/%year1%/$year/; $skin_html =~ s/%kind1%/$kind/; $skin_html =~ s/%category1%/$category/; $skin_html =~ s/%double1%/$double/; $skin_html =~ s/%kibou11%/$kibou1/; $skin_html =~ s/%kibou21%/$kibou2/; $skin_html =~ s/%kibou31%/$kibou3/; $skin_html =~ s/%tuki1%/$tuki/; $skin_html =~ s/%person1%/$person/; $skin_html =~ s/%question1%/$question/; $skin_html =~ s/%name2%/$name/; $skin_html =~ s/%furi2%/$furi/; $skin_html =~ s/%sex2%/$sex/; $skin_html =~ s/%birth_y2%/$birth_y/; $skin_html =~ s/%birth_m2%/$birth_m/; $skin_html =~ s/%birth_d2%/$birth_d/; $skin_html =~ s/%zip2%/$zip/; $skin_html =~ s/%ken2%/$ken/; $skin_html =~ s/%city2%/$city/; $skin_html =~ s/%add2%/$add/; $skin_html =~ s/%bld2%/$bld/; $skin_html =~ s/%tel2%/$tel/; $skin_html =~ s/%mail2%/$mail/; $skin_html =~ s/%job2%/$job/; $skin_html =~ s/%school2%/$school/; $skin_html =~ s/%nengo2%/$nengo/; $skin_html =~ s/%year2%/$year/; $skin_html =~ s/%kind2%/$kind/; $skin_html =~ s/%category2%/$category/; $skin_html =~ s/%double2%/$double/; $skin_html =~ s/%kibou12%/$kibou1/; $skin_html =~ s/%kibou22%/$kibou2/; $skin_html =~ s/%kibou32%/$kibou3/; $skin_html =~ s/%tuki2%/$tuki/; $skin_html =~ s/%person2%/$person/; $skin_html =~ s/%question2%/$question/; print "Content-type: text/html\n\n"; print $skin_html; exit ; } # ------------- メッセージ表示 ----------------------- sub msg { my ($title, $msg) = @_; print "Content-type: text/html\n\n"; print < $title
$msg

EOH exit ; } # ------------- メール送信 --------------------------- sub send_mail{ $subj = &jcode::jis($subj); $my_subj = &jcode::jis($my_subj); # Windows仮想SMTPの..2つ存在するメールアドレスへの対処 if($to =~ /docomo\.ne\.jp/) { ($acount, $tld) = split(/\@/, $to); $acount = '"' . $acount . '"'; $to = $acount . '@' . $tld; } if($mail =~ /docomo\.ne\.jp/) { ($acount, $tld) = split(/\@/, $mail); $acount = '"' . $acount . '"'; $mail = $acount . '@' . $tld; } # +++++ メイン送信 +++++ $send_head = ''; $send_head .= "X-Mailer: chubugakki.ac.jp\n"; $send_head .= "To: $to\n"; $send_head .= "From: $mail\n"; # $subject を JIS に変換 use Jcode; &Jcode::convert(\$subj,'jis'); $subj = jcode($subj)->mime_encode; $send_head .= "Subject: $subj\n"; $send_head .= "MIME-Version: 1.0\n"; $send_head .= "Content-Transfer-Encoding: 7bit\n"; #$send_head .= "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n"; $send_head .= "Content-Type: text/plain\; charset=\"Shift_JIS\"\n\n"; # SMTPへ接続 unless($smtp = Net::SMTP->new("$smtpsvr")) { &msg('エラー!!', 'SMTP接続エラー'); } # SMTPサーバー、SMTPサーバのドメインを指定 $smtp->mail("$mail");#送信元の指定 $smtp->to("$to"); #宛先の指定 $smtp->data(); $smtp->datasend("$send_head"); # メールヘッダの送信 $smtp->datasend("名前:$name\n"); # 本文の送信 $smtp->datasend("フリガナ:$furi\n"); # 本文の送信 $smtp->datasend("性別: $sex\n"); # 本文の送信 $smtp->datasend("生年月日: $birth_y年 $birth_m月 $birth_d日 \n"); # 本文の送信 $smtp->datasend("郵便番号: $zip\n"); # 本文の送信 $smtp->datasend("住所: $ken$city$add$bld\n"); # 本文の送信 $smtp->datasend("電話番号: $tel\n"); # 本文の送信 $mail =~ s/\"/”/g;#ダブルクォーテーションを使用する特殊メールアドレス対策 $smtp->datasend("メールアドレス: $mail\n"); # 本文の送信 $mail =~ s/”/\"/g;#ダブルクォーテーションを使用する特殊メールアドレス対策 $smtp->datasend("職業: $job\n"); # 本文の送信 $smtp->datasend("学年: $person年生\n"); # 本文の送信 $smtp->datasend("学歴: $nengo$year年 $school $kind\n"); # 本文の送信 $smtp->datasend("希望学科:$category\n"); # 本文の送信 $smtp->datasend("楽器総合と併せて希望:$double\n"); # 本文の送信 $smtp->datasend("希望日(第1希望):$kibou1\n"); # 本文の送信 $smtp->datasend("希望日(第2希望):$kibou2\n"); # 本文の送信 $smtp->datasend("希望日(第3希望):$kibou3\n"); # 本文の送信 $smtp->datasend("付き添い人:$tuki \n"); # 本文の送信 $smtp->datasend("問い合わせ内容:$question\n"); # 本文の送信 $smtp->dataend(); # データの終わり、メール送信 $smtp->quit; # SMTP接続の終了 # open(MAIL, "| $sendmail -t -fwebmaster"); # print MAIL "To: $to\n"; # print MAIL "Subject: $subj\n"; # print MAIL "Content-type: text/plain;\n\n"; # print MAIL "名前:$name\n"; # print MAIL "フリガナ:$furi\n"; # print MAIL "性別: $sex\n"; # print MAIL "郵便番号: $zip\n"; # print MAIL "住所: $ken$city$add$bld\n"; # print MAIL "電話番号: $tel\n"; # print MAIL "メールアドレス: $mail\n"; # print MAIL "学歴: $nengo$year年 $school $kind\n"; # print MAIL "第1希望学科:$category1\n"; # print MAIL "第2希望学科:$category2\n"; #close(MAIL); # +++++ 控え送信 +++++ $send_head = ''; $send_head .= "X-Mailer: chubugakki.ac.jp\n"; $send_head .= "To: $mail\n"; $send_head .= "From: $to\n"; # $subject を JIS に変換 use Jcode; &Jcode::convert(\$subj,'jis'); $subj = jcode($subj)->mime_encode; $send_head .= "Subject: $subj\n"; $send_head .= "MIME-Version: 1.0\n"; $send_head .= "Content-Transfer-Encoding: 7bit\n"; #$send_head .= "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n"; $send_head .= "Content-Type: text/plain\; charset=\"Shift_JIS\"\n\n"; # SMTPへ接続 unless($smtp = Net::SMTP->new("$smtpsvr")) { &msg('エラー!!', 'SMTP接続エラー'); } # SMTPサーバー、SMTPサーバのドメインを指定 $smtp->mail("$to");#送信元の指定 $smtp->to("$mail"); #宛先の指定 $smtp->data(); $smtp->datasend("$send_head"); # メールヘッダの送信 $smtp->datasend("$name 様\n\n"); # 本文の送信 $smtp->datasend("この度は、お申\し込みいただきまして誠にありがとうございます。\n"); # 本文の送信 $smtp->datasend("このメールはあなた様からお送りいただきました、応募控えでございます。\n"); # 本文の送信 #$smtp->datasend("資料発送は、担当が確認後、ご連絡先にお送りさせていただきます。\n\n\n"); # 本文の送信 $smtp->datasend("--------- 資料請求控え -------------\n\n"); # 本文の送信 $smtp->datasend("名前:$name\n"); # 本文の送信 $smtp->datasend("フリガナ:$furi\n"); # 本文の送信 $smtp->datasend("性別: $sex\n"); # 本文の送信 $smtp->datasend("生年月日: $birth_y年 $birth_m月 $birth_d日 \n"); # 本文の送信 $smtp->datasend("郵便番号: $zip\n"); # 本文の送信 $smtp->datasend("住所: $ken$city$add$bld\n"); # 本文の送信 $smtp->datasend("電話番号: $tel\n"); # 本文の送信 $mail =~ s/\"/”/g;#ダブルクォーテーションを使用する特殊メールアドレス対策 $smtp->datasend("メールアドレス: $mail\n"); # 本文の送信 $mail =~ s/”/\"/g;#ダブルクォーテーションを使用する特殊メールアドレス対策 $smtp->datasend("職業: $job\n"); # 本文の送信 $smtp->datasend("学年: $person年生\n"); # 本文の送信 $smtp->datasend("学歴: $nengo$year年 $school $kind\n"); # 本文の送信 $smtp->datasend("希望学科:$category\n"); # 本文の送信 $smtp->datasend("楽器総合と併せて希望:$double\n"); # 本文の送信 $smtp->datasend("希望日(第1希望):$kibou1\n"); # 本文の送信 $smtp->datasend("希望日(第2希望):$kibou2\n"); # 本文の送信 $smtp->datasend("希望日(第3希望):$kibou3\n"); # 本文の送信 $smtp->datasend("付き添い人:$tuki \n"); # 本文の送信 $smtp->datasend("問い合わせ内容:$question\n"); # 本文の送信 $smtp->dataend(); # データの終わり、メール送信 $smtp->quit; # SMTP接続の終了 # open(MAIL, "| $sendmail -t -fwebmaster"); # print MAIL "To: $mail\n"; # print MAIL "Subject: $my_subj\n"; # print MAIL "Content-type: text/plain;\n\n"; # print MAIL "$name 様\n\n"; # print MAIL "この度は、中部楽器技術専門学校に資料請求をいただきまして、誠にありがとうございます。\n"; # print MAIL "このメールはあなた様からお送りいただきました、資料請求の控えでございます。\n"; # print MAIL "資料発送は、担当が確認後、ご連絡先にお送りさせていただきます。\n\n\n"; # print MAIL "--------- 資料請求控え -------------\n\n"; # print MAIL "名前:$name\n"; # print MAIL "フリガナ:$furi\n"; # print MAIL "性別: $sex\n"; # print MAIL "郵便番号: $zip\n"; # print MAIL "住所: $ken$city$add$bld\n"; # print MAIL "電話番号: $tel\n"; # print MAIL "メールアドレス: $mail\n"; # print MAIL "学歴: $nengo$year年 $school $kind\n"; # print MAIL "第1希望学科:$category1\n"; # print MAIL "第2希望学科:$category2\n\n"; # print MAIL "------------------------------------\n"; # close(MAIL); # ++++++ 送信完了メッセージ+++++ print "Content-type: text/html\n\n"; print <<"EOH"; 申\し込み:送信完了
送信完了


申\し込み内容を承りました。
あなた様に控えを送信いたしましたので、ご確認ください。

戻る
EOH exit; }