#!/usr/bin/perl # ↑加入しているプロバイダの「perl」言語が使用できる # パスを指定します。 ######################################## #アングラーズネットフォームメールCGI #1999.1作成2000.5改定(Anglers-net WebDesign) #http://anglers-net.com/domain2/ #ご利用・配布はフリーですが、ここの著作の部分は消さないで(^^) ######################################## ######################################## $sendmail = '/bin/sendmail'; #   ↑sendmailのパスを指定します ######################################## ######################################## require './jcode.pl'; #   ↑jcode.plのパスを指定します。当CGIと同じ場所にあればこれでOK ######################################## ######################################## #テーブルの配色。変えたい場合は適当に変更して下さい。 #$tablebgcolorは項目などの配色、$tablebgcolor2は記入部分の配色です。 $tablebgcolor = 'DarkKhaki'; $tablebgcolor2 = 'LemonChiffon'; ######################################## ######################################## #海外サーバーの時差を指定します $timediff = '0'; ######################################## ######################################## #不正アクセスチェック #自分のページからの発信でないときにエラーを出すものです。 #設定する場合は、$accesscheck = 'on';として下さい。 #設定する場合は、@referers = ('yourdomain.com','www.yourdomain.com'); #この場合、('yourdomain.com','www.yourdomain.com')にドメイン名を入れて下さい。 $accesscheck = 'off'; @referers = ('yourdomain.com','www.yourdomain.com'); ######################################## ############################################### #受付日時を取得 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time + ($timediff * 60 * 60)); if ($min < 10) { $min = "0$min"; } if ($hour < 10) { $hour = "0$hour";} $year = $year+1900; $mon++; $dt = "【受付日】$year年$mon月$mday日$hour:$min"; ############################################### #各種初期設定 $mailname="no title"; $mailfrom="MailServer"; $errorh = "0"; $count=4; ######################################## #不正アクセスチェック if ($accesscheck eq "on") { &checkaccess;} ############################################### #フォームデータ処理 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s//>/g; $value =~ s/"/"/g; # $value =~ s/\n//g; $value =~ s/\*//g; $value =~ s/^//g; $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis'); &jcode'convert(*name,'sjis'); if($name ne "myaddress"){ if($name ne "backurl"){ if($name ne "mailtitle"){ if($name ne "titlegif"){ if($name ne "backgif"){ if($name ne "conf"){ if($name ne "cc"){ if($name ne "csv"){ @name1 = split(/\*/,$name); $name = @name1[0]; if($name ne "email"){ if (@name1[1] eq "1") { if ($value eq "") { @error[$count] = "$nameが記入(または選択)されていません
"; $count = $count+1; $errorh = "1";} } } if($name eq "email"){ $xx =$value; &transmail; $value = $xx; } $value2 = "【$name】$value"; push(@NEW,$value2); $value3 = "$name$value"; push(@NEW2,$value3); $value4 = "$value"; push(@NEW3,$value4); } } } } } } } } if($name eq "backurl"){$link=$value}; if($name eq "myaddress"){$mail_address=$value}; if($name eq "mailtitle"){$mailname=$value}; if($name eq "titlegif"){$titlegif=$value}; if($name eq "backgif"){$backgif=$value}; if($name eq "conf"){$conf=$value}; if($name eq "cc"){$cc=$value}; if($name eq "csv"){$csv=$value}; if($name eq "email"){ $emailh="1"; $email=$value } } ############################################### #各種処理 if($titlegif ne ""){$titlegif2="
"}; if($backgif ne ""){$backgif2=""; }else{$backgif2="";} if($email ne ""){$mailfrom=$email}; @mail = split(/\,/,$mail_address); $mail_address1=@mail[0]; $mail_address2=@mail[1]; @mail = split(/\@/,$mail_address1); if ($mail_address eq "") { @error[0] = "hiddenのメールアドレスが設定されていません
"; $errorh = "1";} if (@mail[0] ne "") { if (@mail[1] eq "") { @error[1] = "hiddenのメールアドレスが正しく設定されてません
"; $errorh = "1";} } @mail = split(/\@/,$mail_address2); if (@mail[0] ne "") { if (@mail[1] eq "") { @error[1] = "hiddenのメールアドレスが正しく設定されてません
"; $errorh = "1";} } if($emailh eq "1"){ @email = split(/\@/,$email); if ($email eq "") { @error[2] = "メールアドレスが入力されていません
"; $errorh = "1";} if (@email[0] ne "") { if (@email[1] eq "") { @error[3] = "メールアドレスが正しく入力されてません
"; $errorh = "1";} } } if ($errorh eq "1") { &error;} if ($conf eq "1") { &conf;} $new = join("\n",@NEW); $new3 = join("\,",@NEW3); if ($csv ne "1") {$new3="";} ############################################### #メール送信 $message = <\n",@NEW); ############################################### #送信後確認画面html print <送信完了 $backgif2 $titlegif2

次の内容で送信しました

$new

EOM if($emailh eq "1"){ if($cc eq "1"){ print"
また、この内容のコピーを
$email
あてに送信しましたので、ご確認下さい。
件名はCC:$mailnameです。


\n"; } } print <戻る
EOM exit; ############################################### #確認画面html sub conf { $new2 = join("\n",@NEW2); print <確認です $backgif2 $titlegif2
内容の確認です
$new2
項目
ご記入または選択内容


EOM exit; } ############################################### #エラー処理 sub error { print < エラー $backgif2 $titlegif2
エラーです

EOM $n = 0; while ($n <= $count ){ print"@error[$n] \n"; $n++; } print <
EOM exit; } #不正アクセス処理 sub checkaccess { foreach $referer (@referers) { if ($ENV{'HTTP_REFERER'} =~ m|http?://([^/]*)$referer|i) { $accesserror=1; last; } } if ($accesserror != 1) { @error[1] = "不正なアクセスです
"; &error } } sub transmail{ $from='[@01-9A-Za-z._−]'; $to='[@01-9A-Za-z._-]'; &jcode'convert(*xx, 'euc'); &jcode'convert(*from, 'euc'); &jcode'convert(*to, 'euc'); &jcode'tr(*xx, $from, $to); &jcode'convert(*xx, 'sjis'); }