ホーム > フォーラム > 質問箱 > eguideのメールの文字化け

eguideのメールの文字化け
投稿者: UNOUNO | 投稿日時: 2007/2/2 12:57 | 閲覧: 17014回
UNOUNO
こんにちは。
会社のホームページをつくっているのですが、
eguideでセミナーの申込ができるようにしようと思い、
設置したところ、予約確認等のメールのsubjectが
文字化けしてしまいます。

過去ログもみましたが、解決できませんでした。
なにかアドバイスがいただければと思い投稿いたしました。
ヴァージョンは以下のようになります。

XOOPS 2.0.14
eguide 2.24
PHP 4.4.4
MySQL 3.23.58

文字化けですが、起こる場合と起こらない場合があります。
たとえば、イベント名を

test forumああああいいいううう

とした場合、メールのSubjectは

2007-2-3 (土) test forumああああいいいううう

となって、文字化けしません。
ところが、test forumを取って、

ああああいいいううう

だけにすると、

予約取消 - 2007-2-3 (土) ああ"$"$$$$$$$&$&$&

こんな風に化けたメールがやってきます。
何かいい対策があれば教えてください。

コメント(8)

Re: eguideのメールの文字化け 
投稿者: nobu | 投稿日時: 2007/2/2 14:47
nobu
次のパッチを試してごらん。
--- language/japanese/xoopsmailerlocal.php	2006-08-01 17:43:34.000000000 +0900
+++ language/japanese/xoopsmailerlocal.php	2006-11-08 20:22:47.097939000 +0900
--- xoopsmailerlocal.php~	2006-11-08 20:22:47.000000000 +0900
+++ xoopsmailerlocal.php	2007-02-02 14:51:12.860939000 +0900
@@ -143,7 +143,7 @@
             //Following Logic are made for recovering PHP4.4.0 and 4.4.1 mb_encode_mimeheader() bug.
             //TODO: If mb_encode_mimeheader() bug is fixed. Replace this to simple logic.
             $encode_charset = strtoupper($this->CharSet);
-            if (function_exists('mb_convert_encoding')) { //Using mb_string extension if exists.
+            if (false && function_exists('mb_convert_encoding')) { //Using mb_string extension if exists.
                 if ($this->needs_encode || $force) {
                 	$str_encoding = mb_detect_encoding($str, 'ASCII,'.$encode_charset );
                     if ($str_encoding == 'ASCII') { // Return original if string from only ASCII chars.
Re: eguideのメールの文字化け 
投稿者: UNOUNO | 投稿日時: 2007/2/2 15:31
UNOUNO
nobu様

レスありがとうございます。
すいません、このパッチはどこに入れればいいんでしょうか。
xoopsmailerlocal.phpの中だと思うのですが...
入れ方がわからないのです...
Re: eguideのメールの文字化け 
投稿者: nobu | 投稿日時: 2007/2/3 1:14
nobu
申し訳ない、パッチの内容が違ってた。
--- language/japanese/xoopsmailerlocal.php	2006-07-27 09:17:18.000000000 +0900
+++ language/japanese/xoopsmailerlocal.php	2007-02-03 01:00:44.000894000 +0900
@@ -127,7 +127,7 @@
     }
 
     function EncodeHeader ($str, $position = 'text', $force=false) {
-        if (!preg_match('/^4\.4\.[01]([^0-9]+|$)/',PHP_VERSION)) {
+        if (false && !preg_match('/^4\.4\.[01]([^0-9]+|$)/',PHP_VERSION)) {
             if (function_exists('mb_convert_encoding')) { //Use mb_string extension if exists.
                 if ($this->needs_encode || $force) {
                     $encoded = mb_convert_encoding($str, _CHARSET, mb_detect_encoding($str));
Re: eguideのメールの文字化け 
投稿者: fxxkin | 投稿日時: 2007/2/6 11:33
fxxkin
UNOUNOさん、良い質問をありがとうございました。
私も同じ事で困っていました。

nobuさんが挙げて下さった方法で無事解決いたしました

「xoopsmailerlocal.php」の130行目あたりにある上記のソースから、
nobuさんが書いてくださっている赤字の部分を削除(−)し青地の部分を挿入(+)してみてください。

これで文字化けが解消されました。
私も勉強になりました。感謝!
Re: eguideのメールの文字化け 
投稿者: jada | 投稿日時: 2007/2/13 20:00
jada
eguideでなく
新規トピックが作成された場合に通知する
などのイベント通知で
Subjectが途中から文字化けだったのですが、
おかげさまで直りました。

環境は
debian/linux serge
(PHP Version 4.3.10-18)
XOOPS Cube 2.0.16a JP
でした。
ありがとうございました。
Re: eguideのメールの文字化け 
投稿者: UNOUNO | 投稿日時: 2007/3/9 14:34
UNOUNO
いま気がついたのですが、イベントの申込者データを
CSVやEXCELで落としたときに、蠅了が?になってしまいます。

下の、nobuさんのパッチ(新しいほう)を当てています。

何が原因なのでしょうか?
Re: eguideのメールの文字化け 
Re: eguideのメールの文字化け 
投稿者: UNOUNO | 投稿日時: 2007/3/12 12:09
UNOUNO
機種依存文字だからですか・・・。

eguideで解消する方法は何かあるのでしょうか?
手動だと、CSVに落とすたびに変換しないと
いけないので、かなり手間がかかってしまい
困っています。

追記:
こういうのを見つけましたが、
http://php.nekosuke.com/000056.htm
eguideにも適用できますか?

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top