Mai*_*ida 15 php email smtp web laravel
向社区问好!
我最近用Laravel 9.X开发了一个网页,它在本地工作正常,但是当我将其上传到我的主机时,我在发送电子邮件时遇到问题。
当我在本地测试时,它一直工作正常,并且我一直在使用mailtrap。现在我已经将其上传到服务器,我有自己的 SMTP,但它对我不起作用。我已经创建了ssl证书,但它无法向我发送任何邮件。我收到以下错误:
无法使用 STARTTLS 连接:stream_socket_enable_crypto():SSL 操作失败,代码为 1。 OpenSSL 错误消息: error:14090086:SSL 例程:ssl3_get_server_certificate:证书验证失败。
当我使用 https 访问该网站时,SSL 工作正常。
我已经配置了我的.env
文件,其中放置了:
HOST
:我的 smtp 服务器;PORT
:587;ENCRYPTION TYPE
:SSL;USERNAME AND PASSWORD
:我的电子邮件帐户的那些。
我也一直在触摸位于 的文件config/mail.php
,并放置与文件中相同的配置.env
。我还尝试过其他端口,例如 25、465...等等。
我尝试使用协议从outlookIMAP
访问邮件帐户,并且我已经能够正确连接,因此可以访问邮件。
我在 Google 上检查了很多东西,也在 Stack Overflow 上找到了每个博客,但没有任何效果。
知道发生了什么事吗?我是否缺少一些需要配置的东西?
Але*_*нер 56
我升级到新的9版本后遇到了这个问题,因此需要执行两个步骤。
编辑.env
位于项目根目录中描述邮件设置的位置的文件,更改tls
为null
. 如果没有这样的行,则添加
MAIL_ENCRYPTION=空
如果你有版本 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,
],
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27609 次 |
最近记录: |