📧
Laravelの開発環境で、Unable to connect with STARTTLS: stream_socket_enableエラー
現象
Laravel 11の開発環境で、メールを送信したところ以下のようなエラーが出てしまいました。
Unable to connect with STARTTLS: stream_socket_enable_crypto(): Peer certificate CN=`<略>` did not match expected CN=`<略>'
原因
メール送信時に使われるSSL/TLS証明書が正しい物では無いのが原因です。
正しい証明書にすれば良いのですが、(開発環境ということもあり)今回は仮の証明書のままやる方法を取りたいところです。
そこで、証明書の検証を無視することにしました。
方法
driver
をconfig/mail.phpに指定している場合
例えば以下のように指定している場合です。
'driver' => env('MAIL_DRIVER', 'smtp'),
config/mail.php
のroot配列の中で、以下のように指定します。
[
// 略
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
]
driver
をconfig/mail.phpに指定していない場合
driver
を使わず、default
で指定している場合です。
'default' => env('MAIL_MAILER', 'smtp'),
config/mail.php
のmailers.smtp
配列の中で、以下のように指定します。
[
'mailers' => [
'smtp' => [
'transport' => 'smtp',
// 略
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
]
Discussion