TYPO3 Powermail能否设置多个预定义收件人?
TYPO3 Powermail:通过单个字段设置多个收件人方案可行吗?
你的方案理论上可行,但当前代码存在两个关键问题导致不生效:
- 直接在
plugin.tx_powermail.settings.setup.receiver.predefinedReceiver.receivers1.email中使用{emailA.value},{emailB.value}这种变量写法,TYPO3不会自动解析这些变量——该配置字段默认不触发stdWrap解析,必须显式通过stdWrap机制引用变量。 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
相关产品推荐
相关产品推荐

