こんにちは
CakePHP3でメール送信のテストを行いたかったです。
最近はスパムメール排除のため、認証されていないメールサーバを使うことが難しいです。
そのため開発時にはGmailのサーバを使ってメールを送信しました。
- 送信用の設定
- 送信確認
送信用の設定
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
こんな感じででていてメールが届けば成功です。