CodeIgnitorでメール送信
コードイグナイタでメール送信。
やっぱりというか案の定というか、バグが含まれているので、
オリジナルを拡張することに。
MY_Email.php を作成し、以下のとおりにする。
<?php class MY_Email extends CI_Email { function __construct() { parent::__construct(); } /** * オリジナルはStripSlashesが入っているため、文字化け対策に何もしない。 * @param string $body * @return MY_Email */ public function message($body) { $this->_body = rtrim(str_replace("\r", "", $body)); return $this; } }
ところが、なぜか、初期設定を読み込んでくれない。
仕方がないので、CoreクラスのLoaderライブラリを解析してみるけど、
読み込まれた$configデータがなぜか、デフォルト値に摩り替わって保存される。
というか、ちゃんと渡されてないっぽい。
途中でしんどくなったので、解析は終了。
多分バグだからそのうち修正されるんじゃないかなと。
こういうのってどこに投稿すればいいんだ?
<?php $this->load->library('email'); $this->config->load('email', true); $this->email->initialize($this->config->item('email'));
というわけで、Emailクラスを読み込んだ時にもう一度Configを読み込み直し。
Initializeクラスに渡すことで、初期設定。