- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メールフォームから自動返信される結果の文字が2回繰り返されます。)
自動返信メールで結果が2重に表示される問題の原因とは?
このQ&Aのポイント
- perlで作成されたCGIメールフォームで自動返信メールの結果が2重に表示される問題に直面しています。
- 結果が2回表示される原因を特定するために、以下のコードを調査しました。
- パラメータの処理やHTMLテンプレートのパラメータに関連するコードを解析したところ、問題の解決には至っていません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> perlでできたCGIメールフォームをカスタマイズしていますが、テストをすると、自動返信されるメールに、結果が一部、2重に表示されてしまいます。 結果が一部、2重に表示されるとは、文が二回繰り返すということですか?単語が二回繰り返すということですか? 提示されているコードにメール本文を整形している箇所が見当たらないのですが、HTML::Templateを使ってメール本文を作成しているのですか? とりあえずメール送信処理に関わっている変数を全て調べればわかるのではないでしょうか。
お礼
お世話になります。 結果が2重に出力されてしまう件、解決いたしました。 詳細は以下です。 即座にご回答いただきまして誠にありがとうございます。 =============================================================== テンプレートのHTMLには form.html check.html send.html とあるのですが、引数を<input type="hidden" value="item_name">として、form.html、check.htmlのどちらにも入れていたのを、form.htmlのみとしたところうまくいきました。 よく調べてみると入力→確認の際には、<!-- TMPL_LOOP NAME=loop_list -->と送信内容はまとめて渡しているようでした。 これに対して重ねて引数を渡していたところに問題があったようです。 CGIには以下とありましたので、送信データを一まとめにして簡潔に渡していくため一度リスト化をしているということでしょうか。 foreach my $key ($in->param) { my @list = $in->param($key); $in{$key} = join('/',@list); } 勉強してもっとうまく説明できるよう、精進します。 本当にありがとうございました。
補足
ご回答ありがとうございます。 はい、自動返信メールで単語が以下のように繰り返されてしまいます。 ============================================================= 商品名 :アイテム名/アイテム名 ←ここです。 メールアドレス : ~ またご指摘のように HTML::Templateを使ってメール本文を作成しています。以下コードです。(テンプレートのmail.txt) ============================================================= 商品名 :<!-- TMPL_VAR NAME=item_name --> メールアドレス : ~ いろいろ説明不足で申し訳ありません。 「メール送信処理に関わっている変数」を調べてみます。 CGI自体には「はじめ?」「cehck」「send」「メール送信」のように似たコードのブロックがあり、「はじめ?」だけにコードを追加しただけで、ひとまずメールに反映できたので、そこにだけにとどまっています。 「メール送信」箇所も調べてみます。 ありがとうございます。 また何かお気づきがございましたら、ご回答いただけますと幸いです。 まずは調べてみます。 よろしくお願いします。