Frage

Ich werde zu lesen und parsen die EML-Dateien von der Microsoft SMTP-Dienst fallen gelassen. Ich bin ein Neuling, um die verschiedenen Stream-Klassen verwenden. Die Umsetzung habe ich gesehen, die diese Dateien analysiert verwendet eine Variation auf System.IO.Stream Byte für Byte zu lesen. Allerdings scheint es, wie diese Dateien sollten nie etwas anderes als Text sein. Wäre es nicht besser, eine Stream zu benutzen? Und wenn ja, gibt es keinen Grund zur Verwendung etwas anderes als der Standard (UTF-8) kodiert?

War es hilfreich?

Lösung

Sie sollten Text sein, aber sie sind nicht immer.

können E-Mails werden 8 Bit oder Binär codiert.

Ein Stream wird etwa 99% der E-Mails für Sie arbeiten zu parsen wollen.

Doch ganz ehrlich, das ist nicht das größte Problem.

Das Problem wird tatsächlich das Parsen und den Mime Inhalt zu extrahieren, nach Mime Regeln zusammen mit dem richtigen Zeichensatz verwendet wird.

Obwohl UTF-8 ist eine sehr große characterset, und es kann verwendet werden, um eine Mehrheit von E-Mail zu analysieren, können Sie immer noch korrupt Inhalte mit diesem characterset indem er versucht, Parse-E-Mails erhalten.

Der beste Weg, dies zu tun, ist, um tatsächlich die E-Mail in einer binären Form zu lesen, extrahieren Sie die characterset, dann schalten Sie die E-Mail an das Lesen der angegebenen characterset mit in den Headern gefunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top