自分は開発環境は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, // 追加 ],