EmailComponent 日本語拡張

標準

第5回CakePHP IRC集会の時にちらっと発言したネタです。

CakePHPにはメール送信用のコンポーネントとして、EmailComponentが存在しますが日本語の取り扱いの不備などから、あまり利用されていません。

メール送信のコンポーネントとしては、Qdmailという素晴らしいライブラリがあり、高度なメール配信も出来るのでそちらを利用されることをお勧めしますが、EmailComponentの拡張を作ってしまったので説明します。

AppEmailComponent

オリジナルからの変更点

  • 日本語の折り返し処理の修正(EmailConponent::__wrap()のオーバライド)
  • 設定ファイルからの読み込み機能、メール設定の一元管理(load()メソッドの追加)

ソースコード
http://gist.github.com/287836


設置方法

app/controller/components/app_email.php にコンポネートファイルを設置します。
app/config/email.php を設置し、必要に応じて書き換えます。

利用方法

メール送信を行うコントローラクラスの$componentsに追加します。

メール送信を行う場合は以下のようにします。

app/config/email.phpについて

AppEmailComponentは、デフォルトで呼び出し元コントローラ名(Controller::$name)の設定情報を読み込もうとします。

コントローラ名での設定が定義されていない場合は$config[‘Email’][‘default’]で定義される設定を読みます。

$config[‘Email’][‘default’] でも定義されていない場合、EmailComponentに定義されている値を利用します。

app/config/email.phpに定義した設定情報は、

で、取得・セットすることが出来ます。

例)

もちろん、デフォルトのEmailComponentのように、コントローラ中でコンポーネントの属性を変更可能です。

本コンポネートの使い方等、ご質問があればコメントを入れていただくか、 twitterにて@nojimage宛につぶやいていただければ、たぶんご返答いたします。

コメントを残す

Page optimized by WP Minify WordPress Plugin