#!/usr/local/bin/perl
# Copyright (C) 1995-1999 Canada Masaktz@Kade Kobo, Ltd. All rights reserved.
# Version. 1.00
require "./jcode.pl";
require "./init.pl";
# Sendmailを使う下準備
# sendmailのパスは適宜読み替えてください
$sendmail = '/usr/sbin/sendmail';
# Sendmailのチェック
&error("$sendmailが存在しません") unless -e $sendmail;
&error("$sendmailが実行できません") unless -x $sendmail;
# テンプレート・ファイルをオープン
open(TEMP,$template_dat)||&error("No template");
while(<TEMP>){
chop;
@template = split(/,/);
# 各項目のキーを順番に@keysに格納
push(@keys,$template[2]);
# 第5フィールドにmailという単語があるもののキーだけを処理
if($template[4] =~ /\bmail\b/i){
$value = $param{$template[2]};
# $contents変数に追加
$contents .= "$template[0]: $value\n";
if($template[2] eq 'email'){
# もし、一般的なE-Mailアドレスならば、From:行を作る
$from = "$param{$template[2]}"
if($param{$template[2]} =~ /^[-_0-9a-z]+\@[-_0-9a-z]+\.[-_0-9a-z.]+$/);
}
}
# 必須項目が入力されていなかった場合
if ($template[4] =~ /\brequired\b/i
&& $param{$template[2]} eq ""){
print <<"---EOF---";
Content-Type: text/html
<HTML>
<HEAD><TITLE>ハローキティのハッピーメール/ユーザ登録-エラーです-</TITLE>
<LINK rel="stylesheet" href="style.css">
</HEAD>
<BODY BGCOLOR="#FFFFFF" background="img/user/backgnd.gif" text="#333333" link="#CC0033" vlink="#FF6633" alink="#00CCCC">
<DIV align="center">
<P><IMG src="img/user/mailtit.gif" width="264" height="71" alt="ハローキティのハッピーメール">
</P>
<P><IMG src="img/user/tit_error.gif" width="188" height="18" alt="エラーがおきています。"></P>
項目「$template[0]」がエラーになっています。ブラウザの「戻る」ボタンで戻って
やり直してください。
<HR>
<P align="center"><A href="../index.html"><IMG src="img/user/backtomain.gif" width="173" height="25" border="0" alt="ホームページに戻る"></A></P>
<P align="center"><BR>
</P>
</DIV>
</BODY>
</HTML>
---EOF---
exit;
}
}
close(TEMP);
# テンプレートの順番に項目を処理する
foreach(@keys){
# 項目の値を得る
$value = $param{$_};
# カンマはフィールドの区切りに使うので、ピリオドに置換する
$value =~ s/,/./g;
# 同様に改行を<BR>タグに置き換える
$value =~ s/\r?\n/<BR>/g;
push(@values,$value); # 値を順番に@valueに格納する
}
open(LOG,">>$log_dat") || &error("Can't open log.dat");
flock(2,LOG);
# カンマ区切りでデータを出力
print LOG join(",",@values);
print LOG "\n";
close(LOG);
# Thankyouメッセージを出力する
$tmp = <<"-----EOF-----";
Content-Type: text/html
<HTML>
<HEAD><TITLE>ハローキティのハッピーメール/ユーザ登録-どうもありがとう-</TITLE>
<LINK rel="stylesheet" href="style.css">
</HEAD>
<BODY BGCOLOR="#FFFFFF" background="img/user/backgnd.gif" text="#333333" link="#CC0033" vlink="#FF6633" alink="#00CCCC">
<DIV align="center">
<P><IMG src="img/user/mailtit.gif" width="264" height="71" alt="ハローキティのハッピーメール">
</P>
<P><IMG src="img/user/tit_thankyou.gif" width="151" height="18" alt="どうもありがとう。"></P>
<P class="text" align="center">確かに受付しました。</P>
<TABLE><TR><TD>
<PRE>
$contents
</PRE>
</TD></TR></TABLE>
<A HREF="$ENV{HTTP_REFERER}">戻る</A>
<P align="center"><BR>
</P>
</DIV>
</BODY>
</HTML>
-----EOF-----
&jcode'euc2sjis(*tmp);
print $tmp;
# メールを送信する
if($contents ne "" && $to_address ne ""){ # 送信するものがなければ送信しない
# まず、文字コードを変換しておく
&jcode'euc2sjis(*contents);
open(MAIL,"| $sendmail -t -n -oi $to_address") || &error("Can't open $sendmail");
$from = $from || $to_address;
print MAIL <<"---EOF---";
From: $from
To: $to_address
Subject: via Form-No.$template
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Form-No.$template
------------------
$contents
---EOF---
close(MAIL);
}