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

TYPO3 10.4.20自定义扩展多模板发邮件失败报500错误求助

代码存在的问题及修复方案

  • 变量作用域错误(核心500报错原因)
    你在setTemplateAdmin、setTemplateUser、setTemplateFreeTrialAdmin三个方法中直接使用了$userData变量,但该变量既没有作为参数传入方法,也没有声明为类的属性,方法内部无法访问到外部的$userData,会直接抛出「Undefined variable $userData」错误,这也是你拿不到$userData['email']的根本原因。
    修复方式:给三个方法增加$userData传参,调用时传入对应值:
// 定义方法时加参数
public function setTemplateAdmin(array $userData){
    // 方法内部原有逻辑不变
}
// 调用时传参
$this->setTemplateAdmin($userData);
  • 扩展名拼写错误
    setTemplateUser方法中调用ExtensionManagementUtility::extPath时,扩展名写成了my_extensionn(末尾多了一个n),会导致无法找到对应模板文件抛出路径错误,直接触发500。
    修复方式:修正为正确的扩展名my_extension。
  • 多余的exit中断
    模板逻辑执行完后你加了exit;代码,会直接中断TYPO3的正常请求流程,就算邮件发送成功也无法正常返回表单提交后的响应,大概率会返回空白页或者异常。
    修复方式:删除不必要的exit;代码,按控制器正常逻辑返回响应。
  • 无意义的变量赋值
    三个setTemplate*方法都没有定义返回值,你调用时赋值给$setTemplateAdmin等变量的操作完全冗余,不会拿到任何有效返回值,可以直接调用方法不需要赋值。
  • 参数来源问题(可选排查)
    你最外层判断用的$arguments['requestform']如果是前端提交的表单参数,需要确认你是否已经从请求中正确获取到了$arguments变量,避免该变量未定义导致的判断逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:09:04