以下、formmail.cgiの中身です。
http://planetscuba.blog5.fc2.com/blog-entry-2001.html
▽5
●
rouge_2008 ●300ポイント ベストアンサー |
「# メールボディを作成する」の処理内(※295行目の「$mailbody .= "$naiyo_o\n\n";」から318行目のforループの処理終了「}」までの変更になります。)
# $mailbody .= "$naiyo_o\n\n"; # この行の前に次の処理を追加して、$mailbodyには変数で代入します。 $naiyo_o = "$naiyo_o\n\n"; $naiyo_o =~ tr/+/ /; $naiyo_o =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $naiyo_o =~ s/[\r\n]+/\n/g; &jcode'convert(*naiyo_o, "jis"); $mailbody .= $naiyo_o; for ($i = 1; $i < $cnt-3; $i++) { if($FORM{$FORM[$i]} ne ""){ if($FORM[$i] eq $onamae){ $first = "\n代表\の方の情報----------------------------------------------\n"; $first =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*first, "jis"); $mailbody .= $first; } if($FORM[$i] eq $onamae2){ $second = "\n2人目の方の情報----------------------------------------------\n"; $second =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*second, "jis"); $mailbody .= $second; } if($FORM[$i] eq $onamae3){ $third = "\n3人目の方の情報----------------------------------------------\n"; $third =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*third, "jis"); $mailbody .= $third; } if($FORM[$i] eq $onamae4){ $fourth = "\n4人目の方の情報----------------------------------------------\n"; $fourth =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*fourth, "jis"); $mailbody .= $fourth; } $mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n"; } }
※エンコードされていない箇所とエンコードされている箇所が混在していた為、文字化けしていたようですので、すべてエンコードされるように変更しました。
※今まで受信したメールには、フォームで入力した人数分の情報とコメントが記載されていたでしょうか?
上記のコードでは届いていなかった可能性があります。
入力されたすべての情報を受信したい場合は、次の記述を使ってください。(※全員の情報送信済みだったり、コメントに質問などが書かれていた場合、話がかみ合わなかったのではないかと思うのですが・・・)
# $mailbody .= "$naiyo_o\n\n"; # この行の前に次の処理を追加して、$mailbodyには変数で代入します。 $naiyo_o = "$naiyo_o\n\n"; $naiyo_o =~ tr/+/ /; $naiyo_o =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $naiyo_o =~ s/[\r\n]+/\n/g; &jcode'convert(*naiyo_o, "jis"); $mailbody .= $naiyo_o; for ($i = 1; $i < $cnt; $i++) { if($FORM{$FORM[$i]} ne ""){ if($FORM[$i] eq $onamae){ $first = "\n代表\の方の情報----------------------------------------------\n"; $first =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*first, "jis"); $mailbody .= $first; } if($FORM[$i] eq $onamae2){ $second = "\n2人目の方の情報----------------------------------------------\n"; $second =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*second, "jis"); $mailbody .= $second; } if($FORM[$i] eq $onamae3){ $third = "\n3人目の方の情報----------------------------------------------\n"; $third =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*third, "jis"); $mailbody .= $third; } if($FORM[$i] eq $onamae4){ $fourth = "\n4人目の方の情報----------------------------------------------\n"; $fourth =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*fourth, "jis"); $mailbody .= $fourth; } # 項目名の比較の為にエンコードします。※お名前?お名前4についても、項目名が固定で変更予定がないのでしたら、+記号の変換と改行コードの変換の行は削除するかコメントアウトしても大丈夫です。 $comment = 'コメント'; $comment =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*comment, "jis"); if($FORM[$i] eq $comment){ $comment = "\nコメント(ご質問・ご連絡など)-------------------------------\n"; $comment =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; &jcode'convert(*comment, "jis"); $mailbody .= $comment; } $mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n"; } }
※コメントでの質問ですが、カスタマイズしている箇所がバージョンアップの変更点に影響している場合、コピー&ペーストしただけでは動かない可能性もあります。