CakePHP3でメールの送信テストを行う

こんにちは

CakePHP3でメール送信のテストを行いたかったです。
最近はスパムメール排除のため、認証されていないメールサーバを使うことが難しいです。
そのため開発時にはGmailのサーバを使ってメールを送信しました。

  1. 送信用の設定
  2. 送信確認

送信用の設定

config/app.php でEmailTransportの設定を行います。
開発には’default’の名前で利用しているのでこちらを埋めておきます。

    'EmailTransport' => [
        'default' => [
             'host' => 'ssl://smtp.gmail.com',
             'port' => 465,
             'username' => 'example@gmail.com',
             'password' => 'example',
             'className' => 'Smtp'
         ]
    ],

Gmailでの許可設定

まずはGmailで「安全性の低いアプリを許可する」を行います。

続いてCaptcha認証を許可します。(仕組みはよくわからないですが、これで「続行」をしていないとSMTP server did not accept the password.がずっとでました)

参考:
https://qiita.com/ma7ma7pipipi/items/1a892417f809ae194176

# 送信テスト
実際にメールの送信テストを行います。
コードを書くのが大変だったのでワンライナーで書きました。

echo "\$mail = new \Cake\Mailer\Email(); \$mail->from('from@example.com')->to('example@gmail.com')->subject('this is test')->send('mail message');" | \
bin/cake console

こんな感じででていてメールが届けば成功です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする