こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2012-04-02 21:39:49

QNo.7398769

困ってます

質問者が選んだベストアンサー

質問には肝心なところが書いてないので...
FORMのenctype属性値 text/plain はダメだと思います。ファイル添付は無いですからデフォルト(application/x-www-form-urlencode)のままで良いはずです。削除してください。

投稿日時 - 2012-04-04 15:34:49

お礼

okmotokun様
指示どおり、text/plainを削除したら、メール内容がすべて届きました。
ありがとうございます。

質問が中途半端だったにもかかわらず、大変すばらしい回答をいただき、ありがとうございます。
また、初心者なので、なぜ解決できたか意味さえわからないままですが、数日間苦しんでいましたので、本当に感謝しています。

以上です。

投稿日時 - 2012-04-05 08:00:21

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問