LoginSignup
3
3

More than 5 years have passed since last update.

【サルが書く】CakePHP3でGmailアカウントを使って簡単にメールを送ろう

Last updated at Posted at 2018-06-21

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

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3