修正記事を書きましたので、そちらをご覧下さい。(2012.09.14)
FuelPHPからメールを送ったら Gmailでは正常に読めたのに、携帯では文字化けしてしまったのでその対処法をメモしときます。
といってもまた場当たり的な対処な感じですが。
FuelPHP日本語ドキュメントによると
app/config/email.php.をコピーもしくは新規作成してください。 そして設定を記載してください。
とあります。コピーってどこからコピーするんだとまずツッコミます。
正解は fuel/packages/email/config/email.php を fuel/app/config/email.php にコピーし、下記のように修正します。
// 'charset' => 'utf-8', 'charset' => 'JIS', // 'encoding' => '8bit', 'encoding' => '7bit',
送信するコントローラークラスに下記を追加します。
場所はメール送信部分の前ならどこでもいいのかな? 自分は before() の中に書きました。
Package::load('email');
そして肝心の送信部分。
$mailbody = 'メール本文だよ!\アッカリーン/'; $mailbody = mb_convert_encoding( $mailbody, 'JIS' ); $subject = 'メール題名だお'; $subject = mb_convert_encoding( $subject, 'JIS' ); $subject = mb_encode_mimeheader( $subject, 'JIS' ); $name = '謎の変態紳士'; $name = mb_convert_encoding( $name, 'JIS' ); $name = mb_encode_mimeheader( $name, 'JIS' ); $email = Email::forge(); $email->from( 'hoge@mail.com', $name ); $email->to( 'foo@mail.com' ); $email->subject( $subject ); $email->body( $mailbody ); $email->send();
とりあえずこれで文字化けはなくなりました。
≫FuelPHPのFieldsetでEメール送信 | WinRoad徒然草
≫EMXAS IT工房 ? 文字化けのしくみ(その1)携帯とPCとのメールやりとりで起こる文字化け
≫れぶろぐ - [PHP] mb_convert_encoding 関数の ISO-2022-JP と JIS の違い
[…] [FuelPHP]メールの文字化け対策 | RuputerFan […]
ピンバック by 4月19日の注目記事 | Javable.Jp Ltd. — 2012年4月20日 @ 12:36 AM
[…] 参考: [FuelPHP]メールの文字化け対策 | RuputerFan […]
ピンバック by 簡単すぎる FuelPHP の Email パッケージ | chatii-log — 2012年8月30日 @ 7:00 PM