Laravel 9配置SendinBlue SMTP遇Cpanel生产环境500错误
解决Laravel 9部署到cPanel后SendinBlue邮件500错误(Unsupported mail transport [sendinblue])
这个错误的核心原因很明确:Laravel 9的核心框架并没有内置SendinBlue(现更名为Brevo)的专属邮件驱动,你在mail.php里配置了transport' => 'sendinblue',但Laravel根本不知道这个驱动该怎么处理,所以抛出了Unsupported mail transport [sendinblue]的异常。
下面给你两个可行的解决方案,你可以根据需求选择:
方案一:改用Laravel自带的SMTP驱动(最快解决)
你已经在.env里配置了SendinBlue的SMTP参数,完全可以直接用Laravel原生的SMTP驱动,不需要自定义sendinblue transport。具体步骤:
调整
config/mail.php的配置:- 确保默认邮件驱动指向
smtp:'default' => env('MAIL_MAILER', 'smtp'), - 把你原本写在
sendinbluemailer里的参数,移到默认的smtp配置下:'smtp' => [ 'transport' => 'smtp', 'host' => env('MAIL_HOST', 'smtp-relay.sendinblue.com'), 'port' => env('MAIL_PORT', 587), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, 'auth_mode' => null, ], - 可以删除那个自定义的
sendinbluemailer配置,避免混淆。
- 确保默认邮件驱动指向
清除生产环境的配置缓存:
在cPanel的终端里运行以下命令:php artisan config:clear php artisan cache:clear验证cPanel服务器的端口权限:
联系你的主机商确认,服务器是否允许出站连接到587端口(SendinBlue的SMTP端口),有些主机商会限制这类端口,这也是生产环境常见的坑。
方案二:安装官方Brevo(原SendinBlue)驱动包(适合用API发送邮件)
如果你想使用SendinBlue的API来发送邮件(而非SMTP),需要安装官方适配Laravel的包:
安装Brevo的PHP库:
在终端运行Composer命令:composer require brevo/brevo-php-library配置邮件驱动:
- 修改
config/mail.php里的sendinbluemailer配置,改用API驱动:'sendinblue' => [ 'transport' => 'sendinblue', 'api_key' => env('SENDINBLUE_API_KEY'), ], - 把
.env里的MAIL_MAILER改成sendinblue:MAIL_MAILER=sendinblue
- 修改
同样清除配置缓存:
php artisan config:clear php artisan cache:clear
最后提醒一下,生产环境一定要确认.env文件的配置是正确的,有时候部署时可能会遗漏更新.env,或者缓存了旧的配置,这也是导致500错误的常见原因。
内容的提问来源于stack exchange,提问作者Gustavo
相关产品推荐
相关产品推荐

