2013-05-09 111 views
0

我使用的是OTRS 3.2,我想自动将To电子邮件地址设置为基于其中一个动态字段的值。这3.1 AgentTicketForward如何设置电子邮件地址ForwardTicket

if ($Data{DynamicField_Test} eq 'ABC') { 
     $Data{To}="abc\@example.com"; 
} elsif ($Data{DynamicField_Test} eq 'XYZ') { 
     $Data{To}="xyz\@example.com"; 
} 

工作正常与下面的代码升级到3.2 OTRS它停止工作后。它不仅填写电子邮件地址,而且如果手动填写收件人字段,它也不会发送任何电子邮件。

有人知道3.2中有什么变化,所以它停止工作?

回答

1

@是sigil表示perl数组和双引号将数组插入字符串。

您需要在双引号(\ @)内反斜线或使用单引号以避免插值。

if ($Data{DynamicField_Test} eq 'ABC') { 
     $Data{To} = '[email protected]'; 
} 
elsif ($Data{DynamicField_Test} eq 'XYZ') { 
     $Data{To} = '[email protected]'; 
} 
# default for $Data{To} 
else { 
     $Data{To} = '...' 
} 
+0

你说得对,我的原代码不起作用。我为电子邮件地址中的@添加了一个转义符(\),就像实际的代码一样。代码起作用(它不会抛出错误),但不会填充表单中的To字段。 – Nin 2013-05-09 07:39:22

+0

如果$ Data {DynamicField_Test}不满足先前的条件,我会添加其他{}块。 – 2013-05-09 07:42:18

+0

如果它不满足,它可以是空白的,所以没关系。真正的问题在于表单没有在3.2中填充,但它在3.1中使用相同的代码。 – Nin 2013-05-09 07:49:04

相关问题