CakePHPにはメール送信のためのコアライブラリが用意されている。以下、管理者へ簡単な通知メールを送信する前提での基本的な使い方覚え書き。
設定 app/Config/email.php
1 2 3 4 5 6 7 8 9 |
class EmailConfig { public $notify = array( 'transport' => 'Mail', 'from' => 'foo@example.com', 'to' => 'recipient@example.com', 'sendAs' => 'text', //メール形式はテキスト 'log' => true, //念のためログを記録 (app/tmpに生成される) ); } |
メールレイアウト app/View/Layout/Emails/text/notify.ctp
1 |
<?php echo $this->fetch('content'); ?> |
メールビュー app/View/Emails/text/notify.ctp
1 |
Notification: <?php echo $body; ?> |
送信処理 (コントローラ)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$vars = array('body' => 'Hello, world'); //メール本文 App::uses('CakeEmail', 'Network/Email'); $email = new CakeEmail(); $email->config('contact'); if (!$email ->replyTo('webmaster@example.com') ->subject('Notification') ->viewVars($vars) //テンプレートに値をセット ->template('notify', 'notify') //引数はビュー,レイアウト ->send()) { //送信失敗 } |
参考サイト
CakeEmail — CakePHP Cookbook 2.x documentation
http://book.cakephp.org/2.0/en/core-utility-libraries/email.html