※ ChatGPTを利用し、要約された質問です(原文:CGIがうまくいかないので困っています)
CGIがうまくいかないので困っています
フリーソフトのCGIを利用してメールフォームを設定しましたが、うまくいきません。困っていますのでどなたか助けてください。
送信した際にこのような表示があり、確かに受信できますが、一部しか表示しません。
さくらレンタルサーバー利用です。
*は自分のアドレス
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
To: ****@***.ocn.ne.jp
From: ****@***.ocn.ne.jp
Subject: HPからのお問い合わせ
message =
name
name以外にも入力箇所がいくつもあるのに、message=とnameしか送られてきません。
htmlは次の通りです。
<form action="mail/mail.cgi" style="font-weight : normal;color : rgb(102, 102, 102);" method="post" enctype="text/plain">
<h3>お問い合わせフォーム</h3>
<p>*は入力の必須項目です。</p>
<table>
<tbody>
<tr>
<th>お問い合わせ内容*</th>
<td><textarea name="message" class="l" cols="40" rows="12"></textarea></td>
</tr>
<tr>
<th>お名前(漢字)*</th>
<td><input type="text" name="name" class="m"></td>
</tr>
<tr>
<th>お名前(フリガナ)*</th>
<td><input type="text" name="kana" class="m"></td>
</tr>
<tr>
<th>E-Mail*</th>
<td><input type="text" name="email" class="l"></td>
</tr>
<tr>
<th>電話番号(半角)*</th>
<td><input type="text" name="tel" class="l"></td>
</tr>
<tr>
<th>FAX番号(半角)</th>
<td><input type="text" name="fax" class="l"></td>
</tr>
</tbody>
</table>
<input type="submit" value=" 送信 " class="button"> <input type="reset"><input type="hidden" name="to" value="******"></form>
<hr>
CGIは
#!/usr/local/bin/perl
# ★ perlのパス名
# ★ 送信先メールアドレス
$mailto = '******';
# ★ サブジェクト(件名)
$subject = 'HPからのお問い合わせ';
# ★ メール送信コマンド
$mailcmd = '/usr/sbin/sendmail';
# ★ -fオプションの有無
$usefoption = 1;
# ★ 送信結果メッセージ(ヘッダ)
# <<END_OF_DATA ~ END_OF_DATA の間を好みにあわせて変更してください。
$header = <<END_OF_DATA;
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<title>メール送信結果</title>
</head>
<body>
<h1 style=\"color:#36f;font-size:14px;\">メール送信結果</h1>
<hr>
<p>下記内容でメールを送信しました。ありがとうございました。</p>
<hr>
END_OF_DATA
# ★ 送信結果メッセージ(フッタ)
# <<END_OF_DATA ~ END_OF_DATA の間を好みにあわせて変更してください。
$footer = <<END_OF_DATA;
<hr>
<a href="../index.html">[戻る]</a>
</body>
</html>
END_OF_DATA
#====================================================================
# 自己診断機能。
#====================================================================
# メール送信がうまく動作しない時に、
# http://~/~/wwwmail.cgi?test の形式で呼び出してください。
if ($ENV{'REQUEST_METHOD'} eq "GET") {
print "Content-type: text/html; charset=Shift_JIS\n";
print "\n";
print "<html>\n";
print "<head>\n";
print "<title>WwwMail自己診断</title>\n";
print "</head>\n";
print "<body>\n";
print "<p>CGIは正常に動作しています。</p>\n";
unless (-f $mailcmd) {
print "<p>$mailcmd がありません。</p>\n";
}
unless (-x $mailcmd) {
print "<p>$mailcmd が実行可能ではありません。</p>\n";
}
unl
お礼
okmotokun様 指示どおり、text/plainを削除したら、メール内容がすべて届きました。 ありがとうございます。 質問が中途半端だったにもかかわらず、大変すばらしい回答をいただき、ありがとうございます。 また、初心者なので、なぜ解決できたか意味さえわからないままですが、数日間苦しんでいましたので、本当に感謝しています。 以上です。