Nippon 2

注意: このプラグインと tenpura さんによる WP Multibyte Patch を同時に有効にしているとコンフリクトを起こすことが確認されています。WP Multibyte Patch はメールの文字化け回避のほか、WordPress で日本語を正しく処理するために必要となる修正を網羅しているので、WP Multibyte Patch の使用をおすすめします。(2007/11/21 追加)

先月 Nippon プラグインの退役について書いたばかりですが、試してみたところ PHPMailer が導入された WordPress 2.2 でもメールの subject に一部文字化けが生じることがわかりました。そこで、当面のピンポイント fix として Nippon 2 プラグインを用意しました。しばらく様子をみて有効性が確認できましたら WordPress Trac にもパッチを送る予定です。

PHPMailer について今のところ確認している問題としては(まだ仕様を完全に理解しているわけではないので間違っているかもしれませんが)、

  • 長いヘッダ行の折りたたみ(line-folding; RFC 2822 参照) がマルチバイトの文字コードに配慮せずに行われている。
  • そのためマルチバイト文字が含まれた subject では、折りたたみの境界上(ほぼ15文字ごと)で文字化けが発生する場合がある。

そこで Nippon 2 ではマルチバイトにも適切に対応可能な mb_encode_mimeheader() をフィルタに挿むようにしています。

インストールの手順は、こちらから zip ファイルをダウンロードして、展開した nippon2.php を WordPress のプラグインディレクトリに置き、有効化すれば OK です。

なお、対応する WordPress のバージョンは 2.2 以降です。2.1 以前のバージョンに適用しても機能しません。また、Nippon プラグインと Nippon 2 を併用しても意味はありません。

今のところ UTF-8 の使用を前提にしているので、その他の文字コードを使用する環境で機能するかはまだ確認していません。

6 thoughts on “Nippon 2

  1.  先日、自分のブログをWP2.2にしたときに「Nippon 2」を導入いたしましたが、メールのヘッダ部が途中で切れてしまっているのか、差出人不明で本文がエンコードされた文字列の途中から始まっている奇妙なメールが届くようになりました。

     ヘッダを確認すると、どうも「Subject:」のヘッダが途中で切れてしまい、切れたところからメール本文と認識されてしまっているようです。

     なお、「Nippon 2」プラグインを無効化したところ、ヘッダが途中で切れずに本文が想定の箇所から始まるようになりました。

     わかりにくい説明で恐縮ではありますが、なにとぞご確認のほどお願いしたいと思います。

     なお、こちらのサーヴァ環境はXREA+です。

  2. Pingback: 【遅報】【WordPress】「Nippon 2」プラグイン導入! » Telmina

  3. 私も、どうしても36バイトを超える件名の場合に、
    文字化けしてしまいます。
    XREA+ MySQL5 PHP5 WordPress2.21 UTF8 という環境です。
    http://q.hatena.ne.jp/1117708187
    ↑このことと関係ありますか?
    あまり詳しくないもので恐縮ですが、
    何か対処方法がありましたら、ご教授いただければ幸いです。

  4. miyoshiさん、ありがとうこざいました。
    おっしゃるとおり、確かにXREA特有の問題なのかも知れません。

    最新版でもうまくいかなかったのですが、

    ご紹介いただいた、
    http://miniturbo.org/memo/2007/06/07/173627
    の方の対処方法を試したら、うまくいきました。
    大変助かりました。ありがとうございます。

  5. Pingback: 【WordPress】「WP Multibyte Patch」その後 » Telmina

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s