Načítání a analýza souborů MSG

Pomocí Aspose.Email pro .NET mohou vývojáři načítat i parsovat obsah souborů Outlook zpráv.

  • Pro načtení souborů MSG z disku použijte statickou MapiMessage.Load metoda třídy MapiMessage třída. Třída poskytuje několik statických funkcí pro načítání pro různé scénáře.
  • Pro analýzu obsahu souboru MSG, MapiMessage uvádí řadu metod a vlastností.

V tomto článku se naučíte, jak načíst a parsovat soubor MSG k zobrazení jeho obsahu. Ukázky kódu s kroky vám poskytnou jasné pochopení, jak implementovat funkci načítání a parsování Outlook MSG souborů ve vašem projektu.

Nejprve se naučte načítat soubory MSG ze souboru nebo ze streamu.

Načíst soubory MSG

Následující úryvek kódu vám ukáže, jak načíst soubory MSG.

// Create an instance of MapiMessage from file
var msg = MapiMessage.Load(@"message.msg");

// Get subject
Console.WriteLine("Subject:" + msg.Subject);

// Get from address
Console.WriteLine("From:" + msg.SenderEmailAddress);

// Get body
Console.WriteLine("Body" + msg.Body);

// Get recipients information
Console.WriteLine("Recipient: " + msg.Recipients);

// Get attachments
foreach (var att in msg.Attachments)
{
    Console.Write("Attachment Name: " + att.FileName);
    Console.Write("Attachment Display Name: " + att.DisplayName);
}

Následující příklad kódu ukazuje, jak použít MailMessage k načtení zprávy ve formátu MSG.


var eml = MailMessage.Load("message.msg");

Je třeba poznamenat, že výsledná zpráva je převedena do formátu EML, včetně vložených příloh zprávy. Nepoužívejte tuto metodu načítání, pokud chcete zachovat některé specifické vlastnosti formátu MSG původní zprávy.

Chcete‑li zachovat původní formát vložených příloh zprávy, použijte msgLoadOptions.PreserveEmbeddedMessageFormat vlastnost.


var msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.PreserveEmbeddedMessageFormat = true;
var msg = MailMessage.Load(stream, msgLoadOptions);

Načíst ze streamu

Následující úryvek kódu ukazuje, jak načíst soubor ze streamu.

// Create an instance of MapiMessage from file
byte[] bytes = File.ReadAllBytes(@"message.msg");

using (MemoryStream stream = new MemoryStream(bytes))
{
    stream.Seek(0, SeekOrigin.Begin);
    // Create an instance of MapiMessage from file
    MapiMessage msg = MapiMessage.Load(stream);

    // Get subject
    Console.WriteLine("Subject:" + msg.Subject);

    // Get from address
    Console.WriteLine("From:" + msg.SenderEmailAddress);

    // Get body
    Console.WriteLine("Body" + msg.Body);

}

Převést EML na MSG při zachování formátu vloženého EML

Soubory EML mohou být načteny do MapiMessage třída vytvořením instance MailMessage objekt a předání jej MapiMessage.FromMailMessage metoda. Pokud soubor EML obsahuje vložené soubory EML, použijte MapiConversionOptions.PreserveEmbeddedMessageFormat pro zachování formátu vložených souborů EML. Níže uvedený úryvek kódu ukazuje, jak načíst soubory EML do MapiMessage při zachování formátu vložených souborů EML.

// Load the EML file into a MailMessage object
var mailMessage = MailMessage.Load(emlFilePath);

// Set conversion options to preserve the format of embedded EML messages
var options = new MapiConversionOptions
    {
        PreserveEmbeddedMessageFormat = true
    };

// Convert MailMessage to MapiMessage, preserving embedded EML files
var mapiMessage = MapiMessage.FromMailMessage(mailMessage, options);

// Save the converted message in MSG format
mapiMessage.Save(msgFilePath);

Parsovat soubory zpráv Outlook

Aspose.Email pro .NET poskytuje MapiMessage třída, která se používá k otevření a analýze souboru MSG. Jelikož může v souboru MSG být mnoho příjemců, MapiMessage třída vystavuje Příjemci vlastnost, která vrací MapiRecipientCollection která představuje kolekci Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: objekty. Třída Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: objekt dále odhaluje metody pro práci s atributy příjemců.

Následující postup kroků slouží k tomuto účelu:

  1. Vytvořte instanci MapiMessage třídu pomocí MapiMessage.Load statickou metodu.
  2. Zobrazit jméno odesílatele, předmět a tělo ze souboru MSG pomocí SenderName, Subject a Body vlastnosti.
  3. Použijte Příjemci vlastnost pro získání reference na kolekci Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: metoda k získání reference na kolekci
  4. Procházet MapiRecipientCollection kolekci pro zobrazení obsahu pro každého Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: k zobrazení obsahu týkajícího se každého
//Instantiate an MSG file to load an MSG file from disk
var outlookMessageFile = MapiMessage.Load(dataDir + "message.msg");
//Display sender's name
Console.WriteLine("Sender Name : " + outlookMessageFile.SenderName);
//Display Subject
Console.WriteLine("Subject : " + outlookMessageFile.Subject);
//Display Body
Console.WriteLine("Body : " + outlookMessageFile.Body);
//Display Recipient's info
Console.WriteLine("Recipients : \n");

//Loop through the recipients collection associated with the MapiMessage object
foreach (var rcp in outlookMessageFile.Recipients)
{
	//Display recipient email address
	Console.WriteLine("Email : " + rcp.EmailAddress);
	//Display recipient name
	Console.WriteLine("Name : " + rcp.DisplayName);
	//Display recipient type
	Console.WriteLine("Recipient Type : " + rcp.RecipientType);
}