cakephp2.doc_070
最終投稿日:2019年11月20日
クラスの読み込みは、各コントローラか全体的に読み込ませたい場合は[app][Config][bootstrap.php]
App::uses( 'CakeEmail', 'Network/Email');
メールサーバ情報登録は、database.phpと同様、
[app][Config]下に設定ファイルが用意されています(email.php.default)ので、
email.phpにリネームして下さい。そこに使用するメールサーバの設定を行います。
例)sendメール
public $default = array(
'transport' => 'Mail',
'from' => 'you@localhost',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);
例)gmail
public $gmail = array(
'host' => 'tls://smtp.gmail.com',
'port' => 465,
'username' => '[email protected]',
'password' => 'xxxxx',
'transport' => 'Smtp',
);
例)yahoo
public $yahoo = array(
'transport' => 'Smtp',
//ahoo の場合は必ずログインしているメールアドレスが必要
'from' => array('[email protected]' => 'My Site'),
'host' => 'smtp.mail.yahoo.co.jp',
'port' => 25,
'timeout' => 30,
'username' => 'yxrxx403',
'password' => '739467',
'client' => null,
'log' => false,
'charset' => 'utf-8',
'headerCharset' => 'utf-8',
);
コントローラには、送信情報を記述する
//gmailを使う
$email = new CakeEmail( 'gmail');
//送信元(「Sender」は、送信者名)
$email->from( array( '[email protected]' => 'Sender'));
//送信先
$email->to( '[email protected]');
// メールタイトル
$email->subject( 'メールタイトル');
// フォーマット
$email->emailFormat( 'text');
// テンプレートファイル
$email->template( 'mytemplete');
$var1 = "ほげ";
$var2 = "ふ~";
// テンプレートに渡す変数
$email->viewVars( compact( 'var1', 'var2'));
// メール送信
if($email->send()){
echo "OK";
}else{
echo "NG";
}
ビューは以下で登録する
[app][View][Emails][html | text][*****.ctp]
※レイアウトも読まれるので注意
[app][View][Layouts][Emails][html | text][default.ctp]
【注意】
gmailで送信する場合は、gmailの設定で安全性の低いアプリからのアクセスを許可する必要がある
https://www.google.com/settings/security/lesssecureapps