错误 LARAVEL 电子邮件:无法连接 STARTTLS:stream_socket_enable_crypto():SSL 操作失败,代码为 1
ERROR LARAVEL EMAIL: Unable to connect with STARTTLS: stream_socket_enable_crypto(): SSL operation failed with code 1
向社区问好!
我最近用Laravel9.X开发了一个网页,在本地可以正常使用,但是当我把它上传到我的主机时,我我在发送电子邮件时遇到问题。
当我在本地测试时,它一直正常工作,我一直在使用mailtrap。既然我已经将它上传到服务器,我就有了自己的 SMTP,但它对我不起作用。我创建了 ssl 证书,但它无法向我发送任何邮件。我收到以下错误:
无法连接 STARTTLS:stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:error:14090086:SSL routines:ssl3_get_server_certificate:certificate 验证失败.
当我使用 https 访问站点时,SSL 工作正常。
我已经配置了我的 .env
文件,我在其中放置了:
HOST
:我的smtp服务器; PORT
: 587; ENCRYPTION TYPE
:SSL; USERNAME AND PASSWORD
:我的电子邮件帐户。
我也一直在触摸我位于 config/mail.php
的文件,将与 .env
文件中的配置相同。我也尝试过其他端口,例如 25、465...等等。
我曾尝试使用IMAP
协议从outlook访问邮件帐户,我已经能够正确连接,因此可以访问邮件.
我检查了 Google 中的很多内容,也检查了您在 Stack Overflow 中找到的每个博客,但没有任何效果。
知道发生了什么事吗?
我是否缺少要配置的内容?
我升级到新的9版本后出现了这个问题,所以你需要按照两个步骤进行。
编辑位于项目根目录中的 .env
文件描述邮件设置的地方,将 tls
更改为 null
。如果你没有这样一行,那么添加
MAIL_ENCRYPTION=null
如果你有版本 8 那么这就足够了,但在版本 Laravel 9 中你需要打开文件 app/config/mail.php
找到一个部分 mailers smtp
添加两个选项 'auth_mode' => null
和 'verify_peer' => false
外观示例
'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,
'verify_peer' => false,
],
向社区问好!
我最近用Laravel9.X开发了一个网页,在本地可以正常使用,但是当我把它上传到我的主机时,我我在发送电子邮件时遇到问题。
当我在本地测试时,它一直正常工作,我一直在使用mailtrap。既然我已经将它上传到服务器,我就有了自己的 SMTP,但它对我不起作用。我创建了 ssl 证书,但它无法向我发送任何邮件。我收到以下错误:
无法连接 STARTTLS:stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:error:14090086:SSL routines:ssl3_get_server_certificate:certificate 验证失败.
当我使用 https 访问站点时,SSL 工作正常。
我已经配置了我的 .env
文件,我在其中放置了:
HOST
:我的smtp服务器; PORT
: 587; ENCRYPTION TYPE
:SSL; USERNAME AND PASSWORD
:我的电子邮件帐户。
我也一直在触摸我位于 config/mail.php
的文件,将与 .env
文件中的配置相同。我也尝试过其他端口,例如 25、465...等等。
我曾尝试使用IMAP
协议从outlook访问邮件帐户,我已经能够正确连接,因此可以访问邮件.
我检查了 Google 中的很多内容,也检查了您在 Stack Overflow 中找到的每个博客,但没有任何效果。
知道发生了什么事吗? 我是否缺少要配置的内容?
我升级到新的9版本后出现了这个问题,所以你需要按照两个步骤进行。
编辑位于项目根目录中的
.env
文件描述邮件设置的地方,将tls
更改为null
。如果你没有这样一行,那么添加MAIL_ENCRYPTION=null
如果你有版本 8 那么这就足够了,但在版本 Laravel 9 中你需要打开文件
app/config/mail.php
找到一个部分mailers smtp
添加两个选项'auth_mode' => null
和'verify_peer' => false
外观示例'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, 'verify_peer' => false, ],