无法与主机 smtp.sendgrid.net 建立连接:stream_socket_client():无法连接到 tcp://smtp.sendgrid.net:465

use*_*474 4 sendgrid laravel laravel-5

我正在尝试在 Laravel 中使用 sendgrid 发送邮件,但它正在本地服务器上运行,但当我将其托管在服务器上时,它给了我以下错误消息:

在此输入图像描述

我在 .env 文件中的邮件设置:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=myusername
MAIL_PASSWORD=XXX
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=info@xyz.com
MAIL_FROM_NAME=xyz
Run Code Online (Sandbox Code Playgroud)

Lek*_*ens 5

对于 laravel >= 7 你会收到此错误:

无法与主机 smtp.sendgrid.net 建立连接:stream_socket_client(): 无法连接到 tcp://smtp.sendgrid.net:587 (连接尝试失败,因为连接方在一段时间后没有正确响应,或由于连接的主机未能响应而建立的连接失败

只需更新您的.env文件即可:

MAIL_MAILER=smtp
MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Your Sender Name"
MAIL_FROM_ADDRESS=info@example.com
Run Code Online (Sandbox Code Playgroud)

到:

MAIL_MAILER=sendMail
MAIL_DRIVER=sendMail
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Your Sender Name"
MAIL_FROM_ADDRESS=info@example.com
Run Code Online (Sandbox Code Playgroud)

然后运行此命令以确保 .env 更改与代码同步。

php artisan config:cache
Run Code Online (Sandbox Code Playgroud)