#!/usr/local/bin/perl ################################################## # WebMasterTools スキームメールフォーム β1 # Created by WEB新撰組 萩原逸郎 # Created on 2002年04月01日 ################################################## $|=1; use CGI qw/:standard/; use Jcode; ########################### # 初期設定 ########################### #ベースURL $BaseURL = 'http://www.haraguti.com/sp/mailform/'; #このCGIのURL $CgiURL=$BaseURL . 'cgi-bin/sendmailadmin.cgi'; #このCGIのタイトル $CgiTitle='メールフォーム管理メニュー'; #CSSファイルのURL $CssURL = $BaseURL . 'css/font_win.css'; #ベースディレクトリ $BaseDir='public_html/sp/mailform/'; #データファイル $MailFile = $BaseDir . 'data/sendmaildata.txt'; #管理パスワードファイル $AdminPasswdFile = $BaseDir . 'data/passwd.txt'; #HTMLヘッダ部分 $HTML_HEAD = <<"EOL"; $CgiTitle EOL ########################### # 初期設定ここまで ########################### #ソートルーチン########################## sub bykeys { $keys[$a] cmp $keys[$b]; } # 文字列 sub bykeysb { $keys[$b] cmp $keys[$a]; } # 文字列逆順 sub bykey { $keys[$a] <=> $keys[$b]; } # 数字 sub bykeyb { $keys[$b] <=> $keys[$a]; } # 数字逆順 ######################################### if(param('action')){ $action = param('action'); }else{ $action = 'show_login'; } if(param('passwd')){ $passwd = param('passwd'); open IN,"$AdminPasswdFile"; $APasswd=; close IN; $APasswd =~ s/[\r\n]//g; if($APasswd ne crypt($passwd,$APasswd)){ $action = 'show_login'; } }else{ $action = 'show_login'; } #ナビゲーション $Navi = <<"EOL";

フォームメール
管理メニュー

EOL if($action eq 'go_del_form'){ ############################ # メールフォーム削除実行 ############################ &GoDelForm; }elsif($action eq 'check_del_form'){ ############################ # メールフォーム削除確認 ############################ &CheckDelForm; }elsif($action eq 'go_edit_form'){ ############################ # メールフォーム編集実行 ############################ &GoEditForm; }elsif($action eq 'check_edit_form'){ ############################ # メールフォーム編集確認 ############################ &CheckEditForm; }elsif($action eq 'edit_form'){ ############################ # メールフォーム編集フォーム ############################ &EditForm; }elsif($action eq 'show_data'){ ############################ # メールフォーム設定一覧 ############################ &ShowData; }elsif($action eq 'go_mknew'){ ############################ # 新規メールフォーム設定実行 ############################ &GoMknew; }elsif($action eq 'check_mknew'){ ############################ # 新規メールフォーム設定確認 ############################ &CheckMknew; }elsif($action eq 'show_mknew'){ ############################ # 新規メールフォーム設定 ############################ &ShowMknew; }elsif($action eq 'show_top'){ ############################ # トップ画面 ############################ &ShowTop; }elsif($action eq 'show_login'){ ############################ # ログイン画面 ############################ &ShowLogin; }elsif($action eq 'change_passwd'){ ############################ # パスワード変更 ############################ &ChangePasswd; }else{ &error(500,'予期せぬエラー'); } exit; ############################ # メールフォーム削除実行 ############################ sub GoDelForm { if(param('formname')){ $formname = param('formname'); }else{ &error(100,'フォーム名を取得出来ません'); } open IN,"$MailFile"; while(){ $data = $_; chop $data; ($fformname)=(split(/Enc_Sep_Code/,$data))[0]; if($fformname eq $formname){ $formdata = $data; }else{ push @alldata,$data; } } close IN; if(!$formdata){ &error(110,'フォームデータを取得出来ません'); } open OUT,"> $MailFile"; foreach $data (@alldata){ print OUT $data,"\n"; } close OUT; ($fformname,$fmailfrom,$fmailto,$fmailcc,$fmailbcc,$fsubject_a,$fsubject_b,$fhead_a,$fhead_b,$fsign_a,$fsign_b)=split(/Enc_Sep_Code/,$formdata); $fmailfrom =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailto =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailbcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsubject_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsubject_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fhead_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fhead_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsign_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsign_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailto =~ s/,/
/g; $fmailcc =~ s/,/
/g; $fmailbcc =~ s/,/
/g; $fsubject_a =~ s//>/g; $fsubject_b =~ s//>/g; $fhead_a =~ s//>/g; $fhead_b =~ s//>/g; $fsign_a =~ s//>/g; $fsign_b =~ s//>/g; $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

メールフォーム 削除

以下の内容を削除しました。

メールフォーム名

$formname

送信元メールアドレス

$fmailfrom

宛先メールアドレス

To:

$fmailto

Cc:

$fmailcc  

Bcc:

$fmailbcc  

件名

お客様宛

$fsubject_a

管理者宛

$fsubject_b

挨拶文

お客様宛

$fhead_a

管理者宛

$fhead_b

シグネチャ

お客様宛

$fsign_a

管理者宛

$fsign_b

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # メールフォーム削除確認 ############################ sub CheckDelForm { if(param('formname')){ $formname = param('formname'); }else{ &error(100,'フォーム名を取得出来ません'); } open IN,"$MailFile"; while(){ $data = $_; chop $data; ($fformname)=(split(/Enc_Sep_Code/,$data))[0]; if($fformname eq $formname){ $formdata = $data; } } close IN; if(!$formdata){ &error(110,'フォームデータを取得出来ません'); } ($fformname,$fmailfrom,$fmailto,$fmailcc,$fmailbcc,$fsubject_a,$fsubject_b,$fhead_a,$fhead_b,$fsign_a,$fsign_b)=split(/Enc_Sep_Code/,$formdata); $fmailfrom =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailto =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailbcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsubject_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsubject_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fhead_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fhead_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsign_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsign_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailto =~ s/,/
/g; $fmailcc =~ s/,/
/g; $fmailbcc =~ s/,/
/g; $fsubject_a =~ s//>/g; $fsubject_b =~ s//>/g; $fhead_a =~ s//>/g; $fhead_b =~ s//>/g; $fsign_a =~ s//>/g; $fsign_b =~ s//>/g; $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

メールフォーム 削除

以下の内容を削除してもよろしいですか?

メールフォーム名

$formname

送信元メールアドレス

$fmailfrom

宛先メールアドレス

To:

$fmailto

Cc:

$fmailcc  

Bcc:

$fmailbcc  

件名

お客様宛

$fsubject_a

管理者宛

$fsubject_b

挨拶文

お客様宛

$fhead_a

管理者宛

$fhead_b

シグネチャ

お客様宛

$fsign_a

管理者宛

$fsign_b


W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # メールフォーム編集実行 ############################ sub GoEditForm { if(param('formname')){ $formname = param('formname'); }else{ &error(100,'フォーム名を取得出来ません'); } $mailfrom = param('mailfrom'); $mailto = param('mailto'); $mailcc = param('mailcc'); $mailbcc = param('mailbcc'); $subject_a = param('subject_a'); $subject_b = param('subject_b'); $head_a = param('head_a'); $head_b = param('head_b'); $sign_a = param('sign_a'); $sign_b = param('sign_b'); $line=join('Enc_Sep_Code',$formname,$mailfrom,$mailto,$mailcc,$mailbcc,$subject_a,$subject_b,$head_a,$head_b,$sign_a,$sign_b); open IN,"$MailFile"; while(){ $data = $_; chop $data; ($fformname)=(split(/Enc_Sep_Code/,$data))[0]; if($fformname eq $formname){ push @alldata,$line; $dataflag = 1; }else{ push @alldata,$data; } } close IN; if(!$dataflag){ &error(120,'フォームデータを取得出来ませんでした'); } open OUT,"> $MailFile"; foreach $data (@alldata){ print OUT $data,"\n"; } close OUT; $mailfrom =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailto =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailbcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $head_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $head_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $sign_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $sign_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $formname_dmy = $formname; $mailfrom_dmy = $mailfrom; $mailto_dmy = $mailto; $mailcc_dmy = $mailcc; $mailbcc_dmy = $mailbcc; $subject_a_dmy = $subject_a; $subject_b_dmy = $subject_b; $head_a_dmy = $head_a; $head_b_dmy = $head_b; $sign_a_dmy = $sign_a; $sign_b_dmy = $sign_b; $mailto_dmy =~ s/,/
/g; $mailcc_dmy =~ s/,/
/g; $mailbcc_dmy =~ s/,/
/g; $subject_a_dmy =~ s//>/g; $subject_b_dmy =~ s//>/g; $head_a_dmy =~ s//>/g; $head_b_dmy =~ s//>/g; $sign_a_dmy =~ s//>/g; $sign_b_dmy =~ s//>/g; $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

新規メールフォーム 編集

以下の内容に変更しました。

メールフォーム名

$formname_dmy

送信元メールアドレス

$mailfrom_dmy

宛先メールアドレス

To:

$mailto_dmy

Cc:

$mailcc_dmy  

Bcc:

$mailbcc_dmy  

件名

お客様宛

$subject_a_dmy

管理者宛

$subject_b_dmy

挨拶文

お客様宛

$head_a_dmy

管理者宛

$head_b_dmy

シグネチャ

お客様宛

$sign_a_dmy

管理者宛

$sign_b_dmy

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # メールフォーム編集確認 ############################ sub CheckEditForm { if(param('formname')){ $formname = param('formname'); }else{ &error(100,'フォーム名を取得出来ません'); } open IN,"$MailFile"; while(){ $data = $_; chop $data; ($fformname)=(split(/Enc_Sep_Code/,$data))[0]; if($fformname eq $formname){ $formdata = $data; } } close IN; if(!$formdata){ &error(110,'フォームデータを取得出来ません'); } use Mail::CheckUser qw(check_email); if(param('mailfrom')){ $mailfrom = param('mailfrom'); if(! check_email($mailfrom)) { push @errors,'送信元メールアドレスEnc_Sep_Code送信元メールアドレスに誤りがあります'; } }else{ push @errors,'送信元メールアドレスEnc_Sep_Code送信元メールアドレスを入力して下さい'; } if(param('mailto')){ $mailto = param('mailto'); $mailto =~ s/\r\n/\n/g; if($mailto =~ /\@/){ if($mailto =~ /\n/){ @admy = split(/\n/,$mailto); foreach $dmy (@admy) { if($dmy =~ /\@/){ if(! check_email($dmy)) { push @errors,"あて先メールアドレスEnc_Sep_Code$dmyに送信出来ません"; } push @admy2,$dmy; } } undef $mailto; $mailto = join(',',@admy2); undef $dmy; undef @admy; undef @admy2; } }else{ undef $mailto; } }else{ push @errors,'あて先メールアドレスEnc_Sep_Codeあて先メールアドレスを入力して下さい'; } if(param('mailcc')){ $mailcc = param('mailcc'); $mailcc =~ s/\r\n/\n/g; if($mailcc =~ /\@/){ if($mailcc =~ /\n/){ @admy = split(/\n/,$mailcc); foreach $dmy (@admy) { if($dmy =~ /\@/){ if(! check_email($dmy)) { push @errors,"あて先メールアドレスEnc_Sep_Code$dmyに送信出来ません"; } push @admy2,$dmy; } } undef $mailcc; $mailcc = join(',',@admy2); undef $dmy; undef @admy; undef @admy2; } }else{ undef $mailcc; } } if(param('mailbcc')){ $mailbcc = param('mailbcc'); $mailbcc =~ s/\r\n/\n/g; if($mailbcc =~ /\@/){ if($mailbcc =~ /\n/){ @admy = split(/\n/,$mailbcc); foreach $dmy (@admy) { if($dmy =~ /\@/){ if(! check_email($dmy)) { push @errors,"あて先メールアドレスEnc_Sep_Code$dmyに送信出来ません"; } push @admy2,$dmy; } } undef $mailbcc; $mailbcc = join(',',@admy2); undef $dmy; undef @admy; undef @admy2; } }else{ undef $mailbcc; } } if(param('subject_a')){ $subject_a = param('subject_a'); $subject_a = jcode($subject_a)->h2z->euc; }else{ push @errors,'件名Enc_Sep_Codeお客様宛の件名を入力して下さい'; } if(param('subject_b')){ $subject_b = param('subject_b'); $subject_b = jcode($subject_b)->h2z->euc; }else{ push @errors,'件名Enc_Sep_Code管理者宛の件名を入力して下さい'; } if(param('head_a')){ $head_a = param('head_a'); $head_a = jcode($head_a)->h2z->euc; $head_a =~ s/\r\n/\n/g; }else{ push @errors,'挨拶文Enc_Sep_Codeお客様宛の挨拶文を入力して下さい'; } if(param('head_b')){ $head_b = param('head_b'); $head_b = jcode($head_b)->h2z->euc; $head_b =~ s/\r\n/\n/g; } if(param('sign_a')){ $sign_a = param('sign_a'); $sign_a = jcode($sign_a)->h2z->euc; $sign_a =~ s/\r\n/\n/g; }else{ push @errors,'シグネチャEnc_Sep_Codeお客様宛のシグネチャを入力して下さい'; } if(param('sign_b')){ $sign_b = param('sign_b'); $sign_b = jcode($sign_b)->h2z->euc; $sign_b =~ s/\r\n/\n/g; } if(@errors){ &error2; } $formname_dmy = $formname; $mailfrom_dmy = $mailfrom; $mailto_dmy = $mailto; $mailcc_dmy = $mailcc; $mailbcc_dmy = $mailbcc; $subject_a_dmy = $subject_a; $subject_b_dmy = $subject_b; $head_a_dmy = $head_a; $head_b_dmy = $head_b; $sign_a_dmy = $sign_a; $sign_b_dmy = $sign_b; $mailto_dmy =~ s/,/
/g; $mailcc_dmy =~ s/,/
/g; $mailbcc_dmy =~ s/,/
/g; $subject_a_dmy =~ s//>/g; $subject_b_dmy =~ s//>/g; $head_a_dmy =~ s//>/g; $head_b_dmy =~ s//>/g; $sign_a_dmy =~ s//>/g; $sign_b_dmy =~ s//>/g; $mailfrom =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $mailto =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $mailcc =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $mailbcc =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $subject_a =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $subject_b =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $head_a =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $head_b =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $sign_a =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $sign_b =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

メールフォーム 編集

以下の内容に変更してもよろしいですか?

メールフォーム名

$formname_dmy

送信元メールアドレス

$mailfrom_dmy

宛先メールアドレス

To:

$mailto_dmy

Cc:

$mailcc_dmy  

Bcc:

$mailbcc_dmy  

件名

お客様宛

$subject_a_dmy

管理者宛

$subject_b_dmy

挨拶文

お客様宛

$head_a_dmy

管理者宛

$head_b_dmy

シグネチャ

お客様宛

$sign_a_dmy

管理者宛

$sign_b_dmy


W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # メールフォーム編集フォーム ############################ sub EditForm { if(param('formname')){ $formname = param('formname'); }else{ &error(100,'フォーム名を取得出来ません'); } open IN,"$MailFile"; while(){ $data = $_; chop $data; ($fformname)=(split(/Enc_Sep_Code/,$data))[0]; if($fformname eq $formname){ $formdata = $data; } } close IN; if(!$formdata){ &error(110,'フォームデータを取得出来ません'); } ($fformname,$fmailfrom,$fmailto,$fmailcc,$fmailbcc,$fsubject_a,$fsubject_b,$fhead_a,$fhead_b,$fsign_a,$fsign_b)=split(/Enc_Sep_Code/,$formdata); $fmailfrom =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailto =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailbcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsubject_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsubject_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fhead_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fhead_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsign_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fsign_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $fmailto =~ s/\,/\n/g; $fmailcc =~ s/\,/\n/g; $fmailbcc =~ s/\,/\n/g; $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

メールフォーム 編集

メールフォーム名

$formname変更は出来ません

送信元メールアドレス

宛先メールアドレス

To:

Cc:

Bcc:

件名

お客様宛

管理者宛

挨拶文

お客様宛

管理者宛

シグネチャ

お客様宛

管理者宛


W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # メールフォーム設定一覧 ############################ sub ShowData { open IN,"$MailFile"; while(){ $data = $_; chop $data; ($fformname)=(split(/Enc_Sep_Code/,$data))[0]; push @alldata,$data; push @keys,$fformname; } close IN; @alldata = @alldata[ sort bykeys $[..$#alldata]; $HTML = <<"EOL"; $HTML_HEAD $Navi

メールフォーム 設定一覧

EOL foreach $data (@alldata){ ($formname,$mailfrom,$mailto,$mailcc,$mailbcc,$subject_a,$subject_b,$head_a,$head_b,$sign_a,$sign_b)=split(/Enc_Sep_Code/,$data); $mailfrom =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailto =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailbcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $head_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $head_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $sign_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $sign_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_a =~ s/ EOL } $HTML .= <<"EOL";

メールフォーム名

件名

アクション

$formname

$subject_a

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # 新規メールフォーム設定実行 ############################ sub GoMknew { $formname = param('formname'); $mailfrom = param('mailfrom'); $mailto = param('mailto'); $mailcc = param('mailcc'); $mailbcc = param('mailbcc'); $subject_a = param('subject_a'); $subject_b = param('subject_b'); $head_a = param('head_a'); $head_b = param('head_b'); $sign_a = param('sign_a'); $sign_b = param('sign_b'); $line=join('Enc_Sep_Code',$formname,$mailfrom,$mailto,$mailcc,$mailbcc,$subject_a,$subject_b,$head_a,$head_b,$sign_a,$sign_b); open OUT,">> $MailFile"; print OUT $line,"\n"; close OUT; $mailfrom =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailto =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $mailbcc =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $subject_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $head_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $head_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $sign_a =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $sign_b =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $formname_dmy = $formname; $mailfrom_dmy = $mailfrom; $mailto_dmy = $mailto; $mailcc_dmy = $mailcc; $mailbcc_dmy = $mailbcc; $subject_a_dmy = $subject_a; $subject_b_dmy = $subject_b; $head_a_dmy = $head_a; $head_b_dmy = $head_b; $sign_a_dmy = $sign_a; $sign_b_dmy = $sign_b; $mailto_dmy =~ s/,/
/g; $mailcc_dmy =~ s/,/
/g; $mailbcc_dmy =~ s/,/
/g; $subject_a_dmy =~ s//>/g; $subject_b_dmy =~ s//>/g; $head_a_dmy =~ s//>/g; $head_b_dmy =~ s//>/g; $sign_a_dmy =~ s//>/g; $sign_b_dmy =~ s//>/g; $HTML = <<"EOL"; $HTML_HEAD $Navi

新規メールフォーム 登録

以下の内容で登録しました。

メールフォーム名

$formname_dmy

送信元メールアドレス

$mailfrom_dmy

宛先メールアドレス

To:

$mailto_dmy

Cc:

$mailcc_dmy

Bcc:

$mailbcc_dmy

件名

お客様宛

$subject_a_dmy

管理者宛

$subject_b_dmy

挨拶文

お客様宛

$head_a_dmy

管理者宛

$head_b_dmy

シグネチャ

お客様宛

$sign_a_dmy

管理者宛

$sign_b_dmy

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # 新規メールフォーム設定確認 ############################ sub CheckMknew { use Mail::CheckUser qw(check_email); if(param('formname')){ $formname = param('formname'); $formname =~ s/ //g; if($formname =~ /[^a-zA-Z0-9]/){ push @errors,'メールフォーム名Enc_Sep_Codeメールフォーム名は半角英数字で入力して下さい'; }else{ open IN,"$MailFile"; while(){ ($fformname)=(split(/Enc_Sep_Code/,$_))[0]; if($fformname eq $formname){ push @errors,'メールフォーム名Enc_Sep_Codeそのメールフォーム名は既に使われています'; } } close IN; } }else{ push @errors,'メールフォーム名Enc_Sep_Codeメールフォーム名を入力して下さい'; } if(param('mailfrom')){ $mailfrom = param('mailfrom'); if(! check_email($mailfrom)) { push @errors,'送信元メールアドレスEnc_Sep_Code送信元メールアドレスに誤りがあります'; } }else{ push @errors,'送信元メールアドレスEnc_Sep_Code送信元メールアドレスを入力して下さい'; } if(param('mailto')){ $mailto = param('mailto'); $mailto =~ s/\r\n/\n/g; if($mailto =~ /\@/){ if($mailto =~ /\n/){ @admy = split(/\n/,$mailto); foreach $dmy (@admy) { if($dmy =~ /\@/){ if(! check_email($dmy)) { push @errors,"あて先メールアドレスEnc_Sep_Code$dmyに送信出来ません"; } push @admy2,$dmy; } } undef $mailto; $mailto = join(',',@admy2); undef $dmy; undef @admy; undef @admy2; } }else{ undef $mailto; } }else{ push @errors,'あて先メールアドレスEnc_Sep_Codeあて先メールアドレスを入力して下さい'; } if(param('mailcc')){ $mailcc = param('mailcc'); $mailcc =~ s/\r\n/\n/g; if($mailcc =~ /\@/){ if($mailcc =~ /\n/){ @admy = split(/\n/,$mailcc); foreach $dmy (@admy) { if($dmy =~ /\@/){ if(! check_email($dmy)) { push @errors,"あて先メールアドレスEnc_Sep_Code$dmyに送信出来ません"; } push @admy2,$dmy; } } undef $mailcc; $mailcc = join(',',@admy2); undef $dmy; undef @admy; undef @admy2; } }else{ undef $mailcc; } } if(param('mailbcc')){ $mailbcc = param('mailbcc'); $mailbcc =~ s/\r\n/\n/g; if($mailbcc =~ /\@/){ if($mailbcc =~ /\n/){ @admy = split(/\n/,$mailbcc); foreach $dmy (@admy) { if($dmy =~ /\@/){ if(! check_email($dmy)) { push @errors,"あて先メールアドレスEnc_Sep_Code$dmyに送信出来ません"; } push @admy2,$dmy; } } undef $mailbcc; $mailbcc = join(',',@admy2); undef $dmy; undef @admy; undef @admy2; } }else{ undef $mailbcc; } } if(param('subject_a')){ $subject_a = param('subject_a'); $subject_a = jcode($subject_a)->h2z->euc; }else{ push @errors,'件名Enc_Sep_Codeお客様宛の件名を入力して下さい'; } if(param('subject_b')){ $subject_b = param('subject_b'); $subject_b = jcode($subject_b)->h2z->euc; }else{ push @errors,'件名Enc_Sep_Code管理者宛の件名を入力して下さい'; } if(param('head_a')){ $head_a = param('head_a'); $head_a = jcode($head_a)->h2z->euc; $head_a =~ s/\r\n/\n/g; }else{ push @errors,'挨拶文Enc_Sep_Codeお客様宛の挨拶文を入力して下さい'; } if(param('head_b')){ $head_b = param('head_b'); $head_b = jcode($head_b)->h2z->euc; $head_b =~ s/\r\n/\n/g; } if(param('sign_a')){ $sign_a = param('sign_a'); $sign_a = jcode($sign_a)->h2z->euc; $sign_a =~ s/\r\n/\n/g; }else{ push @errors,'シグネチャEnc_Sep_Codeお客様宛のシグネチャを入力して下さい'; } if(param('sign_b')){ $sign_b = param('sign_b'); $sign_b = jcode($sign_b)->h2z->euc; $sign_b =~ s/\r\n/\n/g; } if(@errors){ &error2; } $formname_dmy = $formname; $mailfrom_dmy = $mailfrom; $mailto_dmy = $mailto; $mailcc_dmy = $mailcc; $mailbcc_dmy = $mailbcc; $subject_a_dmy = $subject_a; $subject_b_dmy = $subject_b; $head_a_dmy = $head_a; $head_b_dmy = $head_b; $sign_a_dmy = $sign_a; $sign_b_dmy = $sign_b; $mailto_dmy =~ s/,/
/g; $mailcc_dmy =~ s/,/
/g; $mailbcc_dmy =~ s/,/
/g; $subject_a_dmy =~ s//>/g; $subject_b_dmy =~ s//>/g; $head_a_dmy =~ s//>/g; $head_b_dmy =~ s//>/g; $sign_a_dmy =~ s//>/g; $sign_b_dmy =~ s//>/g; $mailfrom =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $mailto =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $mailcc =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $mailbcc =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $subject_a =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $subject_b =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $head_a =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $head_b =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $sign_a =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $sign_b =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $HTML = <<"EOL"; $HTML_HEAD $Navi

新規メールフォーム 登録

以下の内容で登録してもよろしいですか?

メールフォーム名

$formname_dmy

送信元メールアドレス

$mailfrom_dmy

宛先メールアドレス

To:

$mailto_dmy

Cc:

$mailcc_dmy

Bcc:

$mailbcc_dmy

件名

お客様宛

$subject_a_dmy

管理者宛

$subject_b_dmy

挨拶文

お客様宛

$head_a_dmy

管理者宛

$head_b_dmy

シグネチャ

お客様宛

$sign_a_dmy

管理者宛

$sign_b_dmy


W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # 新規メールフォーム設定 ############################ sub ShowMknew { $HTML = <<"EOL"; $HTML_HEAD $Navi

新規メールフォーム 登録

メールフォーム名

半角英数字で任意の名前を付けてください

送信元メールアドレス

宛先メールアドレス

To:

Cc:

Bcc:

件名

お客様宛

管理者宛

挨拶文

お客様宛

管理者宛

シグネチャ

お客様宛

管理者宛


W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # トップ画面 ############################ sub ShowTop { $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

メールフォーム 一覧

新規メールフォーム 登録

ログアウト

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # パスワード変更 ############################ sub ChangePasswd { require 'hmkpasswd.pl'; if(param('passwd_a')){ $passwd_a = param('passwd_a'); }else{ &error(100,'新しいパスワードを入力して下さい'); } if(param('passwd_b')){ $passwd_b = param('passwd_b'); }else{ &error(110,'新しいパスワード(確認用)を入力して下さい'); } if($passwd_a ne $passwd_b){ &error(110,'新しいパスワードは2つとも同じものを入力して下さい'); } $APasswd = &hmkpasswd($passwd_a); $passwd = $passwd_a; open OUT,"> $AdminPasswdFile"; print OUT $APasswd; close OUT; $HTML = <<"EOL"; Content-type: text/html $CgiTitle
管理パスワード変更


管理パスワードを変更しました。
W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ############################ # ログイン画面 ############################ sub ShowLogin { $HTML = <<"EOL"; $HTML_HEAD

フォームメール

管理パスワード

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; } ################ # エラー ################ sub error { ($num,$word,$flag)=@_; if($flag == 1){ &Lock(0); } $HTML = <<"EOL"; $HTML_HEAD

フォームメール
管理メニュー

Error!!

Error No:$num

$word

 

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; exit; } ################ # エラー2 ################ sub error2 { my($err,$err1,$err2); $HTML = <<"EOL"; $HTML_HEAD $Navi

フォームメール
管理メニュー

以下のエラーがありました。
戻って修正してください。


EOL foreach $err (@errors){ ($err1,$err2)=split(/Enc_Sep_Code/,$err); $HTML .= <<"EOL"; EOL } $HTML .= <<"EOL";

$err1

$err2

W.M.T β1 Web新撰組
EOL $HTML = jcode($HTML)->sjis; print "Content-type: text/html; charset=Shift_JIS\n\n"; print $HTML; exit; }