web-dev-qa-db-fra.com

Différence entre un fichier .msg et un fichier .eml

Quelle est la différence entre un fichier .msg et un fichier .eml?

  1. Je sais que eml est en fait un fichier texte alors que msg ne l'est pas.
  2. Les deux peuvent être ouverts dans Outlook.
  3. Outlook vous permet d'enregistrer l'e-mail au format .msg mais je n'ai pas trouvé d'option pour l'enregistrer en tant qu'eml

Y a-t-il quelque chose dont msg est capable et qui n'est pas eml et vice versa?

27
rajesh

MSG est un fichier de stockage binaire OLE ( IStorage ). Contrairement à MIME (EML), il stocke toutes les propriétés spécifiques MAPI que MIME ne peut pas stocker. Son format est documenté par Microsoft. Vous pouvez regarder à l'intérieur d'un fichier MSG au niveau IStorage à l'aide d'un utilitaire comme SSViewer . Au niveau MAPI , vous pouvez ouvrir/créer un fichier MSG en utilisant les fonctions StgOpenStorage / StgCreateStorageEx et OpenIMsgOnIStg .

Les fichiers EML sont des fichiers texte au format MIME (vous pouvez ouvrir un fichier comme celui-ci dans le Bloc-notes).

Pour créer un fichier EML, vous pouvez soit

  1. Créez-le explicitement dans votre code un en-tête/une partie MIME à la fois.

  2. Si vous utilisez MAPI étendu en C++ ou Delphi, vous pouvez utiliser l'interface IConverterSession qui encapsule le convertisseur Outlook natif. Vous pouvez jouer avec lui dans OutlookSpy - cliquez sur le bouton IConverterSession dans la barre d'outils OutlookSpy.

  3. Vous pouvez utiliser Redemption et ses méthodes RDOMail .SaveAs(..., olRfc822)/ SafeMailItem.SaveAs(..., olRfc822).

24