#!/usr/bin/perl ######################################################### #newsMaker ver2.5 #Copyright(C)2001 analogengine All Right Reserved. ######################################################### $|=1; #ライブラリ require '../lib/cgi-lib.pl'; require '../lib/jcode.pl'; &ReadParse(*in); $regmail = $in{'regmail'}; $smznnum = $in{'smznnum'}; $acount = $in{'acount'}; $mode = $in{'mode'}; $step = $in{'step'}; # 全角→半角変換テーブル $cfrom = '[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz−./〜?=%&@:_]。'; $cto = '[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-./~?=%&@:_].'; &jcode'tr(*regmail, $cfrom, $cto); #####初期設定################################################# $sendmail = '/usr/sbin/sendmail';#センドメール $userfile = "playlist.txt";#ユーザー情報格納場所 $cgifile = "rg.a"; $tkmagadd = 'tkmag@tknavi.com'; #環境設定 $host_name =$ENV{'REMOTE_HOST'}; $remote_addr =$ENV{'REMOTE_ADDR'}; $host_addr =$ENV{'HTTP_X_FORWARDED_FOR'}; ########################################################### unless($mode){ #データベースから読み込み print "content-type: text/html\n\n"; open(PAGE, "){ if($_ =~ //){ open(LIST, "<$userfile"); while () { ($mznnum,$mznacount,$mznpass,$comp,$master,$email,$website,$magname,$intro,$end) = split(/:=:/,$_); next if $mznnum eq "mznID"; print <<"EOF";
■$magname by $comp
$intro
E-mail 
EOF }#end-while close(LIST); }else{print "$_";}#endof_if }#end_while close(PAGE); exit(0); } if($step){ #入力データのチェック unless($smznnum){ &exitError('エラー'); } $i = 0; open(PD, "playlist.txt"); while () { ($mznnum,$mznacount,$mznpass,$comp,$master,$email,$website,$magname,$end) = split(/:=:/,$_); if($smznnum eq $mznnum){ $i = 1; last; } } close(PD); unless($i){&exitError("登録無効"); } if($mode eq 'regist'){ ®ist;} elsif($mode eq 'cancel'){ &cancel;} else{ &exitError("モードなしエラー"); } } ##################################################################### sub regist { $regmail =~ s/\s*//g;#空白 if(($regmail == "") and ($regmail =~ /.+\,/) and ($regmail !=~ /.+\@.+\../)){ &exitError("アドレスミス"); } open(PPP,"){ chomp $_; if($regmail eq $_){ &exitError("同じアドレスが存在します。"); } push(@arrey,$_); } close(PPP); push(@arrey,$regmail); $arrey = join("\n",@arrey); open(PPP,">>addbank/$smznnum.txt"); print PPP "$arrey\n"; close(PPP); &mailtoRegist ; &disp('登録'); }#end_regist ##################################################################### sub cancel { $i = 0; open(PPP,"){ chomp $_; if($regmail == $_){ $check="1"; } else{ push(@arrey,$_); } } close(PPP); if($check){ $arrey = join("\n",@arrey); open(PPP,">addbank/$smznnum.txt"); print PPP $arrey; close(PPP); }else{ &exitError("登録がありませんでしたので削除できませんでした。$smznnum.txt"); } &mailtoCancel ; &disp('配信停止'); }#end_cancel ##################################################################### sub disp { $mms = <<"EOF"; 以下のメールマガジンを$_[0]しました。
■メールマガジン名:$magname
■主催者:$comp

主催者のwebサイトへ

EOF print "Content-type: text/html\n\n"; open(PAGE, "){ if($_ =~ //){print $mms;}else{ print "$_";} }#end_while close(PAGE); exit(0); } ########################################################### sub mailtoRegist { $mailhead = <<"EOF"; Return-Path: <$tkmagadd> Reply-To: <$tkmagadd> From: <$tkmagadd> Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Subject: Regist Mailmagazine - $smznnum EOF $mailbody = <<"EOB"; --------------------------------------------------------------- 受信者確認メール --------------------------------------------------------------- お客様のメールアドレスが、以下のメールマガジンに登録されました。  ■メールマガジン名:$magname  ■主催者:$comp 登録前後に主催者が配信を行った場合、行き違いで配信されないことがあります。 あらかじめご了承下さい。 --------------------------------------------------------------- 【登録した覚えのない場合】 --------------------------------------------------------------- もしお客様が登録した覚えのない場合は、以下の可能性が考えられます。 ・似たアドレスの所有者のタイプミス ・第三者によりいたずらに登録された 下記のURLをクリックすると、すぐに配信停止されます。 また、明らかないたずら登録が激しい場合は、管理者までご連絡下さい。 ---------------------------------------------------------------\n"; EOB jcode::convert(*mailhead, 'jis'); jcode::convert(*mailbody, 'sjis'); open(MAIL, "| $sendmail $regmail"); print MAIL $mailhead; print MAIL $mailbody; close(MAIL); } ######################################################################## sub mailtoCancel { $mailhead = <<"EOF"; Return-Path: <$tkmagadd> Reply-To: <$tkmagadd> From: <$tkmagadd> Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Subject: Cancel Mailmagazine - $smznnum EOF $mailbody = <<"EOB"; --------------------------------------------------------------- 配信停止の確認メール --------------------------------------------------------------- ご購読のメールマガジンの配信停止をいたしました。  ■メールマガジン名:$magname  ■主催者:$comp 配信停止前後に登録されていたメールマガジンの主催者が配信を行った場合、 行き違いで配信されることがあります。あらかじめご了承下さい。 --------------------------------------------------------------- 【削除した覚えのない場合】 --------------------------------------------------------------- もしお客様が削除した覚えのない場合は、以下の可能性が考えられます。 ・似たアドレスの所有者のタイプミス ・第三者によりいたずらに削除された 下記のURLをクリックすると、すぐに再登録されます。 また、明らかないたずら削除が激しい場合は、管理者までご連絡下さい。 --------------------------------------------------------------- EOB jcode::convert(*mailhead, 'jis'); jcode::convert(*mailbody, 'sjis'); open(MAIL, "| $sendmail $regmail"); print MAIL $mailhead; print MAIL $mailbody; close(MAIL); } ################################################################ sub exitError { my($msg) = @_; $msg =~ s/\n/
\n/g; print < エラーが発生しました。 $msg
$! END_OF_ERR_HTML exit(0); }