Come iniziare con Aspose.Email FOSS per .NET

Come iniziare con Aspose.Email FOSS per .NET

Questa guida ti accompagna nell’installazione della libreria, nella lettura del tuo primo file MSG, nella creazione di un messaggio da zero e nella conversione tra i formati EML e MSG.

Passo 1 — Installa il pacchetto

dotnet add package Aspose.Email.Foss

Non è necessaria alcuna configurazione aggiuntiva. Il pacchetto non ha dipendenze native.


Passo 2 — Leggi un file MSG

Crea un’app console e aggiungi il seguente codice:

using System.IO;
using Aspose.Email.Foss.Msg;

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

Console.WriteLine($"Subject: {message.Subject}");
Console.WriteLine($"From: {message.SenderEmailAddress}");
Console.WriteLine($"Body: {message.Body}");

foreach (var recipient in message.Recipients)
    Console.WriteLine($"To: {recipient.EmailAddress}");

foreach (var attachment in message.Attachments)
    Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");

MapiMessage.FromStream() analizza il contenitore CFB del file MSG e espone tutte le proprietà MAPI tramite proprietà C# tipizzate in modo forte. Non è necessario Microsoft Outlook.


Passo 3 — Crea un nuovo file MSG

using System.IO;
using Aspose.Email.Foss.Msg;

var message = MapiMessage.Create("Meeting Notes", "Please find the notes attached.");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");

// Add a file attachment
message.AddAttachment("notes.txt", System.Text.Encoding.UTF8.GetBytes("Meeting notes here"), "text/plain");

// Save to file
message.Save("meeting_notes.msg");
Console.WriteLine("Created meeting_notes.msg");

MapiMessage.Create() produce un messaggio in memoria. Save() lo serializza nel formato MSG — è possibile passare un percorso file, un Stream, oppure chiamare Save() senza argomenti per ottenere un byte[].


Passo 4 — Converti EML in MSG

using System.IO;
using Aspose.Email.Foss.Msg;

// Load from EML
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);

Console.WriteLine($"Subject: {message.Subject}");

// Save as MSG
message.Save("converted.msg");
Console.WriteLine("Saved converted.msg");

// Or save back to EML (round-trip)
message.SaveToEml("roundtrip.eml");

Il parser MIME integrato conserva l’oggetto, il corpo, il corpo HTML, il mittente, i destinatari e tutti gli allegati durante i round‑trip completi EML ↔ MSG.


Prossimi passi

 Italiano