TYPO3 Formhandler Finisher_Mail多个接收器与to_email + addTolist

时间:2017-05-16 16:30:38

标签: typo3 typoscript typo3-6.2.x

我有一个formhandler表单,我正在尝试找到一个好的方法,使用一个邮件修整程序向多个收件人发送管理邮件。问题是收件人是可变的。邮件的收件人取决于表单中10个复选框的选择。每个选择都应该具有添加新收件人的效果。目前它已经解决了10个邮件终结者,如

if {
    1 {
        conditions {
            OR1.AND1 = checkbox_1 = 1
        }
        isTrue {
            finishers.1.config.admin.to_email = p1@mail.com
        }
        else {
            finishers.1.config.admin.disable = 1
        }
    }
    2 {
        conditions {
            OR1.AND1 = checkbox_2 = 1
        }
        isTrue {
            finishers.2.config.admin.to_email = p2@mail.com
        }
        else {
            finishers.2.config.admin.disable = 1
        }
    }
    ...

有更好的方法吗?我尝试使用一个终结器和addToList

的使用来解决这个问题
if {
    1 {
        conditions {
            OR1.AND1 = checkbox_1 = 1
        }
        isTrue {
            finishers.1.config.admin.to_email := addToList(p1@mail.com)
        }
    }
    2 {
        conditions {
            OR1.AND1 = checkbox_2 = 1
        }
        isTrue {
            finishers.1.config.admin.to_email := addToList(p2@mail.com)
        }
    }
    ...

但它不起作用。有4个选中的框,它仍然是一个收件人。为什么呢?

1 个答案:

答案 0 :(得分:0)

不要忘记:typoscript是一种配置语言,没有编程语言。

所以你需要另一个逻辑来构建多个接收器。 类似的东西:

:
finishers.1.config.admin.to_email = COA
finishers.1.config.admin.to_email {
    10 = TEXT
    10.value = p1@mail.com,
    10.if.isTrue.data = checkBox_1 

    20 = TEXT
    20.value = p2@mail.com,
    20.if.isTrue.data = checkBox_2

    30 = TEXT
    30.value = p3@mail.com,
    30.if.isTrue.data = checkBox_3 

    stdWrap.substring = 0,-1
}