Hur man läser MSG-filer i C#

Hur man läser MSG-filer i C#

Denna guide visar hur man öppnar en Outlook .msg fil och extrahera dess innehåll med hjälp av Aspose.Email FOSS for .NET. You will access the subject, body, sender, recipients, and attachment list using MapiMessage.Biblioteket stöder laddning från en filvägen, a Stream,Eller en rå byte[].

Steg 1 – Installera paketet

dotnet add package Aspose.Email.FOSS

Steg 2 – Ladda ner MSG-filen

using Aspose.Email.Foss.Msg;

using var message = MapiMessage.FromFile("sample.msg");

Du kan också ladda från en ström:

using var stream = File.OpenRead("sample.msg");
using var message = MapiMessage.FromStream(stream);

Steg 3 – Läs meddelandebolag

Console.WriteLine($"Subject: {message.Subject}");
Console.WriteLine($"From: {message.SenderName} <{message.SenderEmailAddress}>");
Console.WriteLine($"Date: {message.MessageDeliveryTime}");
Console.WriteLine($"Body: {message.Body}");

Steg 4 – Läs receptorer

foreach (var recipient in message.Recipients)
{
    Console.WriteLine($"{recipient.DisplayName} <{recipient.EmailAddress}>");
}

Steg 5 – Extract tillbehör

foreach (var attachment in message.Attachments)
{
    Console.WriteLine($"Saving: {attachment.Filename}");
    File.WriteAllBytes(attachment.Filename!, attachment.Data);
}

För inbyggda meddelanden bifogade:

foreach (var attachment in message.Attachments)
{
    if (attachment.IsEmbeddedMessage)
    {
        Console.WriteLine($"Embedded: {attachment.EmbeddedMessage!.Subject}");
    }
}

Fullständigt exempel

using Aspose.Email.Foss.Msg;

using var message = MapiMessage.FromFile("sample.msg");

Console.WriteLine($"Subject: {message.Subject}");
Console.WriteLine($"From: {message.SenderName} <{message.SenderEmailAddress}>");

foreach (var r in message.Recipients)
    Console.WriteLine($"  {r.DisplayName} <{r.EmailAddress}>");

foreach (var a in message.Attachments)
{
    if (a.IsEmbeddedMessage)
        Console.WriteLine($"  Embedded: {a.EmbeddedMessage!.Subject}");
    else
        File.WriteAllBytes(a.Filename!, a.Data);
}
 Svenska