CakePHPにはメール送信のためのコアライブラリが用意されている。以下、管理者へ簡単な通知メールを送信する前提での基本的な使い方覚え書き。
設定 app/Config/email.php
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
<?php echo $this->fetch('content'); ?>
メールビュー app/View/Emails/text/notify.ctp
Notification: <?php echo $body; ?>
送信処理 (コントローラ)
$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