我尝试通过 Laravel 和 Gmail 使用发送电子邮件,但它会抛出此错误:
无法与主机“mailpit:1025”建立连接: Stream_socket_client(): php_network_getaddresses: 获取地址信息 mailpit失败:没有这样的主机是已知的。
我不明白为什么它尝试连接到 Mailpit 而不是 Gmail。
我的 .env 文件如下所示:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=[google app password]
MAIL_ENCRYPTION=ssl
我的路由如下所示:
Route::get('/senMail', function () {
try {
Mail::to('[email protected]’')->send(new Subscribe());
} catch (Throwable $e) {
return '<div>FAILED ' . $e . '</div>';
}
});
订阅模板是常规的
php artisan make:mail Subscribe --markdown=emails.subscribers
我尝试运行
php artisan cache:clear
和php artisan config:clear
,但一直抛出错误,我也将端口587更改为465,但没有成功。
还在
config/mail.php
文件中尝试过此配置:
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
作者:@aynber: “尝试从项目根目录使用 grep -R mailpit * | egrep -v storage 来找出它被引用的位置。”
自从我遇到这个问题以来已经有一段时间了,但这帮助我找到了仍在使用其他 smtp 提供商的代码行。刚换成我的。
要使用 Gmail 作为邮件服务器发送电子邮件,您可以使用 Gmail SMTP(简单邮件传输协议)服务器。以下是一般步骤:
首先,如果您使用的是 Windows,请将其添加到路径中的主机文件:C:\Windows\System32\drivers tc 127.0.0.1 邮箱
启用安全性较低的应用程序:
转到您的 Google 帐户设置。 导航至“安全”。 找到“安全性较低的应用程序访问”部分并将其打开。请注意,此选项会降低您帐户的安全性,因此请谨慎使用。 生成应用程序密码:
如果您启用了双因素身份验证(推荐),您可能需要为您的应用程序生成“应用程序密码”。 转到您的 Google 帐户设置,导航至“安全”,然后找到“应用程序密码”。 使用 SMTP 服务器:
设置电子邮件发送脚本或应用程序以使用 Gmail 的 SMTP 服务器。 以下是 SMTP 设置: SMTP 服务器:smtp.gmail.com 端口:587 用户名:您的完整 Gmail 地址(包括@gmail.com) 密码:您的 Gmail 密码或您生成的应用程序密码。
在终端中尝试这两个命令
php artisan route:clear // 清除路由缓存
php artisan config:cache // 这会清除配置缓存