jphpmailerでのヘッダ、Subjectの文字化け - PHPプロ!Q&A掲示板
2819
- 0P
- 0P
jphpmailerでのヘッダ、Subjectの文字化け
質問日時 / 2010年7月22日 09:49 (最終編集:7月22日 10:07) 回答数 / 2件
Questioner: ioaff
Tweet
キーワード / jphpmailer   メール   文字化け  
http://code.google.com/p/jphpmailer/source/browse/trunk/jphpmailer.php
コアとなるphpmalerは最新の5.1を使用しています。
二つのライブラリ及び呼び出す側のスクリプトはすべてUTF-8で記述しており、
php.iniの記述も以下のようになっています。
- default_charset = UTF-8
- mbstring.language = japanese
- mbstring.http_input = auto
- mbstring.internal_encoding = UTF-8
- mbstring.http_output = UTF-8
件名には「お問い合わせがありました」という文字列を指定しているのですが、
Thunderbirdの受信トレイ上では
=?iso-2022-jp?B?GyRCJCpMZCQkOWckbyQ7JCwkIiRqJF4kNyQ/GyhC?=
となっており、
http://www.it-top.biz/tools/encode.php
こちらのサイトで変換をかけると、4 MIME(B)デコード後、SJIS変換(*1)では正常に値が取得できます。
また、該当メールをemlファイルに落としテキストエディタで開くと、Subjetctが
=?US-ASCII?B?PT9pc28tMjAyMi1qcD9CP0d5UkNKQ3BN?=
=?US-ASCII?B?WkNRa09XY2tieVE3SkN3a0lpUnFKRjRrTnlRL0d5aEM/PQ==?=
となっており、想定していない文字コードになっております。
各クラスのエンコード設定は以下でテストしています。
jphpmailer
- class JPHPMailer extends PHPMailer {
- var $CharSet = "iso-2022-jp";
- var $Encoding = "7bit";
- var $in_enc = "UTF-8"; //内部エンコード
phpmailer
- public $CharSet = 'iso-8859-1';
- public $Encoding = '8bit';
どなたか、手がかりでもいただければと思います。
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。





ページのトップへ


kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。