#!/usr/bin/perl #===================================================================== # 題目 #===================================================================== # 名 称: wwwmail Ver3.00 # 最終更新: 1998年7月19日 # 作 成 者: とほほ # 種 別: フリーソフト # 再 配 布: 再配布可能(許可不要) # 動作OS: UNIX系Webサーバー # 設置方法: http://wakusei.cplaza.ne.jp/twn/wwwmail.htm #===================================================================== # カスタマイズ #===================================================================== # ★ perlのパス名 # このファイルの先頭の1行を、あなたが利用するサーバーにインストー # ルされた perl コマンドのパス名に応じて変更してください。例えば、 # 私が加入している BIGLOBE では、#!/usr/mesh/bin/perl となります。 # 解らない場合は、プロバイダやサーバの管理者にお問い合わせください。 # 「#!」の前には、空文字や空行がはいらないようにしてください。 # ★ 送信先メールアドレス # $mailto = 'abc@xxx.yyy.zzz'; のようにあなたのメールアドレスに # 書き換えてください。 $mailto = 'india@samasati.net'; $mailto1 = 'samasati@fine.ocn.ne.jp'; # ★ サブジェクト(件名) # 送信されるメールのサブジェクトを指定してください。 $subject = 'サマサティより'; # ★ メール送信コマンド # このコマンドが存在しない場合は、このスクリプトは動作しません。また、 # 存在していても、メール送信の設定が行われていない場合があります。詳 # 細はプロバイダやサーバーの管理者にお問い合わせください。 $sendmail = '/usr/lib/sendmail'; # ★ 漢字コード変換ライブラリ # ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/ から入手可能です。 # wwwmail.cgi と同じディレクトリに置いてください。 $jcode = 'jcode.pl'; # ★ MIMEコード変換ライブラリ # http://www.cc.rim.or.jp/~ikuta/mime_pls/ から入手可能です。 # wwwmail.cgi と同じディレクトリに置いてください。 $mimew = 'mimew.pl'; # ★ 送信結果メッセージ(ヘッダ) # < サマサティ通販
END_OF_DATA # ★ 送信結果メッセージ(フッタ) # <

トップページへ

END_OF_DATA #==================================================================== # 自己診断機能。 #==================================================================== # メール送信がうまく動作しない時に、 # http://〜/〜/wwwmail.cgi?test の形式で呼び出してください。 if ($ARGV[0] eq "test") { print "Content-type: text/html\n"; print "\n"; print "\n"; print "\n"; print "WwwMail自己診断\n"; print "\n"; print "\n"; print "CGIは正常に動作しています。
\n"; unless (-f $sendmail) { print "

$sendmail がありません。
\n"; } unless (-f $jcode) { print "

$jcode がありません。
\n"; } unless (-f $mimew) { print "

$mimew がありません。
\n"; } print "\n"; print "\n"; exit 0; } #==================================================================== # 本体 #==================================================================== # # ライブラリの呼び出し # require $jcode; require $mimew; # # 入力値を読み取る # if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'}); @a = split(/&/, $query_string); foreach $x (@a) { ($name, $value) = split(/=/, $x); $name =~ tr/+/ /; $name =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*name, "jis"); $value =~ tr/+/ /; $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $value =~ s/[\r\n]+/\n/g; &jcode'convert(*value, "jis"); if ($FORM{$name} eq "") { $FORM{$name} = $value; $FORM[$cnt++] = $name; } else { $FORM{$name} .= (" " . $value); } } } # # EMAILが指定されていなければ、(unknown)とする。 # if ($FORM{'EMAIL'} eq "") { $FORM{'EMAIL'} = "(unknown)"; } # # メールヘッダを作成する # { $sub50="様へ確認のメールです"; &jcode'convert(*subject, "jis"); &jcode'convert(*sub50, "jis"); # $mailhead .= "To: $mailto\n"; # if ($FORM{'EMAIL'} ne "(unknown)") { # $mailhead .= "Cc: $FORM{'EMAIL'}\n"; $mailhead .= "To: $FORM{'EMAIL'}\n"; if ($FORM{'EMAIL'} ne "(unknown)") { $mailhead .= "Bcc: $mailto\n"; $mailhead .= "Bcc: $mailto1\n"; } $mailhead .= "From: $mailto\n"; $mailhead .= "Subject: $subject$FORM{'NAME'}$sub50\n"; } # # メールボディを作成する # { $sub="ご注文の詳細は以下の通りです。"; $sub1="上の情報に間違いがありましたら、サマサティまで至急ご連絡ください。"; $sub2="サマサティ通販をご利用いただきまして、まことにありがとうございます。"; $sub21="まとめ買い(同一商品3個以上)はその商品を2割引させていただきます"; $sub22="(送料は別途です。あらためて送料・振込み先をご連絡させていただきます。)"; $sub23="注文詳細は以下の通りです。送料、振込み先などにつきましては、"; $sub24="あらためてご連絡させていただきますので、よろしくお願いいたします。"; $sub25="─────────────"; $sub26="───────────────────────────────────"; $sub3="総合計:"; $sub4="(2割引 送料は別途です)"; $sub5="様のご住所"; $sub6="〒"; $sub7=" 様"; $sub8=" 様からのメッセージ"; $sub9="●サマサティ通販────────────────────────────"; $sub10="Email:samasati\@aminet.or.jp"; $sub11="PHONE/FAX:0091-20-6053624"; $sub12="2-Anand Park ,Koregson Park , Pune 411001(MS), INDIA"; &jcode'convert(*sub, "jis"); &jcode'convert(*sub1, "jis"); &jcode'convert(*sub2, "jis"); &jcode'convert(*sub21, "jis"); &jcode'convert(*sub22, "jis"); &jcode'convert(*sub23, "jis"); &jcode'convert(*sub24, "jis"); &jcode'convert(*sub25, "jis"); &jcode'convert(*sub26, "jis"); &jcode'convert(*sub3, "jis"); &jcode'convert(*sub4, "jis"); &jcode'convert(*sub5, "jis"); &jcode'convert(*sub6, "jis"); &jcode'convert(*sub7, "jis"); &jcode'convert(*sub8, "jis"); &jcode'convert(*sub9, "jis"); &jcode'convert(*sub10, "jis"); &jcode'convert(*sub11, "jis"); &jcode'convert(*sub12, "jis"); $mailbody .= "\n"; $mailbody .= "\n"; $mailbody .="$FORM{'NAME'}$sub7\n"; $mailbody .= "$sub25\n"; $mailbody .="\n"; $mailbody .= "\n"; $mailbody .= "\n"; $mailbody .= "$sub2\n"; $mailbody .= "$sub21\n"; $mailbody .= "$sub23\n"; $mailbody .= "$sub24\n"; $mailbody .= "\n"; $mailbody .= "$sub\n"; $mailbody .= "$sub26\n"; $mailbody .= "$FORM{'content'}\n"; $mailbody .= "$sub26\n"; $mailbody .= "$sub3 \\$FORM{'total'} \n"; $mailbody .= "$sub22\n"; $mailbody .= "\n"; $mailbody .= "\n"; $mailbody .= "$FORM{'NAME'} $sub5\n"; $mailbody .= "$sub6 $FORM{'zipcode'} "; $mailbody .= "$FORM{'adress'}\n"; $mailbody .= "TEL:$FORM{'tel'} "; $mailbody .= "FAX:$FORM{'fax'}\n"; $mailbody .= "MAIL:$FORM{'EMAIL'}\n"; $mailbody .= "\n"; $mailbody .= "$FORM{'NAME'}$sub8\n"; $mailbody .= "$sub26\n"; $mailbody .= "$FORM{'MESSAGE'}\n"; $mailbody .= "\n"; $mailbody .= "$sub26\n"; $mailbody .= "\n"; $mailbody .= "$sub1\n"; $mailbody .= "\n"; $mailbody .= "$sub9\n"; $mailbody .= "$sub10\n"; $mailbody .= "$sub11\n"; $mailbody .= "$sub12\n"; $mailbody .= "\n"; $mailbody .= "\n"; } # # メールを送信する # if (-x $sendmail) { unless (open(OUT, "| $sendmail -n -t")) { &errexit("メールの送信に失敗しました。"); } unless (print OUT &mimeencode($mailhead)) { &errexit("メールの送信に失敗しました。"); } unless (print OUT $mailbody) { &errexit("メールの送信に失敗しました。"); } close(OUT); } # # ブラウザ画面に送信結果を書き出す # { &jcode'convert(*header, "euc"); &jcode'convert(*footer, "euc"); $mail = $mailbody; &jcode'convert(*mail, "euc"); $mail =~ s/&/&/g; $mail =~ s/"/"/g; $mail =~ s//>/g; $mail =~ s/\n/
/g; print "Content-type: text/html\n"; print "\n"; print "$header\n"; print "$mail\n"; print "$footer\n"; } # # エラーメッセージを出力して終了 # sub errexit { $msg = "\n"; $msg .= "\n"; $msg .= "メール送信結果\n"; $msg .= "\n"; $msg .= "\n"; $msg .= "メールの送信に失敗しました。\n"; $msg .= "ブラウザの [戻る] ボタンで戻ってください。\n"; $msg .= "\n"; $msg .= "\n"; &jcode'convert(*msg, "jis"); print "Content-type: text/html\n"; print "\n"; print "$msg\n"; exit(0); }