Laravel 8升级至9后出现Method Illuminate\Mail\Mailer::getSwiftMailer不存在错误求解
解决Laravel 9升级后
Illuminate\Mail\Mailer::getSwiftMailer不存在的问题 这个错误是因为Laravel 9彻底移除了对SwiftMailer的支持,改用Symfony Mailer作为底层邮件组件,原来的getSwiftMailer()方法已被删除,调用该方法自然会报错。
以下是具体解决办法:
自定义代码中调用了该方法
将getSwiftMailer()替换为Laravel 9提供的对应方法:// 原代码 $swiftMailer = Mail::getSwiftMailer(); // 替换为获取Symfony Transport实例 $transport = Mail::getSymfonyTransport(); // 或者获取Symfony Mailer实例 $symfonyMailer = Mail::getSymfonyMailer();根据业务需求选择对应方法,Symfony Mailer的具体API可参考Symfony官方文档。
第三方依赖包调用了该方法
检查邮件相关第三方包是否支持Laravel 9:- 尝试将包升级到最新版本,主流包基本已适配Laravel 9的Symfony Mailer;
- 若包已停止维护无法升级,需寻找功能类似的替代包,或自行fork包并修改其中的
getSwiftMailer()调用为Laravel 9兼容方法。
检查邮件配置
确保config/mail.php配置文件已更新为Laravel 9格式,比如驱动配置、邮件服务器参数等,避免因配置残留引发隐性问题。
内容的提问来源于stack exchange,提问作者Wahidul Alam
相关产品推荐
相关产品推荐

