La lecture des fichiers EML du service SMTP Windows. Toute raison de ne pas utiliser StreamReader?

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

Question

Je vais être la lecture et l'analyse des fichiers EML abandonné par le service SMTP Microsoft. Je suis un débutant à l'utilisation des différentes classes de flux. La mise en œuvre, je l'ai vu que ces fichiers utilise parse une variation sur System.IO.Stream pour lire octet par octet. Cependant, il semble que ces fichiers ne devrait jamais être autre chose que du texte. Ne serait-il préférable d'utiliser un StreamReader? Et si oui, est-il une raison d'utiliser autre chose que l'encodage par défaut (UTF-8)?

Était-ce utile?

La solution

Ils devraient être du texte, mais ils ne sont pas toujours.

e-mails peuvent être de 8 bits ou binaires codées.

Un StreamReader fonctionnera pour environ 99% des e-mails que vous souhaitez analyser.

Cependant, tout à fait honnêtement, ce n'est pas le plus gros problème.

Le problème sera en fait l'analyse et l'extraction du contenu Mime, selon les règles Mime, ainsi que l'utilisation correcte du characterset.

Bien que UTF-8 est un characterset très grand et il peut être utilisé pour analyser la majorité des e-mails, vous pouvez toujours obtenir le contenu corrompu en essayant d'analyser des courriels avec cette characterset.

La meilleure façon de faire, est de lire l'e-mail en fait sous une forme binaire, extraire le characterset, puis passer à la lecture de l'e-mail en utilisant le jeu de caractères spécifié dans les en-têtes trouvé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top