| Blatj (メール送信機能) 設定のメモ(2) |

|
#!/www/perl/bin/perl ## ----------------------------------------------------------------------------- ## FormMail for LocalServer(with Blatj) v1.0 ## by KENT (99/03/21) :改造者 Hideo Hirobe(2000/12/05) ## E-MAIL: kent@lemon.ne.jp :改造者 E-Mail:hirobe@mx.biwa.ne.jp ## WWW: http://www.lemon.ne.jp/~kent/ :改造者 WWW:http://www.biwa.ne.jp/~hirobe/ ## ## ---[注意事項・合意事項]------------------------------------------------------- ## 1. このプログラムはローカルサーバ用に作成されたメール送信スクリプトであり、 ## フリーソフトです。 ## 2. このプログラムを使用したいかなる損害に対して作者はその責任を一切負いません。 ## 3. このプログラムの設置に関する質問はご遠慮下さい。 ## ------------------------------------------------------------------------------ require './jcode.pl'; ## --- 設定 $blat = 'c:\www\mail\blatj.exe'; # Blatj までのパス $mailto = 'sysop@mail.kitachu-net.ed.jp'; # 送信先メールアドレス $subject = "外部への送信依頼です"; # メールタイトル if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { local($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # 文字コード変換 &jcode'convert(*value,'sjis'); $FORM{$name} = $value; } $grade = $FORM{'Grade'}; $class = $FORM{'Class'}; $name = $FORM{'name'}; $email = $FORM{'email'}; $aite = $FORM{'Aite'}; $atesaki=$FORM{'Atesaki'}; $title = $FORM{'Title'}; $honbun1 = $FORM{'Honbun1'}; $honbun2 = $FORM{'Honbun2'}; $honbun3 = $FORM{'Honbun3'}; $honbun4 = $FORM{'Honbun4'}; $honbun5 = $FORM{'Honbun5'}; if ($name eq "") { &error("あなたの名前が記入されていません。"); } if ($email eq "") { &error("あなたのE-Mailの記入がありません。"); } if ($aite eq "") { &error("相手の方の名前の記入がありません。"); } if ($atesaki eq "") { &error("相手の方のE-Mialの記入がありません。"); } if ($title eq "") { &error("メールのタイトルの記入がありません。"); } $honbun5 =~ s/\r\n/\n/g; $honbun5 =~ s/\r/\n/g; $subject =~ s/ //g; $sendfile = "所属 : $grade年 $class組\n名前 : $name\nE-Mail: $email\n\n相手 : $aite 様\n宛先 : $atesaki\n\nTitle :\n$title\n\n本文 :\n$honbun1\n\n$honbun2\n\n$honbun3\n\n$honbun4\n\n" . $honbun5; #この部分の処理に手こずりましたが、何とかうまくいきました。 $tmpfile = "./tmp.$$"; open(TMP,">$tmpfile"); print TMP "$sendfile\n"; close(TMP); system("$blat $tmpfile -t $mailto -s $subject"); unlink($tmpfile); &header; print "<center><font COLOR=#0000ff><h2>送信はうまくいきました。</h2></font></center>\n"; print "</body></html>\n"; exit; sub header { print "Content-type: text/html\n\n"; print "<html><head><title>$title</title></head>\n"; print "<body>\n"; } sub error { &header; print "<center><h3>ERROR</h3>\n"; print "<P><font color=#dd0000><B>$_[0]</B></font>\n"; print "</center>\n"; print "</body></html>\n"; exit; } |
|
From: sysyop@mail.kitachu-net.ed.jp To: sysop@mail.kitachu-net.ed.jp Subject: 外部への送信依頼です |
|
所属 : 1年 1組 名前 : 長浜太郎 E-Mail: taro@mail.kitachu-net.ed.jp 相手 : 廣部豪男 様 宛先 : hirobe@mx.biwa.ne.jp Title : 最終確認です 本文 : はじめまして。 メール送信フォームの最終確認です。 フォームがうまく使えるといいですね。 さてさてどうでしょうか。 では。やってみます。 |