Top過去ログ目次掲示板

作成日:2005年07月07日 作成:おやじ
掲示板で過去に質問された内容です。

No.4904 FC3上のPHPから送信メールが文字化けしてしまいます


No.4904 投稿時間:2005年07月07日(Thu) 15:49 投稿者名:ゆーろ URL:
タイトル:FC3上のPHPから送信メールが文字化けしてしまいます

はじめまして、ゆーろと申します。
FedoraCore3で自宅サーバーに挑戦しています。
apache2 + MySQL + PHP + Postfix という環境を目指しています。
まだ、ドメイン等を申請していないので 
ローカルネットワーク内でのみの検証ですが、
apache2とMySQL、PHPはそれぞれ動いています。
(apache2, MySQL, PHPはyumコマンドにてインストールいたしました)

Apache (2.0.52)
PHP (4.3.11)
MySQL (bdb_version Berkeley DB 3.2.9a)
Postfix (2.1.5)



掲示板で書き込みがあれば、通知メールを送信したいと思っております。
mb-string-4.3.9.3.i386.rpmを導入しており、
mb_send_mail()関数は使用できるはずなのですが
なぜか、日本語の件名、本文が化けてしまいます。

FC3はデフォルトの文字コードがUTF-8ということでメールが文字化けしているのかと
推測し、/etc/sysconfig/i18n の設定を変更してみました。

#LANG="ja_JP.UTF-8" (EUCへ変更)

LANG="ja_JP.eucJP"

#SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja:" (ja_JP.eucJPを追加)

SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja:ja_JP.eucJP"
SYSFONT="latarcyrheb-sun16"

変更後もメールを送信するテストコードを試したのですが、
やはり、文字化けは解消されていませんでした。

[ テストコード ]
<?php mb_send_mail( "aaa@example.com", "件名" , "本文" ); ?>

日本語環境がそろっていないのでしょうか?
日本語の環境をしらべてみたのですが、

[root@localhost locale]# find / -name "ja_JP*" -print
/usr/lib/locale/ja
/usr/lib/locale/ja_JP.utf8
/usr/lib/locale/ja_JP.eucjp
/usr/share/locale/ja_JP.SJIS
/usr/share/locale/ja_JP.eucJP
/usr/share/i18n/locales/ja_JP


[root@localhost locale]# less /usr/share/locale/locale.alias |grep ja
japanese ja_JP.eucJP
japanese.euc ja_JP.eucJP
ja_JP ja_JP.eucJP
ja_JP.ujis ja_JP.eucJP
japanese.sjis ja_JP.SJIS

ロケール・データにISO-2022-JPが入っていないことに気づきました。

メール送信に必要な文字コードが入っていないことが原因でしょうか。
また、文字化けしないように送信するには、どのようにして追加すればご存知でしょうか。

文字コードを追加すれば解決すると想定しているのですが、
検討が外れていましたら、その際は、ご指摘いただいませんでしょうか。
よろしくお願いいたします。


No.4907 投稿時間:2005年07月07日(Thu) 21:27 投稿者名:おやじ URL:
タイトル:コードを自動検出ではなく明に指定してあげれば、うまくいくと思います。

> はじめまして、ゆーろと申します。
> FedoraCore3で自宅サーバーに挑戦しています。
> apache2 + MySQL + PHP + Postfix という環境を目指しています。
> まだ、ドメイン等を申請していないので 
> ローカルネットワーク内でのみの検証ですが、
> apache2とMySQL、PHPはそれぞれ動いています。
> (apache2, MySQL, PHPはyumコマンドにてインストールいたしました)
>
> Apache (2.0.52)
> PHP (4.3.11)
> MySQL (bdb_version Berkeley DB 3.2.9a)
> Postfix (2.1.5)
>
>
>
> 掲示板で書き込みがあれば、通知メールを送信したいと思っております。
> mb-string-4.3.9.3.i386.rpmを導入しており、

本質ではないですが、何で4.3.11ではないんでしょうか?

> mb_send_mail()関数は使用できるはずなのですが
> なぜか、日本語の件名、本文が化けてしまいます。
>
> FC3はデフォルトの文字コードがUTF-8ということでメールが文字化けしているのかと
> 推測し、/etc/sysconfig/i18n の設定を変更してみました。
>
> #LANG="ja_JP.UTF-8" (EUCへ変更)
> ↓
> LANG="ja_JP.eucJP"
>
> #SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja:" (ja_JP.eucJPを追加)
> ↓
> SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja:ja_JP.eucJP"
> SYSFONT="latarcyrheb-sun16"
>
> 変更後もメールを送信するテストコードを試したのですが、
> やはり、文字化けは解消されていませんでした。
>
> [ テストコード ]
> <?php mb_send_mail( "aaa@example.com", "件名" , "本文" ); ?>

実際のコードを自動検出ではなく明に指定してあげれば、うまくいくと思います。phpは得意ではないので自信はあまりありませんが?

<?php
mb_internal_encoding("SJIS");
mb_send_mail( "aaa@example.com", "件名" , "本文" );
?>


No.4915 投稿時間:2005年07月08日(Fri) 10:24 投稿者名:ゆーろ URL:
タイトル:Re: コードを自動検出ではなく明に指定してあげれば、うまくいくと思います。

> > mb-string-4.3.9.3.i386.rpmを導入しており、
>
> 本質ではないですが、何で4.3.11ではないんでしょうか?

はい。^^; 実は、先日購入しました
「始めてのFedoraCore3(秀和システム)」に入っていましたので、
そちらをインストールしていました。

バージョンが違っていたことに、気づきませんでした。
ご指摘ありがとうございました。
あたらにのバージョン4.3.11のmb-stringを入れなおしました。

その後、php.iniの[mbstring]の設定が抜けていましたので、
設定しましたところ、文字化けが解消されました。

今回は、2つの問題があったとは検討も付きませんでした。
バージョンの違いと、php.iniの設定。勉強になりました。
本当にありがとうございました。



掲示板▲頁先頭