LoginSignup
2
1

More than 3 years have passed since last update.

Lalavelでメールの送信機能を実装しようとしたらハマった話。

Last updated at Posted at 2020-09-27

https://www.hypertextcandy.com/laravel-tutorial-authentication-part-2/
こちらの記事を参考に、Laravel(ver.5.7)でメールの送信機能を実装しようとしたらはまりました。

何度コードの記載をし直しても認証できませんとのエラーが、パスワードの再設定のボタンを押すと出されてしまう。

Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required"

結論から言うと、.envを変更した際にキャッシュをクリア(php artisan config:cache)していないのが原因でした。config/mail.phpの設定も一部変更する必要があった模様。
これらの合わせわざではまりました。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ここに Username を記載する
MAIL_PASSWORD=ここに Password を記載する
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=todoapp@email.com
# ここに自分の持っているメールアドレスを記載することで、自分のメールアドレスからパスワードの再発行を申請した人に新しいメールアドレスが送られます。
MAIL_FROM_NAME="ToDo App"
# ここはなんでもOKです。
mailtrap.ioのデータ。
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ここのデータをコピーする
MAIL_PASSWORD=ここのデータをコピーする。
MAIL_ENCRYPTION=tls

カリキュラムだとMAIL_DRIVERの定数の定義が微妙に違いました。

MAIL_DRIVER=smtp
MAIL_MAILER=smtp

とりあえずmailtrapの記載に合わせて「MAIL_MAILER=smtp」と.envに記載しました。

その後、キャッシュをクリアしてみてもエラーがでる。。。

config/mail.phpを確認してみる。
絶対に必要かはわからないが、config/mail.phpをみると確実らしい。

mail.php
    'driver' => env('MAIL_DRIVER', 'smtp'),

これだ!

mail.php
    'driver' => env('MAIL_MAILER', 'smtp'),

記載を変更した時は、忘れ図にキャッシュをクリア!

$php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!

記載しなおしてキャッシュをクリアしたら元に戻りました。
ちゃんとメールも届いてる。

2
1
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
2
1