« ポートレイト: 糸井春香さん スタジオ撮り その3 | メイン | ポートレイト: 五十嵐ゆりえさん その2 »
2012年5月 9日
Roundcube webmailer 添付ファイルの文字化け対策 >>PHP
Roundcube Webmailarで添付ファイルが文字化けする件。
どうもPEAR Mail::Mime の挙動ともあいまって微妙なのね・・・。
/program/steps/mail/sendmail.incに手を入れます。
line:554辺り
// .eml attachments send inline |
を、
// .eml attachments send inline |
とします。
さらに、Mail:Mimeの1行をコメントアウトします。
addAttachmentの中の
$filename = $this->_basename($filename);を、コメントアウト。
※影響範囲を調べきれていませんので注意してください。
※文字が落ちてしまうので、こんな処理はダメです。SetLocaleが適切ならば大丈夫とかなんとかっていう話もありそうですが。 別途基底ディレクトリを渡すか取得した後 tr//するのが安全だと思いますけどねえ・・・。FileNameに¥/が入ってくることはないから、マルチバイトで一番右端のPath Separatorのpositionとってそこから先を抜き出すだけとも言う。
元はRoundcube 0.7.1のソースです。
メーラーはBecky2.60.01,EdMax 5.17で確認。
mb_encode_mimeheaderでエンコードしたものを渡す方法が書かれているサイト(公式ですか..?)もありましたが、Mail::Mimeそのものでヘッダ作っているようですから、条件が重なると壊れます。ですので、それは正しい対処ではなさそうです。
長いファイル名を渡してMimeが数行に渡る場合には、Mail::Mimeが分解して作ってしまうために結局文字化けします。なのでMail::Mimeを使うのであれば素のまま渡した方が無難だろうと思います。
・・・古いメーラーだとどうなんだろうなあっていう話もあり・・・。そこはまたそのうち調べる。。。
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
現在、この記事はコメントを受け付けておりません。