以下のコマンドを実行することで自分用のメール送信クラスを作成することが可能です。
# bin/cake bake mailer default Welcome to CakePHP v3.4.5 Console --------------------------------------------------------------- App : src Path: /var/www/html/src/ PHP : 7.0.17 ---------------------------------------------------------------
作成したクラスの中にメソッドを用意します。
<?php namespace App\Mailer; use Cake\Mailer\Mailer; use Cake\Core\Configure; use Cake\Routing\Router; class DefaultMailer extends Mailer { /** * Mailer's name. * * @var string */ static public $name = 'Default'; public function invite($email, $user, $company) { $this ->viewVars(['user' => $user,'company' => $company]) ->setSubject('招待します') ->setTo($email) ->setSender($user->email, $user->full_name) ->setEmailFormat('text'); } }
Controllerからの呼び出し方は以下のようになります。引数は配列として複数渡すことができます。
use Cake\Mailer\MailerAwareTrait class UsersController extends AppController { use MailerAwareTrait; public function invite() { $this->getMailer('Default')->send('invite', [$email, $user, $company]); } }
https://book.cakephp.org/3.0/ja/core-libraries/email.html#id13