書き込みを追加する場合はページ下部のフォームに入力してください。

[戻る]
#
# PostMail v2.31 (2004/02/16)
# Copyright (c) KentWeb
# webmaster@kent-web.com
# http://www.kent-web.com/
#
$ver = 'PostMail v2.31';
#
# [羈鋋]
# 1. 鴻若純с鴻篏睡
# 絎潟絲障篏筝莢篁祉莢障
# 2. BlatJゃ潟鴻若≪莖泣若絲乗院紊
# 障
# 3. 篆<若HTML若吾篏≪HTML羈膀
# 泣若絲乗院紊障
# 4. 篁ュ荐臀≪莖泣若イ腓堺帥蕁
# 障贋・<若莖障
#
#
# [ 篆<若 (HTML) 荐菴遺 ]
#
# 祉帥違荐菴遺 (1)
# 障
# 若絮援医おュ篆<
# name = 絮援医お綵√у篆<障
#
# 祉帥違荐菴遺 (2)
# 絅純
# 吾鴻с篆<
# color = 綵√у篆<障
#
# 祉帥違荐菴遺 (3)
# E-mail
# nameゃemail絖篏帥<若≪
# 茯茘≪鴻後膂≧с障
# () abc@xxx.co.jp
# () abc.xxx.co.jp ュ若障
#
# 祉帥違荐菴遺 (4)
# E-mail
# nameゃ≪潟若 篁ュゃ
# ュ綽障
# 筝荐箴с<若≪鴻ュ綽障
#
# 祉帥違荐菴遺 (5)
# <若ァ綽荀
# <若ァ CC ч篆∴吾菴篆<障
# name="email" c若吾ュ綽障
#
# nameゃ吾茹絖篏睡純с鐚筝吟с
# 障絖醇сс違茹掩医篏帥
# ♂cс障鐚
# (箴)
# 筝荐吾鴻сャ篆<
# 綛顔就 = 20罩割撮後ус障
#
# mimew.pl篏睡nameゃname篆∴茯茘
# 篆≦<若≪鴻篆∴ <<若≪>
# 若紊障
# (若荐菴遺)
# (篆≦≪) 紊
#
# 祉潟潟帥 (1)
# ュ綽綣桁倶絎鐚茹鴻若鴻ц井絎鐚
# 吾帥潟с劫丞
# nameゃneedvalueゃ綽1 + 茹鴻若 +綽2 + 茹鴻若 ...
# (箴)
#
# [ 膂≧с ]
# http://鐔鐔/postmail.cgi?mode=check
#
# [ 荐臀箴 ]
#
# public_html / index.html (若悟鐚
# |
# +-- postmail / postmail.cgi [705]
# jcode.pl [604]
# mimew.pl [604] ... 篁紙
# postmail.html

#-------------------------------------------------
# 弱堺荐絎
#-------------------------------------------------

# 絖潟若紊ゃ
$jcode = './jcode.pl';

# MIME潟潟若ゃ篏帥翫鐚ィ絅鐚
# <若茹絖BASE64紊罘
# mimew.pl絎
$mimew = './mimew.pl';

# <若純障с
# sendmail箴 鐚/usr/lib/sendmail
# BlatJ箴 鐚c:\blatj\blatj.exe
$mailprog = '/usr/sbin/sendmail';

# 篆≦<若≪
$mailto = 'cutter@dumbbell.co.jp';

# 篆≦腆肴
# 0 : no
# 1 : yes
$preview = 1;

# <若帥ゃ
$subject = '帥域羆鐚若若吾篆¥';

# 鴻URL
$script = './postmail.cgi';

# 篆≦綵∽
# 0 : 絎篋<祉若吾冴.
# 1 : 祉 ($back) 梧吾c潟.
$reload = 0;

# 篆≦祉
# http://荐菴違
$back = 'http://www.dumbbell.co.jp/';

# 篆< method=POST 絎 (0=no 1=yes)
# 祉ャe丞
$postonly = 1;

# body帥
$body = '';

# ャ主脂≪
$tbl_col1 = "#003399";

# ャ主脂≪筝違
$tbl_col2 = "#FFFFFF";

# ャ主脂≪筝違
$tbl_col3 = "#EBECF5";

# ≪若
$alm_col = "#DD0000";

# 鴻緇号
# 0 : gethostbyaddr∽違篏帥
# 1 : gethostbyaddr∽違篏帥
$gethostbyaddr = 0;

#-------------------------------------------------
# 画┃絎絎篋
#-------------------------------------------------

# 若潟若
require $jcode;
$ret = &decode;

# 堺
if (!$ret) { &error("筝с"); }
elsif ($in{'mode'} eq "check") { ✓ }

# POSTс
if ($postonly && !$postflag) { &error("筝罩c≪祉鴻с"); }

# <若違腮蕁с
if ($mailprog =~ /blat/i) { $pgType = 2; } else { $pgType = 1; }

# 綽ュс
if ($in{'need'}) {
local(@tmp,@uniq,%seen);

@tmp = split(/\s+/, $in{'need'});
push(@need,@tmp);

# 茲荀膣
%seen=();
foreach (@need) {
push(@uniq,$_) unless $seen{$_}++;
}

# с
foreach (@uniq) {
if (!defined($in{$_})) {
$check++;
push(@key,$_);
}
}
}

# ュс腆肴脂
if ($check) { &err_check; }

# E-Mail後с
if ($in{'cc'} && !$in{'email'}) {
&error("綽荀с違<若≪鴻綽с");
}
if ($in{'email'} =~ /\,/) {
&error("<若≪鴻潟潟 ( , ) 障障");
}
if ($in{'email'} && $in{'email'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
&error("<若≪鴻後筝罩cс");
}

# ャ
if ($preview && $in{'mode'} ne "send") {

&header;
print <

- 篁ヤ絎鴻с育篆<帥潟若筝 -







EOM

foreach (@key) {
next if ($bef eq $_);
if ($_ eq "need" || $_ eq "cc") {
print "\n";
next;
}

$in{$_} =~ s/\0/ /g;
$in{$_} =~ s/\r\n/
/g;
$in{$_} =~ s/\r/
/g;
$in{$_} =~ s/\n/
/g;
if ($in{$_} =~ /
$/) {
while ($in{$_} =~ /
$/) { $in{$_} =~ s/
$//g; }
}
print "";
print "\n";

$bef = $_;
}

print <
$_$in{$_}\n";
print "




   






EOM
exit;
}

# 祉鴻緇
($date,$dat2) = &get_time;
&get_host;

# blatj篆
if ($pgType == 2) {
local($tmpfile,$bef,$param);

# 筝<ゃ吾冴
$tmpfile = "./$$\.tmp";
open(OUT,">$tmpfile") || &error("Write Error: $tmpfile");
print OUT "----------------------------------------------------------------------\n";
print OUT "$title篆≦絎\n";
print OUT "----------------------------------------------------------------------\n\n";

foreach (@key) {
next if ($_ eq "mode");
next if ($_ eq "need");
next if ($_ eq "cc");
next if ($bef eq $_);

$in{$_} =~ s/</ $in{$_} =~ s/>/>/g;
$in{$_} =~ s/"/"/g;
$in{$_} =~ s/&/&/g;
$in{$_} =~ s/\0/ /g;
$in{$_} =~ s/
/\n/g;
$in{$_} =~ s/\.\n/\. \n/g;

# 羞私<ゃ
$in{$_} =~ s/Content-Disposition:\s*attachment;.*//ig;
$in{$_} =~ s/Content-Transfer-Encoding:.*//ig;
$in{$_} =~ s/Content-Type:\s*multipart\/mixed;\s*boundary=.*//ig;

if ($in{$_} =~ /\n/) {
print OUT "$_ = \n\n$in{$_}\n";
} else {
print OUT "$_ = $in{$_}\n";
}

$bef = $_;
}

print OUT "\n";
print OUT "----------------------------------------------------------------------\n";
print OUT "Date : $date\n";
print OUT "Host : $host\n";
print OUT "Agent : $ENV{'HTTP_USER_AGENT'}\n";
print OUT "----------------------------------------------------------------------\n";
close(OUT);

# <若
$param = "$mailprog $tmpfile -t $mailto -s \"$subject\"";
$param .= " -c $in{'email'}" if ($in{'cc'});

# 篆≦
open(MAIL,"| $param") || &error("<若篆≦け");
close(MAIL);

# 筝<ゃ
unlink($tmpfile);

# sendmail篆
} else {
local($bef,$mbody,$email,$subject2);

$mbody = < ----------------------------------------------------------------------
$title篆≦絎
----------------------------------------------------------------------

EOM

foreach (@key) {
next if ($_ eq "mode");
next if ($_ eq "need");
next if ($_ eq "cc");
next if ($bef eq $_);

$in{$_} =~ s/</ $in{$_} =~ s/>/>/g;
$in{$_} =~ s/"/\"/g;
$in{$_} =~ s/&/&/g;
$in{$_} =~ s/\0/ /g;
$in{$_} =~ s/
/\n/g;
$in{$_} =~ s/\.\n/\. \n/g;

# 羞私<ゃ
$in{$_} =~ s/Content-Disposition:\s*attachment;.*//ig;
$in{$_} =~ s/Content-Transfer-Encoding:.*//ig;
$in{$_} =~ s/Content-Type:\s*multipart\/mixed;\s*boundary=.*//ig;

if ($in{$_} =~ /\n/) {
$mbody .= "$_ = \n\n$in{$_}\n";
} else {
$mbody .= "$_ = $in{$_}\n";
}
$bef = $_;
}

# <若≪鴻翫篆≦臀
if ($in{'email'} eq "") { $email = $mailto; }
else { $email = $in{'email'}; }

# MIME潟潟若
if (-e $mimew) {
require $mimew;
$subject2 = &mimeencode($subject);
if ($in{'name'}) {
$email = "\"$in{'name'}\" <$email>";
$email = &mimeencode($email);
}
} else {
$subject2 = $subject;
&jcode'convert(*subject2,'jis');
}

# sendmail莎桁
open(MAIL,"| $mailprog -t") || &error("<若篆≦け");
print MAIL "To: $mailto\n";
print MAIL "From: $email\n";
print MAIL "Cc: $email\n" if ($in{'cc'});
print MAIL "Subject: $subject2\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Date: $dat2\n";
print MAIL "X-Mailer: $ver\n\n";
foreach ( split(/\n/, $mbody) ) {
&jcode'convert(*_, 'jis' ,'sjis');
print MAIL $_, "\n";
}
print MAIL "\n";
print MAIL "----------------------------------------------------------------------\n";
print MAIL "Date : $date\n";
print MAIL "Host : $host\n";
print MAIL "Agent : $ENV{'HTTP_USER_AGENT'}\n";
print MAIL "----------------------------------------------------------------------\n";
close(MAIL);
}

# 若
if ($reload) {
if ($ENV{'PERLXS'} eq "PerlIS") {
print "HTTP/1.0 302 Temporary Redirection\r\n";
print "Content-type: text/html\n";
}
print "Location: $back\n\n";
exit;

# 絎篋<祉若
} else {
&header;
print <<"EOM";




篆<罩e幻絎篋障











- http://www.kent-web.com/" target="_top">PostMail -



EOM
exit;
}

#-------------------------------------------------
# ュс
#-------------------------------------------------
sub err_check {
local($f,$bef,$need);

&header;
print <

ュ絎鴻茯ゃ障


脂≪祉c罩cュ





EOM

foreach (@key) {
next if ($_ eq "need");
next if ($_ eq "cc");
next if ($bef eq $_);

print "";
print "\n";

$bef = $_;
}

print <
$_";

$f=0;
foreach $need (@need) {
if ($need eq $_) { $f++; last; }
}
if ($f && $in{$_} eq "") {
print "$_ュ綽с";
} else {
$in{$_} =~ s/\r\n/
/g;
$in{$_} =~ s/\r/
/g;
$in{$_} =~ s/\n/
/g;
$in{$_} =~ s/\0/ /g;

print $in{$_};
}

print "









EOM
exit;
}

#-------------------------------------------------
# 若潟若
#-------------------------------------------------
sub decode {
local($key,$val,$buf);
undef(%in);

if ($ENV{'REQUEST_METHOD'} eq "POST") {
$postflag=1;
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} else {
$postflag=0;
$buf = $ENV{'QUERY_STRING'};
}

@key=(); @need=(); $check=0;
foreach ( split(/&/, $buf) ) {
($key, $val) = split(/=/);
$key =~ tr/+/ /;
$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
$val =~ tr/+/ /;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;

&jcode'convert(*key, 'sjis');
&jcode'convert(*val, 'sjis');

# 帥井
$key =~ s/&/&/g;
$key =~ s/"/"/g;
$key =~ s/ $key =~ s/>/>/g;
$val =~ s/&/&/g;
$val =~ s/"/"/g;
$val =~ s/ $val =~ s/>/>/g;

# 綽ュ
if ($key =~ /^_/) {
$key =~ s/^_//;
push(@need,$key);

if ($val eq "") { $check++; }
}

$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;

push(@key,$key);
}

# 菴
if ($buf) { return (1); } else { return (0); }
}

#-------------------------------------------------
# HTML
#-------------------------------------------------
sub header {
$headflag=1;
print "Content-type: text/html\n\n";
print <<"EOM";




$subject
$body
EOM
}

#-------------------------------------------------
# 弱
#-------------------------------------------------
sub error {
unlink($tmpfile) if (-e $tmpfile && $pgType == 2);

&header if (!$headflag);
print <<"EOM";



ERROR !


$_[0]










EOM
exit;
}

#-------------------------------------------------
# 緇
#-------------------------------------------------
sub get_time {
local($d1,$d2,@w,@m);

$ENV{'TZ'} = "JST-9";
local($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
@w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
@m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');

# ユ若
$d1 = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$w[$wday],$hour,$min);
$d2 = sprintf("%s, %02d %s %04d %02d:%02d:%02d",
$w[$wday],$mday,$m[$mon],$year+1900,$hour,$min,$sec) . " +0900";

return ($d1,$d2);
}

#-------------------------------------------------
# 鴻緇
#-------------------------------------------------
sub get_host {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};

if ($gethostbyaddr && ($host eq "" || $host eq $addr)) {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
if ($host eq "") { $host = $addr; }
}

#-------------------------------------------------
# с≪若
#-------------------------------------------------
sub check {
&header;
print <

Check Mode



    EOM

    # <若純с
    print "
  • <若\刻";
    if (-e $mailprog) { print "OK\n"; }
    else { print "NG $mailprog\n"; }

    # jcode.pl 若吾с潟с
    print "
  • jcode.pl若吾с潟с鐚";

    local($flag)=0;
    open(IN, $jcode) || &error("Open Error: $jcode");
    while () {
    if ($_ =~ /jcode\.pl\,v (\d)\.(\d+)/) {
    $v1=$1; $v2=$2; $flag=1; last;
    }
    }
    close(IN);

    if ($v1 < 2 || $v2 < 13) {
    print "若吾с潟篏с $v1.$v2\n";
    } else {
    print "若吾сOK (v $v1.$v2)\n";
    }

    print <
  • 若吾с : $ver



EOM
exit;
}


__END__


追加発言
■ お名前(匿名可)
  
■ サブ・タイトル(省略可)
  
■ メールアドレス(省略可、半角で入力)
  
■ ホームページアドレス(省略可、半角で入力)
  
■ 発言(エラー時再送信禁止)
  
  

[戻る]



Copyright (C) 2004 Wellgate Limited company. All Rights Reserved.
本ページ内に掲載の記事・写真など一切の無断転載を禁じます
メール・お問い合せはこちらまで