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

TYPO3 Powermail能否设置多个预定义收件人?

TYPO3 Powermail:通过单个字段设置多个收件人方案可行吗?

你的方案理论上可行,但当前代码存在两个关键问题导致不生效:

  1. 直接在plugin.tx_powermail.settings.setup.receiver.predefinedReceiver.receivers1.email中使用{emailA.value},{emailB.value}这种变量写法,TYPO3不会自动解析这些变量——该配置字段默认不触发stdWrap解析,必须显式通过stdWrap机制引用变量。
  2. key.stdWrap.crop的格式有误,TYPO3的crop参数格式为length|append|respectWordBoundaries,你写的3 | | 0包含多余空格,会导致裁剪逻辑失效。

修正后的实现代码

方式1:先定义独立变量再拼接

# 解析第一个收件邮箱
emailA = CASE
emailA {
    key.data = GP:tx_powermail_pi1|field|fieldA
    12345678 = TEXT
    12345678.value = mail@test.de
    default = TEXT
    default.value = defaultmail@test.de
}

# 解析第二个收件邮箱(修正crop格式)
emailB = CASE
emailB {
    key.data = GP:tx_powermail_pi1|field|fieldA
    key.stdWrap.crop = 3||0 # 无空格的标准格式
    123 = TEXT
    123.value = anothermail@test.de
    default = TEXT
    default.value = defaultmail@test.de
}

# 拼接两个邮箱为逗号分隔的列表
combinedRecipients = TEXT
combinedRecipients {
    data = emailA
    append = TEXT
    append.value = ,
    append.data = emailB
}

# 配置预定义收件人,通过stdWrap解析拼接结果
plugin.tx_powermail.settings.setup.receiver.predefinedReceiver.receivers1.email.stdWrap.data = combinedRecipients

方式2:直接在收件人配置中嵌套处理(更简洁)

plugin.tx_powermail.settings.setup.receiver.predefinedReceiver.receivers1.email = TEXT
plugin.tx_powermail.settings.setup.receiver.predefinedReceiver.receivers1.email {
    # 处理第一个邮箱
    10 = CASE
    10 {
        key.data = GP:tx_powermail_pi1|field|fieldA
        12345678 = TEXT
        12345678.value = mail@test.de
        default = TEXT
        default.value = defaultmail@test.de
    }
    # 添加逗号分隔符
    20 = TEXT
    20.value = ,
    # 处理第二个邮箱
    30 = CASE
    30 {
        key.data = GP:tx_powermail_pi1|field|fieldA
        key.stdWrap.crop = 3||0
        123 = TEXT
        123.value = anothermail@test.de
        default = TEXT
        default.value = defaultmail@test.de
    }
}

额外验证建议

  • 可以临时添加页面输出代码,验证邮箱解析结果是否正确:
    page.10 = TEXT
    page.10.data = combinedRecipients # 对应方式1的变量
    
  • 确保fieldA是表单中实际使用的字段标识符,检查GP变量路径是否匹配表单提交的参数结构。
  • 升级到更高版本的Powermail(如v9+)后,该逻辑依然适用,预定义收件人的stdWrap支持未发生破坏性变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:36:16