#!/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/\"/"/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'};
$zip = $in{'zip'};
$ken = $in{'ken'};
$city = $in{'city'};
$add = $in{'add'};
$bld = $in{'bld'};
$tel = $in{'tel'};
$mail = $in{'mail'};
$nengo = $in{'nengo'};
$year = $in{'year'};
$school = $in{'school'};
$kind = $in{'kind'};
$category1 = $in{'category1'};
$category2 = $in{'category2'};
$baitai1 = $in{'baitai1'};
$baitai2 = $in{'baitai2'};
$koshukai = $in{'koshukai'};
$DM = $in{'DM'};
$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/%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 ($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 = "メールアドレスの書式が不正です";
&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/%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/%nengo%/$nengo/;
$skin_html =~ s/%year%/$year/;
$skin_html =~ s/%school%/$school/;
$skin_html =~ s/%kind%/$kind/;
$skin_html =~ s/%catecory1%/$category1/;
$skin_html =~ s/%category2%/$category2/;
$skin_html =~ s/%name1%/$name/;
$skin_html =~ s/%furi1%/$furi/;
$skin_html =~ s/%sex1%/$sex/;
$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/%baitai1%/$baitai1/;
$skin_html =~ s/%baitai2%/$baitai2/;
$skin_html =~ s/%koshukai%/$koshukai/;
$skin_html =~ s/%DM%/$DM/;
$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 ($school eq ""){
$errmsg = "卒業又は、卒業見込みの学校名を入力してください。";
&second;
exit;
}
if ($year 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/%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/%nengo%/$nengo/;
$skin_html =~ s/%year%/$year/;
$skin_html =~ s/%school%/$school/;
$skin_html =~ s/%kind%/$kind/;
$skin_html =~ s/%category1%/$category1/;
$skin_html =~ s/%category2%/$category2/;
$skin_html =~ s/%baitai1%/$baitai1/;
$skin_html =~ s/%baitai2%/$baitai2/;
$skin_html =~ s/%koshukai%/$koshukai/;
$skin_html =~ s/%DM%/$DM/;
$skin_html =~ s/%question%/$question/;
$skin_html =~ s/%name1%/$name/;
$skin_html =~ s/%furi1%/$furi/;
$skin_html =~ s/%sex1%/$sex/;
$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/%nengo1%/$nengo/;
$skin_html =~ s/%year1%/$year/;
$skin_html =~ s/%school1%/$school/;
$skin_html =~ s/%kind1%/$kind/;
$skin_html =~ s/%category11%/$category1/;
$skin_html =~ s/%category21%/$category2/;
$skin_html =~ s/%baitai11%/$baitai1/;
$skin_html =~ s/%baitai21%/$baitai2/;
$skin_html =~ s/%koshukai1%/$koshukai/;
$skin_html =~ s/%DM1%/$DM/;
$skin_html =~ s/%question1%/$question/;
$skin_html =~ s/%name2%/$name/;
$skin_html =~ s/%furi2%/$furi/;
$skin_html =~ s/%sex2%/$sex/;
$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/%nengo2%/$nengo/;
$skin_html =~ s/%year2%/$year/;
$skin_html =~ s/%school2%/$school/;
$skin_html =~ s/%kind2%/$kind/;
$skin_html =~ s/%category12%/$category1/;
$skin_html =~ s/%category22%/$category2/;
$skin_html =~ s/%baitai12%/$baitai12/;
$skin_html =~ s/%baitai22%/$baitai22/;
$skin_html =~ s/%koshukai2%/$koshukai2/;
$skin_html =~ s/%DM2%/$DM/;
$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("郵便番号: $zip\n"); # 本文の送信
$smtp->datasend("住所: $ken$city$add$bld\n"); # 本文の送信
$smtp->datasend("電話番号: $tel\n"); # 本文の送信
$smtp->datasend("メールアドレス: $mail\n"); # 本文の送信
$smtp->datasend("電話番号: $tel\n"); # 本文の送信
$smtp->datasend("学歴: $nengo$year年 $school $kind\n"); # 本文の送信
$smtp->datasend("第1希望学科:$category1\n"); # 本文の送信
$smtp->datasend("第2希望学科:$category2\n"); # 本文の送信
$smtp->datasend("本校を知った媒体:$baitai1\n"); # 本文の送信
$smtp->datasend("その他:$baitai2\n"); # 本文の送信
$smtp->datasend("講習会希望:$koshukai\n"); # 本文の送信
$smtp->datasend("メールによる情報:$DM\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("郵便番号: $zip\n"); # 本文の送信
$smtp->datasend("住所: $ken$city$add$bld\n"); # 本文の送信
$smtp->datasend("電話番号: $tel\n"); # 本文の送信
$smtp->datasend("メールアドレス: $mail\n"); # 本文の送信
$smtp->datasend("電話番号: $tel\n"); # 本文の送信
$smtp->datasend("学歴: $nengo$year年 $school $kind\n"); # 本文の送信
$smtp->datasend("第1希望学科:$category1\n"); # 本文の送信
$smtp->datasend("第2希望学科:$category2\n"); # 本文の送信
$smtp->datasend("本校を知った媒体:$baitai1\n"); # 本文の送信
$smtp->datasend("その他:$baitai2\n"); # 本文の送信
$smtp->datasend("講習会希望:$koshukai\n"); # 本文の送信
$smtp->datasend("メールによる情報:$DM\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;
}