※ ChatGPTを利用し、要約された質問です(原文:CGIメールフォームの件名について)
CGIメールフォームの件名について
このQ&Aのポイント
CGIメールフォームでの件名の表示方法についてご質問です。具体的には、mailform.htmlとmailform.cgiの関連部分にどのような記述が必要かお知りになりたいです。
ホームページ上にCGIで動作するメールフォームを作成しましたが、届くメールの件名が(件名なし)と表示されます。件名を表示するための記述方法を教えてください。
mailform.htmlとmailform.cgiを使用してCGIメールフォームを作成しましたが、届くメールの件名が表示されません。CGIファイルに必要な記述方法をご教示ください。
ホームページ上にCGIで動作するメールフォームを作成しました。実際にmailform.htmlとmailform.cgiをアップロードして、正常に送信先のメールアドレスにメールフォームの内容が送信されてきました。
しかし届いたメールの件名は(件名なし)と表示されます。 CGIプログラムに関してほとんど知識が無いので、mailform.html mailform.cgiはテンプレートを使用しています。
mailform.htmlの内容に件名を追加して、実際に届くメールに件名が表示されるようにするには、CGIファイルにどう記述すればよいでしょうか。
<mailform.htmlの内容>
<TABLE>
<TBODY>
<TR>
<TH nowrap>お問い合わせ内容</TH>
<TD colspan="2"><TEXTAREA name="Kansou" rows="5" cols="50"></TEXTAREA></TD>
</TR>
<TR>
<TH nowrap>お名前</TH>
<TD colspan="2"><INPUT name="Namae" size="50"></TD>
</TR>
<TR>
<TH nowrap>電子メール</TH>
<TD colspan="2"><INPUT name="Mail" size="50"></TD>
</TR>
<TR>
<TH nowrap>電話番号</TH>
<TD colspan="2"><INPUT name="Tel" size="50"></TD>
</TR>
<TR>
<TH nowrap></TH>
<TD align="center"><INPUT type="submit" value=" 送る "></TD>
<TD align="center"><INPUT type="reset" value=" リセット "></TD>
</TR>
</TBODY>
</TABLE>
<mailform.cgiの内容>
require 'jcode.pl';
#Get the input
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
#Split the name-value pairs
@pairs = split (/&/,$buffer);
foreach $pair(@pairs)
{
($name, $value) = split(/=/, $pair);
#Un-Webify plus signs and %-encoding
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$FORM{$name} = $value;
if ( $name ne "to" ) {
push (@fields, $name) unless (grep(/^$name$/, @fields));
}
}
#
### 送信フォーマット
#
$mail_msg = "";
foreach $field (@fields) {
$mail_msg = "$mail_msg-----------------------------------------------\n";
$mail_msg = "$mail_msg($field) $FORM{$field}\n";
}
$mail_msg = "$mail_msg-----------------------------------------------\n";
#
### ShiftJis to Jis
#
&jcode'convert(*mail_msg, 'jis');
open(MAIL,"| $mailprog $mailto")|| die "Can't open $mailprog!\n";
print MAIL $mail_msg;
close(MAIL);
#
### Make the person feel good for writing to us
#
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Thank you!</TITLE></HEAD>\n";
print "<BODY bgcolor=\"#9dffff\">\n";
print "<H2 align=\"center\">送信いただき、ありがとうございました!</H2>\n";
print "</BODY></HTML>\n";
よろしくお願いします。
お礼
ご回答いただき、ありがとうございます。 mailform.cgiに以下の内容を追記しました。メールフォームからの問い合わせをメールソフトが受信すると、件名に「お問い合わせが届いています」と表示されるようになりました。 $subject = 'お問い合わせが届いています'; ありがとうございます。