macのlocalhostからメールサーバへアクセスする際に、以下のエラーが出る場合。
Connection could not be established with host hogehoge.com :stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
これまではmailhogでやりくりしていたのですが……
どうしてもメールを実際に送りたくなった場合……
対応策
config/mail.php
に以下を追記すると、
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
証明書のチェックを回避できます。
Laravelのバージョンによって書き方が違うので以下の例を載せておきます。
Laravel6の場合
/*
|--------------------------------------------------------------------------
| Log Channel
|--------------------------------------------------------------------------
|
| If you are using the "log" driver, you may specify the logging channel
| if you prefer to keep mail messages separate from other log entries
| for simpler reading. Otherwise, the default channel will be used.
|
*/
'log_channel' => env('MAIL_LOG_CHANNEL'),
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
];
Laravel8の場合
'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,
'auth_mode' => null,
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
],
'ses' => [
'transport' => 'ses',
],
mailers > smtp の配下に追記です。
たぶんLaravel7以降がこれだと思われます。
以上、場当たり的な対応でした(汗