misc.log

日常茶飯事とお仕事と

CodeIgniterのCI_Emailクラスを使ったメールでSubjectが文字化け

時間が無いのでとりあえず備忘録。

PHPフレームワーク、CodeIgniterのCI_Emailクラスを用いてメールを送信する処理で、Subjectに設定した文字列が文字化けするという現象が。文字化けするのは一部の機種依存系な文字だけ。

これを解消するために取った対応は以下の通り。

  • CI_Emailを継承した独自クラスを作成する。
  • そのクラスの中で、_prep_q_encodingメソッドを「処理が空っぽなメソッド」としてオーバーライド、潰してしまう。

こんだけです。_prep_q_encodingメソッドでは長すぎるSubjectをナントカする処理があるようですが、それが悪さをしているようで。長すぎないSubjectにしかならないことが分かっているシステムであれば不要な処理と判断。除外してしまいました。

ちょっとCodeIgniterよくわかってないのであれなんですが、こうした場合のクラスのロードって、新しく独自に継承して作ったクラスではなくて、元のクラス名でロードするんですね。そういうものなの???

Programming with CodeIgniter MVC

Programming with CodeIgniter MVC