[FuelPHP]メールの文字化け対策

Posted 2012年4月19日 | Auther dada | Category PC・デジタル | Tag タグ: ,
Twitterにツイートする Facebookでシェアする はてなブックマーク

修正記事を書きましたので、そちらをご覧下さい。(2012.09.14)

FuelPHPからメールを送ったら Gmailでは正常に読めたのに、携帯では文字化けしてしまったのでその対処法をメモしときます。
といってもまた場当たり的な対処な感じですが。

設定ファイル

FuelPHP日本語ドキュメントによると

app/config/email.php.をコピーもしくは新規作成してください。 そして設定を記載してください。

とあります。コピーってどこからコピーするんだとまずツッコミます。
正解は fuel/packages/email/config/email.phpfuel/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 の違い

関連する記事

2 Comments »

  1. […] [FuelPHP]メールの文字化け対策 | RuputerFan […]

    ピンバック by 4月19日の注目記事 | Javable.Jp Ltd. — 2012年4月20日 @ 12:36 AM

  2. […] 参考: [FuelPHP]メールの文字化け対策 | RuputerFan […]

    ピンバック by 簡単すぎる FuelPHP の Email パッケージ | chatii-log — 2012年8月30日 @ 7:00 PM

Leave a comment

カテゴリー