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

TYPO3 10.4.17 表单EmailFinisher提交后重复发送两封相同邮件问题求助

TYPO3 10.4.17表单重复发送邮件解决方案

从你提供的fileadmin/form_definitions/testform.form.yaml配置来看,仅配置了1个EmailToReceiver完成器,可直接排除配置重复导致的问题,以下是可行的修复方案:

优先修复方案

TYPO3 10.4.17存在官方确认的表单完成器重复执行的核心BUG,直接将TYPO3核心升级到10.4系列最新的LTS版本即可解决,这是成本最低、兼容性最好的修复方式。

暂无法升级核心时的备选方案

  • 排查自定义逻辑冲突
    检查站点是否安装了第三方表单增强扩展,或者自主开发了表单提交相关的Hook、PSR-14事件监听器,临时禁用所有自定义表单相关逻辑后测试提交,定位是否是额外触发逻辑导致的重复发送。
  • 增加前端防重复提交逻辑
    给表单提交按钮添加点击后禁用的JS逻辑,避免用户双击、页面卡顿导致的重复提交,参考代码如下:
    document.addEventListener('DOMContentLoaded', function() {
      const targetForm = document.querySelector('form[data-form-identifier="testform"]');
      if (targetForm) {
        targetForm.addEventListener('submit', () => {
          const submitBtn = targetForm.querySelector('button[type="submit"]');
          if (submitBtn) submitBtn.disabled = true;
        });
      }
    });
    
  • 增加邮件完成器幂等校验
    自定义重写EmailToReceiver完成器逻辑,基于表单提交的唯一请求标识做缓存,第一次发送邮件后将标识存入TYPO3缓存框架,后续触发时如果缓存中已有对应标识则直接跳过发送,缓存有效期可设置为1小时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 07:54:05