GmailのSMTPサーバを使って、CakePHP3でメールを送る設定をするよ。
アプリケーションのEmailTransportを設定しよう
applicationのconfig/app.phpにEmailTransportとういう項目がある。
そこを設定することで、Gmailでのメール送信を実装できる。
app/config/app.php
'EmailTransport' => [
'default' => [
'className' => 'Smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'timeout' => 30,
'username' => 'Gmailのメールアドレス',
'password' => 'Gmailのパスワード',
'tls' => true,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
],
Controllerでメールを送る設定をしよう
hogeController.php
// クラスをよみこむ
use Cake\Mailer\Email;
public function beforeFilter()
{
$this->email = new Email('default');
}
public function send()
{
$this->email->setFrom(['送り元メールアドレス' => '送り元名'])
->setTo('送り先メールアドレス')
->setSubject('表題')
->send('本文');
}
CakePHP3.4.0で仕様が変わりました: 代わりに setFrom() 、 setTo() 、 setCc() 、 setBcc() そして、 setSubject() を使用してください。
送れないと思ったら・・・
Gmail側の設定で安全性の低いアプリからのアカウントへのアクセスを許可するの設定が必要です。
参考文献
https://hacknote.jp/archives/27182/
https://qiita.com/frost_star/items/4a56cec1f5de5eccbd09