0

私は OTRS 3.2 を使用してToおり、動的フィールドの 1 つに基づく値に電子メール アドレスを自動的に設定したいと考えています。これは、AgentTicketForward で以下のコードを使用して 3.1 で正常に機能しました。

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

OTRS 3.2にアップグレードした後、動作しなくなりました。電子メール アドレスが入力されないだけでなく、[宛先] フィールドが手動で入力された場合、電子メールは送信されません。

3.2 で何が変更されて動作しなくなるか知っている人はいますか?

4

1 に答える 1

1

@ は perl 配列を表す記号であり、二重引用符は配列を文字列に補間します。

二重引用符 (\@) 内でバックスラッシュを使用するか、補間を避けるために単一引用符を使用する必要があります。

if ($Data{DynamicField_Test} eq 'ABC') {
        $Data{To} = 'abc@example.com';
}
elsif ($Data{DynamicField_Test} eq 'XYZ') {
      $Data{To} = 'xyz@example.com';
}
# default for $Data{To}
else { 
      $Data{To} = '...' 
}
于 2013-05-09T07:35:05.943 に答える