#!/usr/bin/perl #文字コード変換ライブラリ require 'jcode.pl'; #メールソフトまでのパス $sendmail = '/usr/lib/sendmail'; #送信先メールアドレス $mailto = 'xxx@xxx.com'; #デコード処理 read STDIN,$input,$ENV{'CONTENT_LENGTH'}; @pairs = split(/&/,$input); foreach $pair (@pairs) { ($list, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value, 'jis'); $FORM{$list} = $value; } $from = $FORM{'from'}; $subject = $FORM{'subject'}; $comment = $FORM{'comment'}; #未記入の場合や送信者アドレスに@マークがないとエラー表示 if(($from eq "")||($subject eq "")||($comment eq "")||(!($from =~ /@/)) ) {&error('送信不可','全ての項目を埋めないと送信できません.'); } #メールソフトなんらかの原因で使えない場合エラー表示 if (!(open(MAIL,"| $sendmail -t"))) { &error('送信不可','何らかの原因で送信できません.'); } print MAIL "To: $mailto\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; print MAIL "$comment\n"; close(MAIL); &end; #エラーメッセージ表示 sub error { print "Content-type: text/html\n\n"; print "\n"; print "
\n"; print "$_[0]