2013-05-09 29 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

相關問題