Cake PHP メールを送信する
CakePHP 1.2.3.8166
CakePHPのメール送信コンポーネント”Email”ですが、本家のマニュアルサイト
http://book.cakephp.org/ja/view/269/Sending-a-basic-message
ではちょっとわかりにくいので補足です。
- ひな形やEmailの中身についてのファイルを用意します。
例 message.ctpというメールの体裁ファイルを作る レイアウトファイル→/views/layouts/email/text/message.ctp メールの中身のファイル→/views/elements/email/text/message.ctp
テキスト形式でのみメールを送信したい場合は、上記のとおりで大丈夫です。
HTML形式でもメールを送信したい場合は同じようにファイルを作ります。
レイアウトファイル→/views/layouts/email/html/message.ctp メールの中身のファイル→/views/elements/email/html/message.ctp
もちろん、中身はHTMLにする必要がありますよ。
- コントローラー内でEmailコンポーネントを呼び出します。
var $components = array('Email');
- 利用したい部分で、下記のように指定します。
$this->Email->from = 'Somebody <test@onlineconsultant.jp>'; $this->Email->to = 'Somebody Else <test@onlineconsultant.jp>'; $this->Email->subject = 'Test'; $this->Email->template = 'message'; $this->Email->layout = 'message'; $this->Email->sendAs = 'text'; $this->Email->send();
- レイアウトファイル(/views/layouts/email/html/message.ctp)の中で、
echo $content_for_layout;
としておかないと、/views/elements/email/html/message.ctpの中のPHPが反映されません。