Zammad: 日本語エンコーディング7ビットiso-2022-jpが正しく処理されない

作成日 2019年02月27日  ·  29コメント  ·  ソース: zammad/zammad

情報:

  • 使用済みZammadバージョン:最新バージョン2.9.x
  • インストール方法(ソース、パッケージ、..):パッケージ
  • オペレーティングシステム:CentOS 7.1
  • データベース+バージョン:Postgres
  • Elasticsearchバージョン:
  • ブラウザ+バージョン:すべてのブラウザ
  • チケットID:#1042716(1047950、1076276)

予想される行動:

すべての日本語の電子メールメッセージの通常の処理。

実際の動作:

7-bi iso-2022-jp文字セットでエンコードされた電子メールメッセージの処理中に、メッセージが正しくデコードされません。

メールパーサーの問題を想定しています。

他のエンコーディング/文字セットの組み合わせは問題なく機能しているようです。

動作を再現する手順:

7bit / iso-2022-jpでZammadキューに接続されたメールボックスにメールを送信する

すでに説明したように、電子メールメッセージで7ビットエンコーディングとiso-2022-jp文字セットを組み合わせると、対応するチケットのテキストが文字化けします。

たとえば、以下は電子メールのプレーンテキストです。

Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

=1B$B$3$N%"%I%l%9$X$N%a%k%^%,$r2r=3D|$7$F$/$@$5$$!#=1B(B

--_000_SL2P216MB032969A22C6D22226A7B3613EF740SL2P216MB0329KORP_
Content-Type: text/html; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-2022-=
jp">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Meiryo, =1B$B%a%$%j%*=1B(B, &quot;Hiragino Sans&=
quot;, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
=1B$B$3$N%"%I%l%9$X$N%a%k%^%,$r2r=3D|$7$F$/$@$5$$!#=1B(B</div>
</body>
</html>

電子メールクライアントは、適切にフォーマットされたHTMLメッセージとして表示します。

このアドレスへのメルマガを解除してください。

これは、Zammadがチケット本体を表示する方法です。

$B$3$N%"%I%l%9$X$N%a%k%^%,$r2r=|$7$F$/$@$5$$!#(B
bug mail processing prioritised by payment third party issue verified waiting for feedback

最も参考になるコメント

こんにちは@ lsergei-素晴らしい@mantasは、メールgemの問題の回避策を見つけたので、代わりにコードで処理できます。 宝石自体の持続可能な解決策ははるかに優れていますが、現時点では達成できない大きな課題です。 ただし、約2週間以内に予定されているZammad3.4リリースで自由にテストしてください。

全てのコメント29件

Konnichiwa @ lsergei-テストスイートに使用できる完全なサンプルメールを提供していただけますか? それは大いに役立つでしょう。 ありがとう!

Konnichiwa @thorsteneckel 、迅速な対応ありがとうございます。

問題のあるメッセージをどのように転送してほしいですか? 転送するだけでヘッダーが置き換えられる可能性があります(おそらくそうなります)

通常、メールプログラムには、生のメールを.eml形式で保存するオプションがあります。 Apple Mailの場合、たとえばFile -> Save Asです。 ここにアップロードする前に、必ず通常のテキストエディタでそのファイルを開き、すべての機密データを削除してください。

@thorsteneckel説明ありがとうございます。 同封のメッセージをご覧ください。
GitHubはemlファイルのアップロードをサポートしていないため、ファイル拡張子がtxtに変更されました。

メルマガリスト.txt

どもありがと!
問題が確認されました。作業が可能になり次第、この問題を更新します。

したがって、この問題の根本的な原因は、メールの解析に使用している依存関係がISO 2022JPでエンコードされたメールをサポートしていないことです。 そのサポートを古いバージョンにもたらす追加のgemがありますが使用している互換性があり
6年前の古くて保留中のプルリクエストがあり、そこからピックアップする方法についての指示を求めるコメント

今までに実用的な解決策があるかどうかを再評価できますか?

メールジェムに関連する変更はありません。したがって、私の最後のコメントは(残念ながら)まだ有効です。

マンタス、7年以上前のハッキングされた宝石をハッキングせずにこれを回避する解決策があるかどうか見てください。 たぶん、変換は前かそこらで可能でしょう。

こんにちは@ lsergei-素晴らしい@mantasは、メールgemの問題の回避策を見つけたので、代わりにコードで処理できます。 宝石自体の持続可能な解決策ははるかに優れていますが、現時点では達成できない大きな課題です。 ただし、約2週間以内に予定されているZammad3.4リリースで自由にテストしてください。

こんにちは@thorsteneckel@ mantas-ありがとう、あなたの努力に感謝します! テストしてフィードバックを提供します。

新しいリリースを楽しみにしています

こんにちは。 私はzammadが初めてです。
この問題は3.6.xでは修正されていないと思います
私のzammadサーバーは同様の文字化けした文字を表示します。

@hiromayu Zammad 3.6内でまだ失敗する、上記のエンコーディングの電子メールの元のemlファイルを受信することは可能でしょうか? この問題を参照して、このemlをsupport [at] zammad [dot] com送信できます。 それでは見ていきます。

ありがとうございました。

こんにちはMrGeneration。 サポートにemlファイルを送信します。

@ hiromayu @ MrGenerationこの問題はまだ修正されていません。 私はちょっとあきらめました(それらの電子メールを手動で修正する誰かがいます)

小さなフォローアップと同じように:
@hiromayuとサンプルメールのおかげで、特定することができました。

この問題と問題#3096を間接的にカバーしています

こんにちは。 皆さん、ありがとうございました。
この問題はパッチを適用することで修正されると思います。
https://github.com/kuroda/mail-iso-2022-jp。
私のZammadサーバーは、完全にサポートするために送信したメールを処理します。

@hiromayuアップデートありがとうございます! パッチをどのように適用したか教えてもらえますか? githubの記事で説明されているようにgemをインストールしましたか?

この問題を解決した理由がわからなかったと言うのを忘れました。
パッチを適用してzammadserverを更新したので、どちらかまたは両方で問題が修正されました。
コマンドでパッチを適用しました。
sudo zammad run gem install mail-iso-2022-jp
再起動します。

ありがとう@hiromayu 。 gemをインストールしたばかりですが、おそらくインストールしただけでは問題は解決しません。 server.soで何を変更したか教えていただけますか?

申し訳ありません。 server.soには何もしませんでした。 そのパッチをインストールして、ubuntuupdaterによって導入されたzammadサーバーを更新するだけです。
パッチをインストールするだけではうまくいかない場合。 修正された問題を決定するのは時期尚早です。 数日後にメールをチェックします。

@hiromayu わかりました。I did the same thing and will monitor if the problem is gone.

どもありがとう!

重要な注意点:このアクションは更新が安全ではないことに注意してください。
したがって、本当に解決策を使い続けたいと思っていて、バグ修正#3096がシステムにインストールされていない場合、私たちはあなたを止めることはできません。

ただし、このために発生しているすべてのバグは、バグ修正の検証が行われなくなりました。

@hiromayuが提案した@MrGenerationは、コードの変更がないため、実際には安全に更新されます。

チケットを閉じるのは時期尚早かもしれませんが、今日はその宝石をインストールした後は問題ありません。

あなたは環境を変えました。
そうは言っても、特定のソースコードのインストール設定がない場合、このアクションは安全に更新されません。

ちょっと、そこ! いくつかの技術的背景を提供するために:gemをインストールしてもそれ自体には効果がありません。 アクション/コードをさらに変更しないとロードされません。 したがって、バニラ環境を復元するために、インストールされているgemを再度削除することをお勧めします。 7日前に作成された#3096の提供された修正により、問題が解決したと思われます

すべてをありがとう。 したがって、Zammadの更新がこの問題を修正する理由でした。
間違った情報でごめんなさい。
Zammadサーバーを再インストールして結果を確認します。 数日後に本当に修正されたと報告します。

こんにちは。 この問題の別の例があります。
しかし、zammadの更新前は少し違いがあると思います。
更新前は、日本語の文字がすべて文字化けしていました。 しかし、今ではメールの件名は正しいです。 メールの本文のみが文字化けしています。
私は何をすべきか?

新しい問題を作成してください。
これは複雑な問題であり、同じように見えるかもしれませんが、性質がわずかに異なる場合もあります。

このページは役に立ちましたか?
0 / 5 - 0 評価