CakePHP4でメールを使う方法

CakePHP4でメールを使う方法

198 回閲覧されました

みなさんこんにちは、jonioです。

今回はメールを使う方法のメモになります。

CakePHPのバージョン

4.5.4です。

対応メール

Gmailです、他のメールの形式だとやり方が変わるはずです。

アクション

コントローラーに下記のコードを書きます。

use Cake\Mailer\Mailer;
           ・
           ・
           ・

private function sendApprovalRequestEmail($company)
{

  $email = new Mailer();

  $email->setFrom('送信元のメールアドレス')
        ->setTo('送信先のメールアドレス')
        ->setSubject('メールのタイトル')
        ->deliver("メールの中身");
}

app.php

「EmailTransport」の項目のコードを下記にします。

'EmailTransport' => [
  'default' => [
    'className' => 'Smtp',
    'host' => 'smtp.gmail.com',
    'port' => 587,
    'timeout' => 30,
    'username' => '自分のGmailのアドレス',
    'password' => '設定するパスワード',
    'client' => null,
    'tls' => true,
    'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
  ],
],

8行目の「設定するパスワード」は下記の記事(アプリパスワードの取得の項目)を読めばわかります。

ネットの記事を読むとこれでメールを送ることができるようになると解説しているのですがapp_local.phpも設定しないと動作しないみたいです。

app_local.php

「EmailTransport」の項目のコードを下記にします。

'EmailTransport' => [
  'default' => [
    'className' => 'Smtp',
    'host' => 'smtp.gmail.com',
    'port' => 587,
    'timeout' => 30,
    'username' => '自分のGmailのアドレス',
    'password' => '設定するパスワード',
    'client' => null,
    'tls' => true,
    'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
  ],
],

app.phpと全く同じにします。

これでメールが動作するはずです。