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

[戻る]
#
# PostMail v2.31 (2004/02/16)
# Copyright (c) KentWeb
# webmaster@kent-web.com
# http://www.kent-web.com/
#
$ver = 'PostMail v2.31';
#
# []
# 1. XNvgt[\tgBXNvggp
# QメCB
# 2. BlatJCXg[ソT|[gO
# B
# 3. MtH[HTMLy[WAHTML@浴e
# AT|[gOB
# 4. OuソT|[gfヲ
# B[ソB
#
#
# [ MtH[ (HTML) Lq ]
#
# E^OLq (1)
#
# tH[uRcYvMA
# uname = RcYv`ョM
#
# E^OLq (2)
# DF
# WI{bNX`FbNMA
# ucolor = v`ョM
#
# E^OLq (3)
# E-mail
# nameluemailvg[AhX
# FッAAhXョ`FbN
# () abc@xxx.co.jp
# (~) abc.xxx.co.jp G[
#
# E^OLq (4)
# E-mail
# nameluA_[o[ vtAl
# uK{vB
# LAu[AhXK{vB
#
# E^OLq (5)
# [TKv
# [T CC MメMB
# Aname="email" tB[hK{B
#
# EnameluSpvgp\iuEU
# \Auppvg
# j
# ()
# LWI{bNX`FbNMA
# uN = 20vョB
#
# Emimew.plgpAnamelunamevuMメvFッ
# M[AhXuMメ <[AhX>v
# tH[}bgゥB
# (tH[Lq)
# (MAhX) Y
#
# ER}h^O (1)
# K{wipXy[Xwj
# WI{^A`FbN{bNX
# nameluneedvAvalueluK{1 + pXy[X +K{2 + pXy[X ...v
# ()
#
# [ `FbN ]
# http://``/postmail.cgi?mode=check
#
# [ u ]
#
# public_html / index.html (gbvy[Wj
# |
# +-- postmail / postmail.cgi [705]
# jcode.pl [604]
# mimew.pl [604] ... C
# postmail.html

#-------------------------------------------------
# {
#-------------------------------------------------

# R[hCu
$jcode = './jcode.pl';

# MIMEGR[hCugij
# [wb_SpBASE64@\
# mimew.plw
$mimew = './mimew.pl';

# [\tgpX
# sendmail F/usr/lib/sendmail
# BlatJ Fc:\blatj\blatj.exe
$mailprog = '/usr/sbin/sendmail';

# M[AhX
$mailto = 'qqtakagi@bird.ocn.ne.jp';

# MOmF
# 0 : no
# 1 : yes
$preview = 1;

# [^Cg
$subject = 'a@z[y[W';

# XNvgURL
$script = './postmail.cgi';

# M`
# 0 : bZ[Wo.
# 1 : ($back) ゥWv.
$reload = 0;

# M
# http://Lq
$back = 'http://www.takagi-hp.com/';

# M method=POST (0=no 1=yes)
# ZLeB
$postonly = 1;

# body^O
$body = '';

# vr[gF
$tbl_col1 = "#003399";

# vr[nF
$tbl_col2 = "#FFFFFF";

# vr[nF
$tbl_col3 = "#EBECF5";

# A[F
$alm_col = "#DD0000";

# zXg@
# 0 : gethostbyaddrg
# 1 : gethostbyaddrg
$gethostbyaddr = 0;

#-------------------------------------------------
#
#-------------------------------------------------

# tH[fR[h
require $jcode;
$ret = &decode;

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

# POST`FbN
if ($postonly && !$postflag) { &error("sANZX"); }

# [vO`FbN
if ($mailprog =~ /blat/i) { $pgType = 2; } else { $pgType = 1; }

# K{`FbN
if ($in{'need'}) {
local(@tmp,@uniq,%seen);

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

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

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

# `FbNmF
if ($check) { &err_check; }

# E-Mailョ`FbN
if ($in{'cc'} && !$in{'email'}) {
&error("ハKv[AhXK{");
}
if ($in{'email'} =~ /\,/) {
&error("[AhXR} ( , ) ");
}
if ($in{'email'} && $in{'email'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
&error("[AhXョs");
}

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

&header;
print <

- eM{^ -







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;
}

# EzXg
($date,$dat2) = &get_time;
&get_host;

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

# t@Co
$tmpfile = "./$$\.tmp";
open(OUT,">$tmpfile") || &error("Write Error: $tmpfile");
print OUT "----------------------------------------------------------------------\n";
print OUT "$titleMe\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;

# Ytt@C
$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);

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

# M
open(MAIL,"| $param") || &error("[Mクs");
close(MAIL);

# t@C
unlink($tmpfile);

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

$mbody = < ----------------------------------------------------------------------
$titleMe
----------------------------------------------------------------------

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;

# Ytt@C
$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 = $_;
}

# [AhXMu
if ($in{'email'} eq "") { $email = $mailto; }
else { $email = $in{'email'}; }

# MIMEGR[h
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');
}

# sendmailN
open(MAIL,"| $mailprog -t") || &error("[Mクs");
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);
}

# [h
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;

# bZ[W
} else {
&header;
print <<"EOM";




M











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



EOM
exit;
}

#-------------------------------------------------
# `FbN
#-------------------------------------------------
sub err_check {
local($f,$bef,$need);

&header;
print <

eB


OB





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 "$_K{";
} else {
$in{$_} =~ s/\r\n/
/g;
$in{$_} =~ s/\r/
/g;
$in{$_} =~ s/\n/
/g;
$in{$_} =~ s/\0/ /g;

print $in{$_};
}

print "









EOM
exit;
}

#-------------------------------------------------
# tH[fR[h
#-------------------------------------------------
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');

# ^Or
$key =~ s/&/&/g;
$key =~ s/"/"/g;
$key =~ s/ $key =~ s/>/>/g;
$val =~ s/&/&/g;
$val =~ s/"/"/g;
$val =~ s/ $val =~ s/>/>/g;

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

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

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

push(@key,$key);
}

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

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




$subject
$body
EOM
}

#-------------------------------------------------
# G[
#-------------------------------------------------
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');

# tH[}bg
$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);
}

#-------------------------------------------------
# zXg
#-------------------------------------------------
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; }
}

#-------------------------------------------------
# `FbN[h
#-------------------------------------------------
sub check {
&header;
print <

Check Mode



    EOM

    # [\tg`FbN
    print "
  • [\\tgpXF";
    if (-e $mailprog) { print "OK\n"; }
    else { print "NG $mailprog\n"; }

    # jcode.pl o[W`FbN
    print "
  • jcode.plo[W`FbNF";

    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 "o[WB $v1.$v2\n";
    } else {
    print "o[WOK (v $v1.$v2)\n";
    }

    print <
  • o[W : $ver



EOM
exit;
}


__END__


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

[戻る]



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