読書EMLは、Windows SMTPサービスからファイル。 StreamReaderを使用しない任意の理由は?

StackOverflow https://stackoverflow.com/questions/2345378

質問

私はEMLファイルを読み込んで解析することするつもりのMicrosoft SMTPサービスによって低下しました。私は、様々なストリームクラスを使用する初心者です。これらのファイルを解析し、私が見てきた実装では、バイト単位で読み取るためにSystem.IO.Streamにバリエーションを使用しています。しかし、何もなく、テキストをしてはいけません、これらのファイルのように思えます。それは、StreamReaderをを使用する方が良いと思いませんか?そしてもしそうなら、そこにある使用に何らかの理由でデフォルト以外の何か(UTF-8)エンコーディング?

役に立ちましたか?

解決

彼らは、テキストでなければなりませんが、彼らは常にではありません。

電子メールは、8ビットまたはバイナリ符号化することができる。

A StreamReaderを使用すると、解析したいメールの約99%のために動作します。

しかし、はっきり言って、それが最大の問題ではありません。

問題が実際に正しいキャラクタを使用してと共に、マイムルールに従って、MIMEコンテンツを解析し、抽出されます。

UTF-8は非常に大規模なキャラクタであり、電子メールの大部分を解析するために使用することができますが、あなたはまだそのキャラクタとの電子メールを解析しようとすることにより、破損したコンテンツを取得することができます。

これを行うための最善の方法は、実際に指定されたキャラクタは、ヘッダーで見つかった使用して電子メールを読みに切り替え、その後、バイナリ形式で電子メールを読むキャラクタを抽出することである。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top