仙台Rails牛タン社長 このページをアンテナに追加 RSSフィード

2006-12-27

[]AMD64で日本語が動かない 09:28 AMD64で日本語が動かない - 仙台Rails牛タン社長 を含むブックマーク

DebianSargeのAMD64で日本語ロケールが動きません。

1.4.5jaでも1.4.8でも動きません。

どうしたものでしょう。ロケールがおかしい以外は問題なさそうです。

Etchにしてもだめでした。

http://oss.poyo.jp/roundcube-ja/

こんなウェブメールもあるようなので、この際乗り換えてしまおうかと

思っています。

xibbarxibbar 2007/03/22 17:18 めっけた。localesを入れておかないとダメだった。AMD64関係なかったよ。

2006-08-28

[]SquirrelMailの日本語パッチ 22:31 SquirrelMailの日本語パッチ - 仙台Rails牛タン社長 を含むブックマーク

ブログを引っ越したので、忘れないようにここにも書いておこう。

SquirrelMailで日本語の設定をすると、きちんと日本語でメールを

送信することができます。しかし、日本語が一切入っていない

メールでもISO-2022-JPでMIME設定してしまうようです。

これでは例えば外国人とのやりとりで支障をきたしてしまう場合があります。

実際、私の知り合いで、あなたから受け取ったメールを開こうとすると

パソコンがマルチリンガル環境をインストールしようとするとクレームを

うけたりしていたようです。そこで、日本語が入っていない場合は

us-asciiでメールを送るようにしたパッチを公開します。

使い方としては

http://www.squirrelmail.jp/

から1.4.5をダウンロードし、

http://www.yamaai-tech.com/~masato/Download/

パッチを当てて、それから以下のパッチを当ててください。

diff -uNr class.org/deliver/Deliver.class.php class/deliver/Deliver.class.php
--- class.org/deliver/Deliver.class.php	2005-07-14 13:50:01.000000000 +0900
+++ class/deliver/Deliver.class.php	2006-05-08 15:39:57.205027378 +0900
@@ -49,7 +49,7 @@
         $raw_length = 0;
         $reply_rfc822_header = (isset($message->reply_rfc822_header)
                              ? $message->reply_rfc822_header : '');
-        $header = $this->prepareRFC822_Header($rfc822_header, $reply_rfc822_header, $raw_length);
+        $header = $this->prepareRFC822_Header($rfc822_header, $reply_rfc822_header, $raw_length, $message);
 
         if ($stream) {
             $this->preWriteToStream($header);
@@ -377,7 +377,7 @@
      *
      * @return string $header
      */
-    function prepareRFC822_Header($rfc822_header, $reply_rfc822_header, &$raw_length) {
+    function prepareRFC822_Header($rfc822_header, $reply_rfc822_header, &$raw_length, $message) {
         global $domain, $version, $username, $encode_header_key, $edit_identity, $hide_auth_header;
 
         if (! isset($hide_auth_header)) $hide_auth_header=false;
@@ -494,9 +494,12 @@
                                          $rfc822_header->content_type->type1;
         if (count($rfc822_header->content_type->properties)) {
             foreach ($rfc822_header->content_type->properties as $k => $v) {
-                if ($k && $v) {
-                    $contenttype .= ';' .$k.'='.$v;
-                }
+	      if ($k && $v) {
+		if (eregi("charset",$k) && mb_detect_encoding($message->body_part)=="ASCII"){
+		  $v="us-ascii";
+		}
+		$contenttype .= ';' .$k.'='.$v;
+	      }
             }
         }
         $header[] = $contenttype . $rn;