LoginSignup
4
2

More than 3 years have passed since last update.

Laravel 5.8 メール

Posted at

認証機能のうちユーザー登録にメール確認を行うことができるようなので
予めメール送信の設定を行う。

メール設定

.envファイルかconfig/mail.phpで行う。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.hoge.com
MAIL_PORT=587
MAIL_USERNAME=hoge.admin@example.com
MAIL_PASSWORD=(パスワード)
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=hoge.admin@example.com
MAIL_FROM_NAME="hoge admin"

以下のコマンドでテスト送信。nullが変えればOK。

$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.2.20 ? cli) by Justin Hileman
>>> Mail::raw('Test Mail', function($message) { $message->to('hoge@example.com')->subject('TEST Title'); });
=> null
>>> 

gmail等の場合、MAIL_ENCRYPTION=nulltlsにする必要があるが環境によっては
PHP Warningとなる。

$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.2.20 ? cli) by Justin Hileman
>>> Mail::raw('Test Mail', function($message) { $message->to('hoge@example.com')->subject('TEST Title'); });
PHP Warning:  stream_socket_enable_crypto(): Peer certificate CN=....
>>> 

sslの厳密な検証を行うと証明書がドメインに含まれてないからエラーとなっている模様。
以下の設定を追加するとWarningを無視する。

config/mail.php
'stream' => [
   'ssl' => [
       'allow_self_signed' => true,
       'verify_peer' => false,
       'verify_peer_name' => false,
   ],
],

参考URL
How to deal with self-signed TLS certificates in Laravel's SMTP driver?

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