#!/usr/local/bin/perl # メール送信CGI Version 1.00 # # 2000/ 7/ 5 宍戸 輝光 # # このプログラムは、自由に転載・改変・配布できます。 # 設置方法−perl/sendmailのパスや送信先を設定し、この # スクリプトを適当な名前(pmail.cgiなど)でサーバーに # 転送します。その後、ファイルに実行属性(755など)を # つけてCGIにリンクを張れば完了。必要なファイルはこの # CGIスクリプトだけです。 require "jcode.pl"; # postされたデータを読み込む read(STDIN,$query,$ENV{'CONTENT_LENGTH'}); @indata=split(/&/,$query); foreach $body(@indata) { ($name,$val)=split(/=/,$body); $val=~ tr/+/ /; # データをデコード $val=~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C",hex($1))/eg; $val=~ s//>/g; $val=~ s/\r\n/\n/g; # 改行を統一 $val=~ s/\r/\n/g; $val=~ s/\n/\t/g; # 改行をタブに置換 &jcode'convert(*val,"sjis"); $form{$name}=$val; } $mode=$form{'mode'}+0; $name=$form{'name'}; $email=$form{'email'}; $http=$form{'http'}; $comment=$form{'comment'}; $sendmadr='shishido@mail.sm.rim.or.jp'; # メール送信先 $sendmname="宍戸 輝光"; # メール受信者の名前 $cmd="/usr/lib/sendmail"; # sendmailパス $ret="../index.html"; # 送信後「戻る」にリンクするパス if ($mode==0) { print "Content-type: text/html\n\n\n\n\n"; print "

メール送信フォーム

\n\n"; print "

 メールアドレスのない方でも私にメールを送れます。"; print "このホームページのご感想やご意見、私への個人的なメッセージなどお気軽にお書きください。

\n\n"; print "

メール送信先・$sendmname<$sendmadr>
\n"; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n
お名前
メールアドレス
ホームページ
本文

\n\n"; print "

*お名前と本文は必須です。

\n\n"; print "\n\n"; exit; } elsif ($mode==1) { if ($name eq '') { print "Content-type: text/html\n\n\n\n\n"; print "

 お名前を入れてください。

\n\n"; print "\n\n"; exit; } if ($comment eq '') { print "Content-type: text/html\n\n\n\n\n"; print "

 本文を入れてください。

\n\n"; print "\n\n"; exit; } if (length($comment)>2048) { print "Content-type: text/html\n\n\n\n\n"; print "

 本文が長すぎます。

\n\n"; print "\n\n"; exit; } print "Content-type: text/html\n\n\n\n\n"; $vcomment=$comment; # 本文の内容を表示用変数にコピー $vcomment=~ s/\t/\n/g; # 置換した改行を元に戻す print "

送信内容確認

\n\n"; print "

 以下の内容でメールを送信します。

\n\n"; print "

メール送信先・$sendmname<$sendmadr>
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n
お名前$name
メールアドレス$email
ホームページ$http
本文
\n$vcomment

\n\n"; print "\n\n"; exit; } elsif ($mode==2) { # ファイル保存&メール送信 $vcomment=$comment; $vcomment=~ s/\t/\n/g; $mail="SUBJECT: CGI Mail\n\n"; $mail=$mail."name-$name\n"; $mail=$mail."email-$email\n"; $mail=$mail."http-$http\n\n"; $mail=$mail."本文\n$vcomment\n"; &jcode'convert(*mail,'jis'); open(M, "|$cmd $sendmadr"); print M $mail; close(M); print "Content-type: text/html\n\n\n\n\n"; print "

送信完了

\n\n"; print "

ありがとうございました。

\n"; print "

戻る

\n\n"; print "\n\n"; }