[Blog_users_ml] エントリ通知メールの文字化け

Naoki Shigematsu blog_users_ml@dropcontrol.com
Thu, 13 Nov 2003 01:51:17 +0900


重松です

> メール関係でいくと、以下のような問題もあると思って、
> 昨日からソース見始めてます。
	:
>  *) 日付が、アスキーのまま送られて、Jcode.pm が上手く識別できなくて、
>     文字化け

というわけで見てみました。

ウェブログの設定で、日付用の言語を日本語に設定していた場合、
メール通知を行うと、日付部分が文字化けして送信される問題がありました。

MT をハックするのが今回が始めてなので、かなり自信がないのですが、
以下の修正で解消されます。

Unicode::String モジュールが必要です。
http://search.cpan.org/~gaas/Unicode-String-2.07/

[MT]/lib/MT/Mail.pm の、23 行目の require Jcode; の前に、
以下の 2 行を追加すれば OK です。

	use Unicode::String;
	$body =~ s/&#(\d\d\d\d\d);/Unicode::String->new()->chr($1)/ge;

	23     require Jcode;
	24     $body = Jcode->new($body)->jis;
		:

==
--- Mail.pm.default     2003-11-13 01:42:53.000000000 +0900
+++ Mail.pm     2003-11-13 01:42:35.000000000 +0900
@@ -20,6 +20,9 @@
 @{[ MT->version_slug ]}
 SIG

+    use Unicode::String;
+    $body =~ s/&#(\d\d\d\d\d);/Unicode::String->new()->chr($1)/ge;
+
     require Jcode;
     $body = Jcode->new($body)->jis;
     $hdrs->{Subject} = Jcode->new($hdrs->{Subject})->mime_encode;

-- 
(株)インプレス 技術部
重松直樹 <sigematu@impress.co.jp>
Zip: 102-0075 千代田区三番町20番地
Tel: 03-5275-9017 (内線2354) Fax: 03-5275-9047
Uri: http://www.impress.co.jp/