ようこそゲストさん

CPA-LABテクニカル

2008/02/10(日) EmailComponentの使い方。htmlメール&テンプレート。CakePHPメール

CakePHP1.2bのEmailコンポーネントでは、textメールはもちろん、htmlメール、添付ファイルなどを簡単に送ることができる。また、テンプレートとして、viewやlayoutが使えるので、ここでもMVCの分離ができている。
CakePHPの高機能メールコンポーネントQdmailもよろしくです。。emailコンポーネントよりも簡単に日本語メール送信ができます。CakePHP対応。
なお、今回の記事は下記改造をしていることを前提にしています。
EmailComponentで簡単日本語メール。CakePHP1.2b

htmlメールの送り方

普通のテキストメールの送り方は、
class HogemailsController extends AppController {
var $components=array('Email');

  function send(){

    $this->Email->charset='iso-2022-jp';
    $this->Email->to='example@exmaple.com';
    $this->Email->from=''日本語のFROM表記.'example2@exmaple.com';
    $this->Email->cc=array('日本語CC宛先'.'example3@exmaple.com');
    $this->Email->bcc=array('日本語BCC宛先'.'example4@exmaple.com');
    $this->Email->subject='日本語長いのOKタイトル';
    $message='本文たくさん';  //配列も可
  $this->Email->_lineLength=40; //日本語での1行の文字数。マルチバイト1文字で1。

  $this->Email->send($message);
 
  }
}
でした。CC,BCCはなくてもOK.

これに
$this->Email->sendAs='html';
を付け加えるだけ。
中身は、$messageにでも書きましょう。

なお、テンプレートを使うと、htmlメールももっと簡単に作れます。

テンプレートの使い方


  • /app/views/layouts/email/html/default.ctp
を参考に、hoge.ctpでレイアウトファイルを作成し(上記改造をしてれば、UTF-8でOK)、

  • /app/views/elements/email/html/default.ctp

を参考に、hogeview.ctpを作っておく。

で呼び出しを、$this->Email->send($message);の代わりに
$this->Email->send($message, 'hogeview' , 'hoge' );
としてやれば、renderしてくれます。
なお、hogeviewの中では、$contentという変数に$messageの中身が入っています。

名前:  非公開コメント   

  • TB-URL  http://cpa-lab.com/tech/071/tb/