自分は開発環境はDockerを利用しており、メール送信はmaildevを使っているのですが、今回Laravel 9で作ったシステムからメールを送ろうとしたところ、下記のエラーが発生しました。
Unable to connect with STARTTLS: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
どうもLaravelが稼働しているサーバーとSMTPサーバーが別の場合は暗号化が必須の模様。
ローカルの開発環境なので当然そんな必要はなく、config/mail.php を下記のように記述して回避しました。
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'),
'verify_peer' => false, // 追加
],