サポート » プラグイン » Contact Form 7 文字化け(空白)になる件

  • お世話になっております。
    Wordpress 3.1.4にてContact Form 7(3.0.2.1)を使用しておりますが
    受信メールの2バイト文字が消えてしまいます。

    色々と調べた所、WP Multibyte Patchの
    /wp-content/plugins/wp-multibyte-patch/ext/ja/config-sample.phpを
    config.phpにリネームして、ファイル内の
    $wpmp_conf['mail_mode'] = 'auto';

    $wpmp_conf['mail_mode'] = 'JIS';
    に修正するという対応策を見つけて試してみました。
    するとFirefox(15.0.1)とIE(9.0.8112.16421)からはうまく文字化けせずに受信することができたのですが
    Google Chrome(21.0.1180.89 m)からではやはり入力した文字が空白で受信されてしまいます。

    ちなみに受信しているメールソフトはWinXP Pro(SP3) outlookexpressです。

    ブラウザに依存することなく正常に受信できる解決策をご存知の方がいらっしゃいましたら
    ぜひお知恵をお借りできればと思います。
    よろしくお願いいたします。

    環境については以下のとおりです
    PHP:4.3.9
    MySQL:4.1.22
    Wordpress : 3.1.4
    Contact Form 7 : 3.0.2.1
    WP Multibyte Patch : 1.3

    他に
    WP-Mail-SMTP : 0.9.1
    WP-Print : 2.50
    StatPress Reloaded : 1.5.21
    Archives for a category : 1.4b
    が動作しております。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • モデレーター Seisuke Kuraishi

    (@tenpura)

    設定1

    $wpmp_conf['patch_wp_mail'] = false;

    設定2

    $wpmp_conf['patch_wp_mail'] = true;
    $wpmp_conf['mail_mode'] = 'UTF-8';

    それぞれ試すとどうなりますか?

    モデレーター Takayuki Miyoshi

    (@takayukister)

    この問題とは直接関係ないかもしれませんが、使われているバージョンがどれも古すぎます。アップデートできないのでしょうか。

    それと、

    PHP:4.3.9
    MySQL:4.1.22
    Wordpress : 3.1.4
    Contact Form 7 : 3.0.2.1

    Contact Form 7 3.0.2.1 は WordPress 3.2 以降に対応しておりそれ以前のバージョンでは正常に動作しません。最新のバージョンにアップデートされることをお勧めします。

    トピック投稿者 k.keiko

    (@kkeiko)

    Kuraishi様

    お世話になっております。

    取り急ぎ、アドバイス頂きました設定1を試しました。
    $wpmp_conf['patch_wp_mail'] = false;
    については、
    /wp-content/plugins/wp-multibyte-patch/ext/ja/config.phpではなく
    /wp-content/plugins/wp-multibyte-patch/wpmp-config.php内に設定があったので
    そちらをtrueからfalseにし、ファイル更新後、WP Multibyte Patchを停止してから再度有効化し試してみました。

    WinXP Pro(SP3) outlookexpressの環境の場所に現在私がおらず、
    Win7 Pro(SP1) Windows Live メールの受信環境で試したところ
    Google Chromeからの受信では空白ではなく、文字化けした状態で受信しました。
    FirefoxからもGoogle Chromeからの受信と同じ状況でした。
    ただIEからは正常に受信できてしまいました。
    3パターンとも、メールのヘッダーには
    Content-Transfer-Encoding: 8bit
    Content-Type: text/plain; charset="UTF-8"
    とありました。

    続いて設定2を試しました。
    $wpmp_conf['mail_mode'] = 'UTF-8';

    /wp-content/plugins/wp-multibyte-patch/ext/ja/config.phpで
    $wpmp_conf['patch_wp_mail'] = true;

    /wp-content/plugins/wp-multibyte-patch/wpmp-config.phpで
    設定し、上記と同様ファイル更新後、WP Multibyte Patchを再起動してます。
    結果ですが、今度は全て文字化けという結果でした。
    メールヘッダーは下記のとおりです。
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: 8bit

    以上となりましたが何か原因が特定できますでしょうか?

    トピック投稿者 k.keiko

    (@kkeiko)

    Takayuki Miyoshi 様

    お世話になっております。
    現在動作しているのはお客様の環境でございまして
    最新のワードプレス3.4.xには非対応とのことでございました。
    反対にWordpress 3.1.4に対応したContact Form 7又はWP Multibyte Patchをダウングレードするという方法はできるのでしょうか?
    またそれぞれのプラグインの古いバージョンは入手可能なのでしょうか。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    $wpmp_conf['patch_wp_mail'] = true;
    $wpmp_conf['mail_mode'] = 'UTF-8';

    では

    Content-Transfer-Encoding: 7bit

    となるはずですので、設定が読み込まれていない可能性が考えられますね。言語設定が define('WPLANG', 'ja'); 以外になっているということはありませんか?

    お使いの WP Multibyte Patch と WordPress のバージョンはマッチしておりますが、やはりバージョンが古すぎるため、積極的なサポートを行うのは難しいですね。

    トピック投稿者 k.keiko

    (@kkeiko)

    Kuraishi様

    お世話になっております。さっそくのご返信ありがとうございます。

    ご指摘の箇所ですが、
    define('WPLANG', 'ja');
    とはどこにあるファイルでございますでしょうか?

    トピック投稿者 k.keiko

    (@kkeiko)

    Kuraishi様

    上記の件、自分で調べもせずすいませんでした。
    Wordpressルートのwp-config.phpですね。
    中を確認したら
    define('WPLANG', 'ja');
    となっておりました。

    ちなみにアドバイスを頂戴した『設定2』の状態のままWinXp Pro(SP3)outlookexpressの環境にて同じテストをしたところ、Ch、ff、ieのすべてのブラウザから送信されたメールのヘッダーは

    Content-Transfer-Encoding: base64
    Content-Type: text/plain; charset=”UTF-8″
    になっていました。
    この環境での1回目のテストでは
    Chは文字化けでNGでしたが、ff、ieでは正常に表示されていました。
    時間を空けずに2回目のテストでは
    Ch、ff、ieすべて文字がけでNGとなってしまいました。
    (ちなみに1回目も2回目もメールヘッダーは同じでした)

    こうしてみると同じ設定状態であっても、うまくいく時といかない時があるようです。

    ここは解決を断念し、自作でフォームを作成することも含めてクライアントと相談してみます。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    上記

    Content-Transfer-Encoding: 7bit
    となるはずですので、

    と書きましたが、Content-Transfer-Encoding: base64 ですね。失礼しました。なので設定は読み込まれているようです。

    あと基本的な部分ですが PHP の mbstring の設定は確認されましたでしょうか?

    トピック投稿者 k.keiko

    (@kkeiko)

    Kuraishi様

    お世話になっております。ご返信遅くなりまして大変申し訳ございませんでした。
    PHPのmbstringの設定を確認した所、下記の通りでした。
    mbstring.language・・・Japanese
    mbstring.internal_encoding・・・EUC-JP
    mbstring.encoding_translation・・・On
    mbstring.func_overload・・・0
    mbstring.http_input・・・auto
    mbstring.http_output・・・EUC-JP
    ※Local Value、Master Valueの値は同じ値

    languageがJapaneseになっているので問題ないかと思うのですが。。。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    mbstring.language・・・Japanese
    mbstring.internal_encoding・・・EUC-JP
    mbstring.encoding_translation・・・On
    mbstring.func_overload・・・0
    mbstring.http_input・・・auto
    mbstring.http_output・・・EUC-JP

    ああ、これが原因でしょうね。念のためデータベースのバックアップを取ってから以下となるように設定を修正して試してみてください。

    mbstring.encoding_translation・・・Off
    mbstring.http_input・・・pass
    mbstring.http_output・・・pass
    トピック投稿者 k.keiko

    (@kkeiko)

    Kuraishi様

    お世話になっております。
    PHP.iniの設定変更について、クライアントのサーバー管理者に問合せを行いましたが、
    Wordpress以外の他システムも動作しており、設定変更はNGとの事でございました。

    WordPressルート以下又はContact Formの該当するファイルにだけ、教えていただいた設定にするということは可能なのでしょうか。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「Contact Form 7 文字化け(空白)になる件」には新たに返信することはできません。