LoginSignup
15
17

More than 5 years have passed since last update.

CakePhp3でGmailからメールを送る

Last updated at Posted at 2016-03-24

CakePhp3では、メールサーバがあれば割と簡単にメールを送ることができる。
手軽に利用できるメールサービスといえば、Gmail。
今回はGmailのSMTPサーバを使って、CakePhp3からメールを送るための設定について。

アカウントを取得する

まずはGmailのメールアドレス(アカウント)を取得する。
普通にアカウントを作ればいい。
既にアカウントを持っている場合でも、セキュリティの設定などを行っていると、
上手く認証できない可能性が高いのでできるだけ新しいアカウントを作ったほうがいいと思う。

メール送信設定

CakePhp3のconfig/app.phpにメールの送信に関する設定を書いておく。
EmailTransportという部分があるので、そこを設定する。

config.php
    'EmailTransport' => [
        'default' => [
            'className' => 'Smtp',
            // The following keys are used in SMTP transports
            'host' => 'ssl://smtp.gmail.com',
            'port' => 465,
            'timeout' => 30,
            'username' => 'gmailのメールアドレス',
            'password' => 'gmailのパスワード',
            'transport' => 'Smtp',
            'client' => null,
            'tls' => null,
            'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
        ],
    ],

メールを送信する

メールを送信するときは、Emailクラスを使う。
とりあえず、一番上でuse宣言をして、処理の中でEmaliクラスを使って、メールの処理を書く。

use Cake\Mailer\Email;


    public function send(){
        $email = new Email('default');
        $email->from(['送り元アドレス' => '名前'])
              ->to('送り先アドレス')
              ->subject('タイトル')
              ->send('本文');
    }

この処理を実行すると、'送り元アドレス'から'送り先アドレス'へメールが送信される。
toのほかにもccbccといったメソッドも存在する。
複数のアドレスに送るときは配列で指定するか、addTo(addCcaddBcc)メソッドで追加していけばいい。
(toccbccを何度も書くと上書きされる)

15
17
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
15
17