• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIで自動返信メール)

CGIで自動返信メール

このQ&Aのポイント
  • サイトに問い合せフォームを作成し、自分宛メールと自動返信メールが送付されるようにしたいです。
  • CGIの中身を書き換えメールのヘッダに言葉を入れたいのですがうまくいきません。
  • 検証(1)では回答内容の羅列のみ表示され、検証(2)では回答内容が表示されるものの自動返信メールが届かず、検証(3)では回答内容が文字化けし、自動返信メールも届きません。

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

  • ベストアンサー
  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.2

それは、とほほさんのですね。 &jcode'convert(*mailbody, "jis"); http://www.tohoho-web.com/lng/200004/00040055.htm http://www.tohoho-web.com/wwwperl1.htm

masunona
質問者

お礼

ありがとうございます!! おっしゃるとおり、とほほさんのところのでした。 教えていただいたサイトを参考に修正したところ 見事文字バケが解消しました!! もう数日間ずっと文字バケと格闘してきましたが おかげでやっと解決できました!! 本当にありがとうございます!!!

その他の回答 (1)

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.1

メールボディと合体させるように書かないとダメ・・・ そもそも、本文はどこなのでしょう? その1行上部に挿入。 送信確認画面や完了画面を作り送信前に一旦formで渡したいのなら、 もっと多機能なCGIを使わないと無理です。 メール内容だけ、「○○様へ」とか「ありがとう」や「署名」を入れたいなら 回答内容文と合体させないとダメ。

masunona
質問者

お礼

ご回答ありがとうございます! メールボディー部分のCGIは以下のようになっています。 # # メールボディを作成する # { for ($i = 0; $i < $cnt; $i++) { $mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n"; } # "." のみの行は ". " に変換する。 # 2回繰り返さないと、2行連続で "." のみの行に対応できない # "." を ".." に変換する処理が一般的だそうだが、あえて、 # "." を ". " に変換する。 $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; } なので、以下の2つの方法を試してみました。 (1)一番上に足してみる 【結果】「Internal Server Error」になってしまう # # メールボディを作成する # { &jcode'convert(*subject, "jis");←★★ここです $maibody = "お問い合わせありがとうございます";←★★ここです for ($i = 0; $i < $cnt; $i++) { $mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n"; } # "." のみの行は ". " に変換する。 # 2回繰り返さないと、2行連続で "." のみの行に対応できない # "." を ".." に変換する処理が一般的だそうだが、あえて、 # "." を ". " に変換する。 $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; } (2)一番下に足してみる 【結果】送信完了画面、自分宛メール、自動返信メールともに 「お問い合わせありがとうございます」がどこにも表示されない # # メールボディを作成する # { for ($i = 0; $i < $cnt; $i++) { $mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n"; } # "." のみの行は ". " に変換する。 # 2回繰り返さないと、2行連続で "." のみの行に対応できない # "." を ".." に変換する処理が一般的だそうだが、あえて、 # "." を ". " に変換する。 $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; } { &jcode'convert(*subject, "jis");←★★ここです $maibody = "お問い合わせありがとうございます";←★★ここです } 相変わらず手探りですがまた教えていただけると助かります。。 お願いいたします!

masunona
質問者

補足

追記です。 メール本文CGIを追加してみたら(←★★部分) 以下のようなエラーになってしまいます (1)メール送信完了画面 入力した本文:正常 入力内容:文字バケ (2)自分宛メール 入力した本文:正常 入力内容:文字バケ (3)送信確認メール 入力した本文:文字バケ 入力内容:正常 # # メールボディを作成する # { &jcode'convert(*subject, "jis");←★★ $mailbody .= "お問い合わせありがとうございます。\n";←★★ $mailbody .= "以下の内容の応募が応募フォームよりありました。\n";←★★ $mailbody .= "《応募内容》\n"; for ($i = 0; $i < $cnt; $i++) { $mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n"; } # "." のみの行は ". " に変換する。 # 2回繰り返さないと、2行連続で "." のみの行に対応できない # "." を ".." に変換する処理が一般的だそうだが、あえて、 # "." を ". " に変換する。 $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; $mailbody =~ s/(^|\n)\.(\n|$)/$1. $2/g; } 文字バケを回避するにはどうしたらいいでしょうか。。。 引き続きお願いいたします!

関連するQ&A