CodeIgniterで日本語名のファイルをメールに添付する際の注意

CodeIgniterに限らずかもしれませんが試してませんのでCodeIgniterって事で。

  • 発生した問題
    CodeIgniterから日本語名(マルチバイト全般?)のファイルをメールに添付して送信すると日本語部分が消える。
    データ自体に異常は発生しませんでした。例)送信時;日本語filename.txt → 受信したファイル:filename.txt
  • 解決方法
    ファイル名をISO-2022-JPにエンコードする。
    例)$this->email->attach(mb_convert_encoding(“日本語filename.xls”, ‘ISO-2022-JP’, ‘UTF-8’));

    system/libraries/Email.phpの_build_message()メソッドで

    for ($i=0; $i < count($this->_attach_name); $i++)
    {
    $filename = $this->_attach_name[$i];
    $basename = basename($filename);
    $ctype = $this->_attach_type[$i];

    というところがあるので、
    $basename = basename($filename);

    $basename = mb_substr(mb_strrchr($filename, "/"), 1);
    に置き換える。

[Dev]CodeIgniter2.0+Smarty3.1の設定メモ

会社で1回やったのにもかかわらず同じ箇所でハマったのでメモっておく。

CodeIgniter 2.0.3を使用
http://sourceforge.jp/projects/codeigniter/releases/

Smarty 3.1.11を使用
http://www.smarty.net/download

CodeIgniter+Smartyライブラリ
http://www.coolphptools.com/codeigniter-smarty

参考にしたサイト
http://blog.kaikai999.lolipop.jp/?eid=1
http://ameblo.jp/nagoya-web/entry-10920476439.html

続きを読む