#! /usr/local/bin/perl require 'jcode.pl'; $sendmail = '/usr/lib/sendmail'; $to = 'doitokeiya@mx41.tiki.ne.jp '; $ENV{'TZ'} = "GMT-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); if ($sec < 10) { $sec = "0$sec"; } if ($min < 10) { $min = "0$min"; } if ($hour < 10) { $hour = "0$hour"; } $month = ($mon + 1); @wday_array = ('SUN','MON','TUE','WED','THU','FRI','SAT'); $date_now = "$month/$mday/$wday_array[$wday] $hour:$min:$sec"; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } if ($buffer eq "") { &send_error; } @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; $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if ($name eq "kakunin" && $value eq "ok") { $kakunin = "ok"; } else { if ($name eq "email") { $value =~ s/ //g; $value =~ s/ //g; $email = $value; } #if ($name eq "to") { # $to = $value; #} if ($name eq "subject") { $subject = $value; } if ($name eq "nexthtm") { $nexthtm = $value; } &jcode'convert(*name,'jis'); &jcode'convert(*value,'jis'); push(@DATA_N,$name); push(@DATA_V,$value); &jcode'convert(*name,'sjis'); &jcode'convert(*value,'sjis'); $value =~ s/\n//g; $value =~ s/\r/\r\n/g; $name =~ s/\/>/g; $value =~ s/\>/>/g; $name =~ s/\"/"/g; $value =~ s/\"/"/g; push(@DATA_NS,$name); push(@DATA_VS,$value); } } if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $email = 'homepage@doitokeiya.com'; } ####変更箇所1######################### # &jcode'convert(*subject,'jis'); &jcode'convert(*subject,'sjis'); ######################################## if ($kakunin eq "ok") { &sendmail; } print "Content-type: text/html\n\n"; print "CHECK\n"; print "\n"; print "

下記のように送信されます。よろしかったら送信ボタンを押してください。
変更される場合はブラウザの戻る、ボタンを押して、修正してください。
控えを残されたいお客様は、この画面を印刷してください。
お客様のメールアドレスは半角で必ずご記入ください。
 舶来腕時計・限定腕時計・コンタクトレンズ・オーダー・メーカー注文の商品は不良品以外 返品・はできませんので良くお考えになってから注文ください。
 在庫がありました場合はキャンセルは出来ませんのでご注意ください。 


\n"; print "送信先 どいメガネ時計店:$to
\n"; print "
\n"; print "\n"; print "\n"; $count = @DATA_NS; foreach (2..$count-1) { print "\n"; print "$DATA_NS[($_)] :"; if ($DATA_VS[($_)] =~ /\n/) { print "
$DATA_VS[($_)]

\n"; } else { print "$DATA_VS[($_)]
\n"; } } print "
\n"; print "\n"; print "

\n"; print "

\n"; print "

\n"; exit; sub sendmail { ###変更箇所2########################### $subject = &mail64encode($subject); ######################################## if (!open(OUT,"| $sendmail $to")) { &send_error; } print OUT "To: $to\n"; print OUT "From: $email\n"; print OUT "Subject: $subject\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "Content-Type: text/plain\n"; print OUT "\n\n"; $count = @DATA_N; foreach (2..$count-1) { if ($DATA_V[($_)] =~ /\n/) { print OUT "$DATA_N[($_)] =\n$DATA_V[($_)]\n"; } else { print OUT "$DATA_N[($_)] = $DATA_V[($_)]\n"; } } print OUT "\n"; close(OUT); #print "Location: $location\n\n"; print "Content-type: text/html\n\n"; print "Thank you!\n"; print "\n"; print "

ご注文ありがとうございました。24時間以内にご返事いたします。
今しばらくお待ちください。もしメールが無い場合はご連絡ください。



\n"; print "このメールは,$to どいメガネ時計店 に送信されました

\n"; print "[戻る]


\n"; exit; } sub send_error { print "Content-type: text/html\n\n"; print "送信エラー\n"; print "\n"; print "

エラー


\n"; print "サーバに文字列が渡されませんでした。
\n"; print "\n"; exit; } ###変更箇所3########################### sub mail64encode { local($xx) = $_[0]; &jcode'convert(*xx, 'jis'); $xx =~ s/\x1b\x28\x42/\x1b\x28\x4a/g; $xx = &base64encode($xx); return("=?ISO-2022-JP?B?$xx?="); } sub base64encode { local($base) = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" . "abcdefghijklmnopqrstuvwxyz" . "0123456789+/"; local($xx, $yy, $zz, $i); $xx = unpack("B*", $_[0]); for ($i = 0; $yy = substr($xx, $i, 6); $i += 6) { $zz .= substr($base, ord(pack("B*", "00" . $yy)), 1); if (length($yy) == 2) { $zz .= "=="; } elsif (length($yy) == 4) { $zz .= "="; } } return($zz); } ########################################