SquirrelMailの日本語パッチ
ブログを引っ越したので、忘れないようにここにも書いておこう。
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;