• 締切済み

CGIフォームからのsendメールが文字化けしてしまいます

CGIフォームについて質問です。 フリーのCGIを使用してメールフォームを制作したのですが、sendメールが文字化けしてしまい、対処法がわからず行き詰まっています。 UFF-8対応のメールフォームCGIなのですが、送られてきたメールが下記のように全角のみ文字化けしてしまっています(メールアドレスの部分は文字化けしていません)。//////////////////////////////////////////////////////// お問い合わせいただきましてありがとうございます --ご送信内容の確認------------------------ 以下の内容が送信されました。 /*-email ****@*****.com /*-???????????? ???????????????????????? /*-????????? ????????? /*-???????????????????????? ?????????????????? ------------------------------------------ お問い合わせに関しましては、営業日3日以内にご対応させていただきます。 いましばらくお待ち頂けますようお願いいたします。 ///////////////////////////////////////////////////////////// このCGIは今まで何度も使用してきた物なので、いつも通りsend.cgiの設定(FROMのメールアドレスや、メールのタイトルなど)を変更しました。 ただ会社のサーバに設置するので、CGIを置くフォルダが制限されていたため、指定通りのフォルダにsend.cgiを入れパーミッションの変更もhtml側のactionのパスも変更しました。 ちなみに会社のサーバのディレクトリは +cgi---send.cgi | | form.html となっています。 このCGIを動かすには「Jcodモジュール」がインストールされていないといけないので、それがインストールされていないからかと思い、サーバ管理者に聞いてみたところ「Jcode.pm」はインストールされているとの事でした。 「Jcodモジュール」と「Jcode.pm」は違う物なのでしょうか? いつも使用している物なので、おかしいなと思い、同じファイルをプライベートで使用しているサーバにアップした所、文字化け無しのメールがきちんと届きました。 send.cgiのソース(設定変更できる部分)は下記のように記述されています。 #!/usr/bin/perl ## 2007-04-08 Ver.5.2 #require 'jcode.pl'; use Jcode; #server check (SPAM CHECK) $this_server = $ENV{'SERVER_NAME'}; #CGIソース内で設定する場合は下記に書きます。 #※HTMLで設定している場合無視されます。 $sendmail = '/usr/sbin/sendmail'; @mailto = ('*****@****.co.jp'); $thanks_url = 'http://***.net/**/thanks_01.html'; $subject = 'お問い合わせ'; $return_subject = 'お問い合わせありがとうございます'; $return_body = <<"EOF"; この度はお問い合わせありがとうございます。 --ご送信内容の確認------------------------ 以下の内容が送信されました。 [[resbody]] ------------------------------------------ お問い合わせに関しましては、営業日3日以内にご対応させていただきます。 いましばらくお待ち頂けますようお願いいたします。 EOF この[[resbody]]の所が文字化けしている状態です。 上記の記述の後にもソースが書かれているのですが、ここはいつも一切いじりません。 form.htmlのエンコーディングも <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-type" content="text/html ; charset=UTF-8" /> となっています。 ネットで色々検索してみたのですが、解決策に行き着く事が出来ずこちらに投稿させていただきました。 よろしくお願いいたします。

  • CGI
  • 回答数1
  • ありがとう数3

みんなの回答

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.1

フォーム入力データのデコードがうまくできてないのか、 メールデータのエンコードがうまくできてないのか、を確かめるのが先決ではありませんか。 入力データのデコード処理の前と後のデータを書き出してみたらどうでしょう。 それから、修正を考える方が良いと思います。

関連するQ&A

  • KentWebのCGIメールフォームの文字化け

    KentWebのCGIメールフォームを設置いたしました。 しかし、送信ボタンをおして、確認の画面が出たときには、文字化けしてしまっています。 ネットで調べたところ、 文字コードの決定が原因ということはわかったのですが、どこを直せばいいのかさっぱりわかりません。 初心者で、本や説明書を見ながらの見よう見まねで作成したHPなものですから、あまり技術的な事はわかりません。 したがいまして、情報としてずれているかもしれませんが、いくつかを記載しておきます。 メールフォームのHTMLのコードは<html lang="ja"> CGI  # Jcode宣言 my $j = new Jcode; とりあえず、どこをチェックすればよいのかアドバイスをお願いいたします。 非常に困っています。よろしくお願いいたします。 使用環境 windous7 ドリームウィーバーCS6 FFFTP

  • CGIの文字コードについて

    CGIを下記URLのサイトから落として、メールフォームを設置しました。 http://www.synck.com/contents/download/cgi-perl/mailform_jcode.html 「メールフォームCGI UTF-8対応版」というメールフォームです。 mailformというフォルダの中に send.cgi(プログラム本体) check.cgi(設置確認プログラム) count.dat(通し番号を記録するファイル) があり、send.cgiはメールアドレス等を書き換える程度の編集をしております。 フォームには必須項目を設け、何も入力せずに送信ボタンを押すと、「●●が入力されていません」というようなダイアログが表示されます。ですが、必須項目を入力して送信ボタンを押すと500エラーがでます。 「●●が入力されていません」という表示がなされるということは、cgiの設置自体はとりあえずできていると考えてよろしいですよね? 文字コードが問題だと思い、検索かけてみたもののよく理解できず、色々な文字コードで保存しては、実際にアップしたメールフォームを使って試していたら、一度だけ、設定したメールアドレスにきちんとメールが届きました。しかし、自動で送信される送信内容を確認するメールの方が文字化けしてしまいました。 逆に、自動で送信される送信内容の確認メールは届かないが、文字化けしたメールが設置したアドレスに来たこともありました。 設置者へのメールを送信者への内容確認メールが文字化けせずにきちんと送れたことはありません!! 長くなりましたが、どの文字コードで読み込み、そしてどの文字コードで保存したら良いか分かりません。 cgiの編集はTerapad、サーバはさくらインターネットのライトです。 サーバへのアップは直接さくらインターネットにログインして行っております。 ※CGI初心者です。初めて設置する完全素人です。 よろしくお願いします!!

    • 締切済み
    • CGI
  • フォームメールが文字化けします。。。

    cgiを使用したフォームメールについてですが、携帯のauとソフトバンクでフォームメールを利用した人からのメールが文字化けを起こしてしまいます。 そこで私が使っている、共用レンタルサーバ会社に連絡したら、 ”携帯端末に対応しているフォームメール CGI を自分で探して設置してくれ”と返事がありました。 そこで、色々探したのですが、見つかりませんでした。(よくわかりませんでした) 携帯端末に対応しているcgiはどこで見つければいいのでしょうか。 また、今のCGIに何かを付け加えることによって文字化けを起こさなくなるものなのでしょうか。わかる方いましたらお願いいたします。

    • ベストアンサー
    • CGI
  • フォームメールが文字化け

    アングラーズネット社の「インターネットショップCGI&受注管理」という書籍に付属されている「fmail」というCGIファイルを使ってメールフォーム作成してサイトにアップロードしたのですが、メール送信確認画面で文字化けします。そのメールフォームで受信したメールも文字化けしています。AdobeGoLiveCS2でホームページを作成しています。最初GoLiveでCGIファイルを読み込むとファイル内容が文字化けになっていたので、エンコーディングを日本語シフトjisに設定すると文字化けが解消されました。しかし、相変わらずメールフォーム及び受信メールは文字化けしたままです。 OSはWindowsXPです。 アドバイスよろしくお願い致します。

  • 文字化け対策済みのメールフォームCGIを探しています。

    さくらのレンタルサーバで、 kentwebのpostmailを利用したところ、文字化けをし、 対策を長時間が頑張ってみましたが文字化けは解消できませんでした。 そこで、メールフォームCGI自体を変えようと考えております。 以下のものを希望しております。 ・文字化け対策済み ・既存のページにメールフォームを埋め込めるもの  (デザインは既存ホームページのものを利用したいので) 以上です。 ご存知の方がいらっしゃいましたらぜひよろしくお願いいたします!

    • ベストアンサー
    • CGI
  • cgiスクリプトの文字化け

    既存のCGIライブラリ(cgi-lib.plとjcode.pl)を用いて、登録フォームを作りました。しかし、「入力」を押して、CGIを作用させると、文字化けがおこってしまいます。 cgiのなかで、文字コードをeucに変換しています。(jcode::convert機能)サーバーのCGI設定は全て確認しましたし、パーミッションも確認しています。文法などはあってると思いますし、ディレクトリ、文字コード(euc)・改行コード(LF)も確認しています。 他に原因があると思うのですが、回答よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • メールフォームで文字化けが出る

    http://okwave.jp/qa5038084.htmlの引き続きです。(メールフォーム) <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; ↓ sjis関連をutf8に書き換え、jcodeの頭文字をJに書き換え <meta http-equiv="Content-Type" content="text/html;charset=utf8"> &Jcode'h2z_utf8(*contenido) &Jcode'convert(*subject,'utf8'); &Jcode'convert(*infor,'utf8'); &Jcode'convert(*contenido,'utf8'); &Jcode'convert(*res_msg,'utf8'); print "Content-type: text/html;charset=shift_utf8\n\n"; require 'jcode.pl'をuse Jcode;に書き換え ※jcode::" となっている箇所はありません 結果 メールフォームはエラーや文字化けは出なくて成功しましたが、メール受信の際、ThunderbirdPortableメーラーでは全て文字化け(文字エンコーディングは「日本語ISO-2022jp」となっています)、ウェブメールのgmailでは内容は文字化けになっていませんが、タイトルが文字化けになっています。 どこが悪かったのでしょうか? 宜しくお願いします。

    • 締切済み
    • CGI
  • mb_send_mailで文字化け

    Windows環境でmb_send_mailを使い、メール送信のテスト を行っています。 文字コードの変換周りで、いろいろ試しているのですが、 うまくいきません。 Apache + PHP (Window)  ↓ メールサーバー(RedHat)  ↓ メール受信(Window) 上記の環境で、文字化けしないで、 メール送信するには、どうしたら良いのでしょうか? (コーディング例) mb_send_mail( $address, mb_convert_encoding($subject,"EUC-JP"), mb_convert_encoding($message,"SJIS"))

    • 締切済み
    • PHP
  • CGIメールフォームのメールが文字化けしてしまいます。

    こんにちは。 CGIから自動返信されるメールが 人によって文字化けしてしまうそうです。 私の場合は、文字化けしないのですが・・・。 誰も文字化けしないような、自動返信メールを作りたいのですが、 CGIのどこをいじればよいかわかりません。 よかったら、教えてください。お願いします。

    • 締切済み
    • CGI
  • CGIフォームメールが文字化けします。

    CGIで、フォームメールを作ったのですが、 自動返信されるメッセージが 相手によって文字化けするようです。 全文がこんな感じになってしまうそうです → "��Q�����t" どのPCでも閲覧できるような自動返信メールを 送らせたいと思っているのですが どこをどう編集すればよいのでしょうか。 よろしくお願いしますm(_ _)m

    • ベストアンサー
    • CGI

専門家に質問してみよう