Can't write article_plain to UTF8 database (bug)

Hello, We have discovered a bug in OTRS 2.4 which manifests itself by not being able to bounce messages that contain non-ascii characters and that are not encoded in UTF8 because the message gets cut-off at the first non-ascii character. For example if I send an e-mail with the body "Hello Ivan Ivanovi<non ascii> Bla bla etc etc..." to the queue "foo", I zoom it and click "bounce". The message that gets bounced is just "Hello Ivan Ivanovi". We're using MySQL and an utf8 database for otrs. I traced a problem to a function ArticleWritePlain in the file Kernel/System/Ticket/ArticleStorageDB.pm # write article to db 1:1 return $Self->{DBObject}->Do( SQL => 'INSERT INTO article_plain ' . ' (article_id, body, create_time, create_by, change_time, change_by) ' . ' VALUES (?, ?, current_timestamp, ?, current_timestamp, ?)', Bind => [ \$Param{ArticleID}, \$Param{Email}, \$Param{UserID}, \$Param{UserID} ], ); What happens is that $Param{Email} is an originally encoded e-mail message (like it was sent) and the it gets inserted with the original encoding to the database. And mysql cuts it off (body field) at the first non utf8 character so it is not written. Can you advise me what to do because we need bouncing functionality. Could I change the function to previously encode the e-mail to base64 and decode it in the the the function that retrieves it? Thanks, Hrvoje Dagelic, RBI institute
participants (1)
-
Hrvoje Dagelic