根据下拉列表中的选择,将TYPO3 EXT:powermail邮件发送给不同的接收方

时间:2016-12-15 07:09:45

标签: typo3 powermail

我经常要求根据表单中选择的选择字段向不同的接收方发送powermail表单。 我使用TYPO3 7.6.x和Powermail 3.3.0 如何才能做到这一点?

3 个答案:

答案 0 :(得分:8)

在EXT的slackchannel的@ alex-kellner的帮助下:powermail我找到了一个非常简单的解决方案:

基本上需要2个步骤:

<强>步骤1

选择字段中选项的值。 您需要在选择字段中为选项添加值。这可以通过在您的选项中添加管道|并简单地添加值

来完成
MyRecieverEmail 1 | 1

MyRecieverEmail 2 | 2

MyRecieverEmail 3 | 3

除此之外,您还需要知道字段的标记/变量/单个字段名称。您可以在字段的extended标签中找到该名称。

你也可以给这个字段一个&#34;拥有&#34;变量名称,如果需要。变量用{}包裹,但在步骤2中你不会这些

第2步

现在您需要在设置域中添加一些TS。

背景信息:基本上这会改变表单的接收者:

plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = your@email.com

现在你需要检查表格中选择了哪个选项。这是由全球条件完成的:

[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]

其中yourVariableFieldname来自extended标签中的单个字段名称,1是第一个选项的值(MyRecieverEmail 1)

通过使用此TS,如果在表单中选择第一个选项MyRecieverEmail 1,表单将发送到your@email.com:

[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = your@email.com
[global]

您现在可以根据需要添加更多条件。完整的例子是:

[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yourfirst@email.com
[global]
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 2]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yoursecond@email.com
[global]
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 3]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yourthird@email.com
[global]

请注意,这将在TYPO3-Install中使用fieldname {yourVariableFieldname}的每个字段负责,其中考虑了此TS。 如果您在多个表单中使用与此字段完全相同的字段,这将非常有用。 如果您不希望这个负责,您有2个选项可以避免这种情况:

  1. 仅将TS放在表单所在的页面上。

  2. 您可以将其添加到全局条件中:

    &安培;&安培; [globalString = GP:tx_powermail_pi1 | mail | form = 123]

  3. 其中123是表单的ID。

    这将是这样的:

    [globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 2] && [globalString = GP:tx_powermail_pi1|mail|form = 123]
    

答案 1 :(得分:0)

从9.5开始,像这样:

[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 1 ]

应该有效

答案 2 :(得分:0)

这对我有用:

[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 1 ]
plugin.tx_powermail.settings.setup {
    receiver.overwrite {
        email.value = MYEMAIL
        email = TEXT
    }
}
[END]

[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 2 ]
plugin.tx_powermail.settings.setup {
    receiver.overwrite {
        email.value = MYEMAIL2
        email = TEXT
    }
}
[END]