#!C:/Perl/bin/perl # ↑上記perlのパスはサーバーの環境に合わせて設定してください。 ############################# # auto_mail.cgi version 4.2 # perl5対応 # 2002年2月13日 # Copyright (c) 2002/2/13 - By NNI ############################# print "Content-type: text/html\n\n"; require 'jcode.pl'; #=============設定はここから========================================= #ここに自分の名前を入れます。 $my_name = ''; #ここに自分のメールアドレスを入れます。 $my_email = ''; #ここに自分のページのURLを入れます。 $http = ''; #POST形式が駄目な方はGETにします。 $meth = 'POST'; #ここにフルパスを入れます。 $fullpass = './data/'; #ここにsendmailのパスを入れます。 $send_pass = 'c:\sendm\sendmane.exe'; #ここに4桁のパスワードを入れます。 $passwd = '111'; #バックグランドカラー等の設定をします。 $body = ''; $title = '福田ゼミ13期生メーリングリスト'; $link = ''; $page = ''; #タグの使用可否(0=使用不可。1=使用可。) $tag = '0'; #================ここまで================================================= $file = $fullpass . "email_data.dat"; $cgi = 'regist.cgi'; $txt = $fullpass . "mail.txt"; #--------------------------------------- if(! -f $file){ open(OUT,">$file"); close(OUT); } #--------------------------------------- ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time); $mon=$mon+1; if($year < 70) { $year += 2000; } elsif($year < 1000) { $year += 1900; } $wday = ('日','月','火','水','木','金','土')[$wday]; $date = "$year年$mon月$mday日($wday曜日)$hour時$min分$sec秒"; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } if($buffer eq ""){ &search; &html; }else{ &deco; if($FORM{'partner'} eq "all"){ if($FORM{'work1'} eq "send"){ ✓ &search3; &disp2; }} if($FORM{'work2'} eq "writ"){&html2;} if($FORM{'work4'} eq "reg"){&writ;} if($FORM{'work1'} eq "send"){ if($FORM{'partner'} ne "all"){ ✓ &search2; &send; &disp; }} if($FORM{'work3'} eq "dele"){&delete; &search; &html;} } #---------------------------------------------------------- sub deco { @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; if($tag eq "0"){ $value =~ s///g; } $value =~ s/mailto//g; $value =~ s/file://ig; $value =~ s/java//ig; $value =~ s/script//ig; $value =~ s/meta//ig; $value =~ s/while//ig; $value =~ s/"/"/g; $value =~ s/\r\n/\n/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'); $FORM{$name} = $value; } } sub html { print qq|$title\n|; print qq|$body\n|; #print qq|
\n|; #print qq|

$page

\n|; #print qq|


\n|; #print qq|現在$dateです。

\n|; #print qq|登録件数 $count 件\n|; #print qq|


\n|; #print qq|

\n|; #print qq|\n|; #print qq|送り先:\n|; #print qq|

\n|; #print qq|件名: 

\n|; #print qq|氏名:

\n|; #print qq|E-mail:

\n|; #print qq|URL: 

\n|; #print qq|内容 : 

\n|; #print qq|\n|; #print qq|\n|; #print qq|

\n|; #print qq|
\n|; #print qq|

\n|; #print qq|


\n|; #print qq|

\n|; #print qq|

\n|; #print qq|新規に登録する場合は以下にパスワードを入力しボタンを押してください

\n|; print qq|

\n|; print qq|\n|; print qq|


\n|; print qq|▼パスワード

\n|; print qq|\n|; print qq|
\n|; #print qq|
\n|; #print qq|

\n|; #print qq|


\n|; #print qq|

\n|; #print qq|

\n|; #print qq|$mess

\n|; #print qq|登録内容を削除する場合は以下にパスワードを入力しボタンを押してください。\n|; #print qq|

\n|; #print qq|\n|; #print qq|削除する相手先:\n|; #print qq|

\n|; #print qq|パスワード(管理者用)
\n|; #print qq|\n|; #print qq|

\n|; #print qq|
\n|; print qq|\n|; print qq|\n|; exit; } sub html2 { $pwd = $FORM{'pass'}; if($pwd eq ""){&error(6);} if($pwd ne "" && $pwd ne $passwd){&error(8);} if($pwd !~ /[\w]/){&error(15);} print <<"EOF"; $title $body

$mess
▼名前

▼メールアドレス

EOF exit; } #-------------------------------------- sub writ { $NAME = $FORM{'name'}; $NAME =~ s/ / /g; if($NAME eq ""){&error(4);} elsif($NAME eq " "){&error(4);} elsif($NAME eq " "){&error(4);} $Email = $FORM{'email'}; $Email =~ s/ //g; $Email =~ s/ //g; $Email =~ s/,/./g; if($Email eq ""){&error(9);} elsif ($Email !~ /\@/ || $Email !~ /\./) {&error(10);} if(!open(IN,"$file")){&error(1);} @line = ; close(IN); foreach $lines (@line){ ($name,$email) = split(/\t/,$lines); chomp $email; if($Email eq $email){ $mess = qq|名前:$name で
\n|; $mess .= qq|$emailは既に登録されています。
\n|; &html2; } } if(!open(OUT,">>$file")){&error(2);} print OUT "$NAME\t$Email\n"; close(OUT); $mess = qq|$NAMEさんを登録しました。\n|; &html2; } #-------------------------------------- sub search { if(!open(IN,"$file")){&error(1);} @data = ; close(IN); @lines = sort @data; $count = @lines; foreach $line (@lines){ ($NAME,$Email) = split(/\t/,$line); chomp $Email; $sele = "