在本地主机上的 laravel 8 中收到"Connection could not be established with host smtp.gmail.com :stream_socket_cl



我正试图在我的laravel应用程序中使用gmail smtp发送电子邮件,该应用程序昨天运行良好,正在发送电子邮件,但今天它给了我这个错误。我想尽一切可能的办法,但还没弄清楚问题出在哪里。如有任何帮助,我们将不胜感激。非常感谢。

这是我为smtp服务器设置的.env

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=myemail
MAIL_FROM_NAME="${APP_NAME}"

我尝试更改

MAIL_PORT= 465
MAIL_ENCRYPTION = ssl

我也更改了

MAIL_MAILER = sendmail

尽管如此,它还是给了我同样的错误。我还允许从谷歌访问不安全的应用程序,但错误没有消失。

您可以尝试禁用SSL验证来检查问题所在。打开config/mail.php文件并添加stream选项,如下所示:

<?php
return [
'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,
// region Disable SSL Verify
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
// endregion
],
],
];

注意:由于安全原因,此方法是确定问题的唯一测试方法,而不是最终解决方案。

它对我有用。你可以试试这种方法。

env文件中的这一行MAIL_ENCRYPTION=ssl to null更改

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=myemail
MAIL_FROM_NAME="${APP_NAME}"

如果它也没有效果,尝试在邮件端口之间切换

MAIL_PORT=465

之后,使用清除配置缓存

php artisan config:cache

php artisan optimize:clear

相关内容

  • 没有找到相关文章

最新更新