メールはUTF8で送られます。
たぶん、利用されているMUAがUTF8のメールは文字化けするのでしょう。
自分はUTF8からiso-2022-jpになるように文字コードの変換とContent-Typeのcharsetをcharset=”iso-2022-jp”となるようにソースを改造しました。
※タイトル以外にも影響があったので、全体的にむりやりやりました。
ただ、8.xはまださわってないので、近々にTryしてみる予定ですが。。
grep等でContent-Typeを設定している箇所があるところを検索して、
置き換えてみてください。
もちろん、文字コード変換も考慮する必要がありますが。
時間が空いてしまいましたが、解決されていますか。
cformsはWordpressの文字コードでメールを送信しているようです。
Wordpress2.5ではUTF-8になります。
メール本文の文字コードはUTF-8のまま変更していませんが、
タイトル(subject)の文字化けだと以下のコードを変更することで解消できるようです。
lib_aux.php
function encode_header
と
phpmailer/class.phpmailer.php
function EncodeHeader
それぞれ関数内を全てコメントにし
return mb_encode_mimeheader($str,'ISO-2022-JP');
を追加します。
当方では文字化けは解消しています。
ただ、この関数が何を行っているかがよくわかりません。
コメントにすることで何か問題が起こるかもしれません。
残念ながら私の力ではここまでです。
トピック投稿者
imai
(@imai)
tsuchiさん、taikikenさん
ご意見ありがとうございました。
gmailとthunderbird(mac)で確認していますが、メーラーとしてはどちらもUTFの受信は可能なようです。
しかし、特定の文字列がタイトルに入ると、部分的に文字化けするようです。
とりあえず、私でも理解できたアドバイスとして、
lib_aux.php
function encode_header
のみ、関数内を削除し
return mb_encode_mimeheader($str,’ISO-2022-JP’);
を入れてみたところ、文字化けしていた文字列でも、文字化けしなくなりました。
メールヘッダーは、まだ
Content-Type: text/plain; charset=”UTF-8″
となっているので、根本的な解決ではないと思いますが、UTF-8が送受信可能なメーラーでは、受信できるということでしょうか。
他にも、実際に改善されたプラグインを、再配布しているなどの情報があれば、是非お知らせください。
>メールヘッダーは、まだ
>Content-Type: text/plain; charset=”UTF-8″
先の返信でも書いた通り、
PCで受信するならUTF-8でも良いだろうと思い変更しませんでしたが、
もしも変更する必要がおありなら
lib_ajax.php と lib_noajax.php
の複数の
get_option(‘blog_charset’)
を変更したい文字コードへ変更し、
多分入力内容が入っている変数$messageの文字コードを変換することで対応できるのではないかと思います。
すみません、確かめていません。