You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware 6中MailService触发弃用异常致邮件发送失败咨询

Shopware 6 弃用异常处理及MailService版本兼容问题

为什么生产环境会抛出弃用异常

Shopware 6.4.17.0调整了弃用提示的处理逻辑:

  • 开发环境中弃用提示默认是警告级别,但生产环境如果PHP错误报告级别包含E_USER_DEPRECATED,就会将弃用提示转为异常抛出。
  • 你的CustomMailService调用的内部邮件发送逻辑,间接触发了StorableFlow::setOriginalEvent()这个已标记为弃用的方法,虽然该方法在6.4全版本仍能运行,但高错误级别下会触发异常阻断流程。

如何阻止该异常抛出

有两种可行方案:

1. 调整PHP错误报告级别

在生产环境的php.ini文件中修改错误报告配置,排除弃用相关的错误类型:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED

或者在Shopware的生产环境配置文件(如config/packages/prod/framework.yaml)中添加设置:

framework:
    php_errors:
        log: true
        throw: false

2. 替换触发弃用方法的调用逻辑

Shopware 6.4后期推荐使用更现代的邮件发送方式,避免触发旧的弃用逻辑:

  • 直接注入Symfony的MailerInterface来发送邮件,替代原有的MailService调用路径。
  • 如果是触发系统内置邮件模板,使用Shopware\Core\Content\Flow\Dispatching\Action\SendMailAction或FlowMailSender通过Flow机制发送,绕过弃用的setOriginalEvent()方法。

6.5版本是否还能使用MailService类

Shopware 6.5中,旧的Shopware\Core\Framework\Mail\MailService会被正式移除,官方不再维护该类。建议提前适配:

  • 使用Symfony原生的MailerInterface处理自定义邮件发送。
  • 对于Shopware内置邮件流程,完全迁移到Flow引擎相关的邮件发送服务,比如FlowMailSender或通过Flow配置触发邮件。

内容的提问来源于stack exchange,提问作者Sebbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:15:35