老眼palm

老眼だけど、ぢっと掌を見る プロフィール RSS

2007年 7月のアーカイブ

兄さん、それ違う

数日前の朝のことを急に思い出したので書いておく。

朝、柏駅のホームで電車を待っていたら、少し前に並んでいたアベックが振り返って、野田線側の看板を見ていた。Docomo 2.0かなんかのでかいポスターだ。彼女の方が、あの娘可愛い、とでも言ったのだろうか。それに答えて彼氏曰く:

「あ、それ蒼井そら。最近人気あるよ。」

…兄さん、それ違う。 蒼井優だってば。でも彼女は納得していたようだ。このまま勘違いしたままで過ごしてくれることを願う(笑)。

ちなみに蒼井優は「花とアリス」がいいなあと思っているのだが、一歩間違うとめちゃめちゃブサイクになりそうで、少しハラハラしている。今のところ美少女側にいるようだが。

WordPress ME 2.2.1のコメント通知メールを無理矢理なんとかする

2007/9/17 追記:下記のパッチでは修正が足りずうまくいきません。class-phpmailer.phpも修正する必要があります。本家版2.2.3で試したパッチを別記事に書きましたので、そちらを参考にしてください。(そっちはpluggable.phpの修正のみでいけるはずです。)

WordPress ME 2.2.1でコメント通知メールの文字コードがおかしい件、どうせ自分のブログなんだし、適当に決め打ちのコードでなんとかしちゃえばいいや、というノリで無理矢理なんとかしてしまった。(コードをきれいに載せることができていないので、必要な人はソースを見てください。)

--- pluggable.php.save  2007-07-06 21:28:51.000000000 +0900
+++ pluggable.php       2007-07-06 21:36:28.000000000 +0900
@@ -186,6 +186,9 @@
        $phpmailer->FromName = "WordPress";
        $phpmailer->AddAddress("$to", "");
        $phpmailer->Subject = wpj_mimeheader($subject);
+       if (function_exists('mb_convert_encoding')) {
+               $message = mb_convert_encoding($message, "ISO-2022-JP", "UTF-8");
+       }
        $phpmailer->Body    = $message;
        $phpmailer->IsHTML(false);
        $phpmailer->IsMail(); // set mailer to use php mail()
@@ -443,7 +446,7 @@

        $message_headers = "MIME-Version: 1.0\n"
                . "$from\n"
-               . "Content-Type: text/plain; charset="" . get_option('blog_charset') . ""\n";
+               . "Content-Type: text/plain; charset=iso-2022-jp\n";

        if ( isset($reply_to) )
                $message_headers .= $reply_to . "\n";
--- functions.php.save  2007-07-01 16:32:47.000000000 +0900
+++ functions.php       2007-07-05 22:26:23.000000000 +0900
@@ -1528,7 +1528,7 @@

 function wpj_mimeheader($mine) {
        if(function_exists('mb_encode_mimeheader')) {
-               return mb_encode_mimeheader($mine);
+               return mb_encode_mimeheader($mine, "ISO-2022-JP", "B", "\n");
        } else {
                return $mine;
        }

要するに、

  1. ヘッダには決め打ちでcharset=iso-2022-jpを入れる。ASCIIのみのメールでこれが入っていても別に実害ないし、まー他のコードでコメント付けてこられてもどうせ読めないから。
  2. コメント本文もmb_convert_encodingでUTF-8からiso-2022-jpに決め打ちでコード変換。
  3. メールヘッダもmb_encode_mimeheaderでiso-2022-jpに決め打ちでコード変換する。

無茶苦茶なやり方だが、自分のサイトの勝手でしょ、とか開きなおってる次第(笑)。

明日から、土日月と会社の研修。折角の週末、WordPressのコード眺めたりしてまったり過ごしたかったが、かなわず。ちょっと残念。(だからこんな手抜きコードを仕込んだというわけではなく、単に面倒だからである。)

WordPress ME 2.2.1でコメント通知メールがおかしい

昨日友人からブログにコメントがついていたが、そのコメント通知メールがなんか壊れていておかしい。

ちょいと調べてみると、どうやら「WP2.2で通知メールの件名が途切れる」という記事にある現象のようだ。つまり、xreaのMTAはヘッダ行が長い場合にCRLFで行を分割すると空行が入ってしまい、以下本文とみなされておかしくなるらしい。

おかしな現象が起きても、ちゃんと対策を見つけてくれる人がいる。ありがたい限りだ、と思いつつ、記事にある修正を行う。(この記事の修正を行う場合はNipponプラグインは適用してはいけない。そもそもNipponプラグインはMEには適用できないような気がする。定かではないが。)

で試してみたのだが、自分の目的には不十分だった。

どうやらME2.2以降の「文字コードはUTF-8だけ」という変更が通知メールにも波及していて、メールの文字コードをUTF-8で送っているのだ。自分の場合、WPの通知メールはgmailに送って、そこから再びWillcomのWX320に転送しているのだが、WX320はUTF-8なメールは扱えないので、携帯上では化け化けになってしまう。

今時UTF-8を扱えないMUAってどうよ、とは思うが、日本語のemailの文字コードはISO-2022-JPとか思って長らく過ごしてきた古い人間としては、多少困惑させられる事態だ。ブログの内部コード、HTMLの文字コードなんてなんでも良いが、日本で作ってるME版ならemailの文字コードは安全を見てISO-2022-JPにしておくべきじゃないのかな、と思う。

本家版でemail通知回りが大きく変わったらしく、ME版でサポートしきれないという事情があるのだろうが。(そういう事情なら、ちょこちょこいじってなんとかなる範囲じゃないんだろうしなあ。ちょいと困ったな。)

後日追記: 結局、コメント通知メールの文字コードを無理矢理ISO-2022-JPにするようにコードを書き換えてしまった。その話はこの記事で。