Free CGI Perl PHP Script Olive Design CGI

メールフォーム その1

メールをWebから送信する、シンプルなメールフォームスクリプトです。

ファイルmailform01.htmlとmailform01.cgiを作成して下のソースをそれぞれ貼り付けます。

mailform01.cgiのパーミションを755に変更します。

文字コード変換には、jcode.plライブラリを使用します。

サンプル

mailform01.html

<html>
<head>
<title>メールフォーム</title>
<form method="post" action="mailform01.cgi">
発信者 (メールアドレス): <br/>
<input type="text" name="from">
<br>
Subject(題名) :
<br>
<input type="text" name="subject">
<br>
メール本文 :
<br>

<textarea name="comment" rows=5 cols=30>
</textarea><p>
<input type="submit" value="送る"></p>

</form>
</body>

ソース mailform01.cgi

#!/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 "<html>\n"; print "<body>\n"; print "<b>$_[0]</b><<br/>\n"; print "$_[1]\n"; print "</body></html>\n"; exit; } #送信完了表示 sub end { print "Content-type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "<b>送信完了</b><br>\n"; print "</body></html>\n"; exit; } __END__
Perl PHP Free CGI Script OliveDesign CGI

Perl PHP Free CGI Script OliveDesign CGI

OliveDesign CGIプライバシーポリシー