北岡 紀弘
norih****@hitac*****
2018年 6月 29日 (金) 11:12:01 JST
北岡です。 > 結論から言うと、回避策のようなものはありません。 > > milterのCで実装されている箇所で、bodyのコールバックにMTAからやってきた > チャンクを渡すときに、チャンクにNULLが含まれているとチャンクがNULL終端 > されていることになってしまうようです。このとき、チャンクのサイズはNULL > を含んだ元のデータのサイズとなっているので、Rubyで実装したコールバック > がチャンクを処理する際に受け取るチャンクの内容とチャンクの長さが一致し > ないため、壊れたデータが表示されるようです。 > > NULL文字を含んだチャンクを扱えるように修正する必要があると思います。 > > 以降の調査は、以下のissueで進めようと思います。 > https://github.com/milter-manager/milter-manager/issues/135 見解ありがとうございます。発生原因の詳細について理解できました。 また、今のところ回避策は無く、プログラム側の修正が必要とのこと承知しました。 > いただいた sendmail.cf を確認してみたところ、 > > EightBitMode=pass8 > > がコメントアウトされていることに気付きました。 > > sendmail のことはよくわからないのですが、このオプションを設定すること > で、8bitな文字を含むメールを変換せずに通すことができるのではないでしょ > うか? コメントアウトされている場合はデフォルトで「EightBitMode=pass8」になってました。 (sendmail.cf のコメントアウトはデフォルトの設定値を表しているみたいです) 念の為、以下のコメントアウトを外しても結果は代わりませんでした。 ---------------------- # 8-bit data handling #O EightBitMode=pass8 ---------------------- 以上です。よろしくお願い致します。 -----Original Message----- From: milte****@lists***** <milte****@lists*****> On Behalf Of Kenji Okimoto Sent: Thursday, June 28, 2018 6:11 PM To: milte****@lists***** Subject: [!]Re: [milter-manager-users-ja] 00 のバイトデータ(null文字)以降のメールデータが壊れる問題 沖元です。 いただいた sendmail.cf を確認してみたところ、 EightBitMode=pass8 がコメントアウトされていることに気付きました。 sendmail のことはよくわからないのですが、このオプションを設定すること で、8bitな文字を含むメールを変換せずに通すことができるのではないでしょ うか? -- Kenji Okimoto <okimo****@clear*****>